UNPKG

@onextech/react-semantic-booster

Version:

Extended components for react-semantic-ui

1,500 lines (1,173 loc) 208 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("lodash"), require("react"), require("styled-components"), require("prop-types"), require("semantic-ui-react"), require("react-router-dom")); else if(typeof define === 'function' && define.amd) define("reactSemanticBooster", ["lodash", "react", "styled-components", "prop-types", "semantic-ui-react", "react-router-dom"], factory); else if(typeof exports === 'object') exports["reactSemanticBooster"] = factory(require("lodash"), require("react"), require("styled-components"), require("prop-types"), require("semantic-ui-react"), require("react-router-dom")); else root["reactSemanticBooster"] = factory(root["_"], root["react"], root["styled-components"], root["prop-types"], root["semantic-ui-react"], root["react-router-dom"]); })(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_9__, __WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_6__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 22); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_0__; /***/ }), /* 1 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }), /* 2 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_2__; /***/ }), /* 3 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_3__; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeClassNames = exports.setCustomProps = exports.setStyledSpacer = exports.subtractObject = exports.getCustomClassName = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); var _lodash = __webpack_require__(9); function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /** * Render the class names based on the custom props selected * @param {{ prop: className }} customProps - a reference list of custom props and classnames * @param {{ className: {string} }} allProps - the user-defined props * @return {string} - the className string to render onto the DOM */ var getCustomClassName = exports.getCustomClassName = function getCustomClassName(customProps, allProps) { var classNames = []; Object.entries(allProps).forEach(function (_ref) { var _ref2 = _slicedToArray(_ref, 1), key = _ref2[0]; if (allProps[key]) { classNames.push(customProps[key]); } }); // Add any existing class names if (allProps.className) { classNames.push(allProps.className); } return classNames.join(' '); }; /** * Subtract object from another object (non-recursive) * @param subtrahend - The part being taken away * @param minuend - The part you start with * @return {{}} - The part that is left after subtraction */ var subtractObject = exports.subtractObject = function subtractObject(subtrahend, minuend) { var difference = {}; if (minuend) { Object.keys(minuend).forEach(function (key) { if (!subtrahend[key]) { difference[key] = minuend[key]; } }); } return difference; }; /** * A styled component function to set padding top/bottom of an element * from a mulitplier * @param {Number || Object} spacer - a multiplier * @param {Number} baseEm - The base em size to scale the spacer * @return {string} - the css to apply */ var setStyledSpacer = exports.setStyledSpacer = function setStyledSpacer(spacer) { var baseEm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5; if ((0, _lodash.isPlainObject)(spacer)) { var result = []; Object.keys(spacer).map(function (direction) { var value = spacer[direction] * baseEm; return result.push('padding-' + direction + ': ' + value + 'em;'); }); return result.join(' '); } return 'padding: ' + baseEm * spacer + 'em 0;'; }; /** * Set custom props * @param {{}} props * @param {{}} customProps * @param {{}} defaultProps * @return {{className: string}} */ var setCustomProps = exports.setCustomProps = function setCustomProps(props, customProps, defaultProps) { var newProps = _extends({}, defaultProps, props); var classNames = []; var getClassName = function getClassName(value) { if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') { var classes = [value.className]; if (value.classProps) classes.push(value.classProps); return classes.join(' '); } return value; }; var getShouldDeleteProp = function getShouldDeleteProp(value) { return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' ? !value.props : true; }; Object.keys(customProps).map(function (key) { var value = customProps[key]; var shouldDeleteProp = getShouldDeleteProp(value); if (shouldDeleteProp) delete newProps[key]; var isCustomPropExist = typeof props[key] !== 'undefined'; if (isCustomPropExist) { var className = getClassName(value); return classNames.push(className); } }); if (props.className) classNames.push.apply(classNames, _toConsumableArray(props.className.split(' '))); return _extends({}, newProps, { className: classNames.join(' ') }); }; /** * Merge prev class names with new class names to prevent * overwrite of className prop * @param {[]|string} newClassName * @param {[]|null} prevClassName * @return {string} */ var mergeClassNames = exports.mergeClassNames = function mergeClassNames(newClassName, prevClassName) { var _nextClassName; var nextClassName = []; if (prevClassName) { nextClassName = prevClassName.split(' '); } if (typeof newClassName === 'string') nextClassName.push(newClassName); if (Array.isArray(newClassName)) (_nextClassName = nextClassName).push.apply(_nextClassName, _toConsumableArray(newClassName)); return nextClassName.join(' '); }; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MediaCss = exports.Default = exports.mobile = exports.Tablet = exports.NotDesktop = exports.Desktop = exports.mediaCssBreakpoints = undefined; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _styledComponents = __webpack_require__(2); var _reactResponsive = __webpack_require__(30); var _reactResponsive2 = _interopRequireDefault(_reactResponsive); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var mediaCssBreakpoints = exports.mediaCssBreakpoints = { xs: 480, sm: 768, md: 992, lg: 1200, xl: 1600 }; /* eslint react/prop-types: 0 */ var Desktop = exports.Desktop = function Desktop(_ref) { var children = _ref.children; return _react2.default.createElement( _reactResponsive2.default, { minWidth: mediaCssBreakpoints.md }, children ); }; var NotDesktop = exports.NotDesktop = function NotDesktop(_ref2) { var children = _ref2.children; return _react2.default.createElement( _reactResponsive2.default, { maxWidth: mediaCssBreakpoints.md }, children ); }; var Tablet = exports.Tablet = function Tablet(_ref3) { var children = _ref3.children; return _react2.default.createElement( _reactResponsive2.default, { minWidth: mediaCssBreakpoints.sm, maxWidth: mediaCssBreakpoints.md }, children ); }; var mobile = exports.mobile = function mobile(_ref4) { var children = _ref4.children; return _react2.default.createElement( _reactResponsive2.default, { maxWidth: mediaCssBreakpoints.sm }, children ); }; var Default = exports.Default = function Default(_ref5) { var children = _ref5.children; return _react2.default.createElement( _reactResponsive2.default, { minWidth: mediaCssBreakpoints.sm }, children ); }; /** * Iterate through the mediaCssBreakpoints and create a media template * @link https://www.styled-components.com/docs/advanced#media-templates * @param {string} type * @return {{}} */ var mediaCssFactory = function mediaCssFactory(type) { return Object.keys(mediaCssBreakpoints).reduce(function (acc, label) { acc[label] = function () { return (0, _styledComponents.css)(['@media (', '-width:', 'px){', '}'], type, mediaCssBreakpoints[label], _styledComponents.css.apply(undefined, arguments)); }; return acc; }, {}); }; var MediaCss = exports.MediaCss = { max: mediaCssFactory('max'), min: mediaCssFactory('min') }; /***/ }), /* 6 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_6__; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _styledComponents = __webpack_require__(2); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _semanticUiReact = __webpack_require__(3); var _helpers = __webpack_require__(4); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var backgroundClassName = 'background'; var angularClassName = 'angular'; var verticalAlignClassName = 'vertical-align'; var spacerClassName = 'spacer'; var heightClassName = 'height'; var pageCenterClassName = 'page-center'; var StyledBlock = (0, _styledComponents2.default)(_semanticUiReact.Segment).withConfig({ displayName: 'Block__StyledBlock' })(['&.ui.segment{&.attached{border:0;}', '}&.ui.segment.', '{height:100vh;display:flex;align-items:center;justify-content:center;}', ' &.ui.segment.', '{display:flex;&.top{align-items:flex-start;}&.middle{align-items:center;}&.bottom{align-items:flex-end;}&.left{justify-content:flex-start;}&.center{justify-content:center;}&.right{justify-content:flex-end;}}&.ui.segment{', '}'], function (props) { return props.spacer && (0, _helpers.setStyledSpacer)(props.spacer); }, pageCenterClassName, function (props) { if (props.background) { var _props$background = props.background, src = _props$background.src, repeat = _props$background.repeat, position = _props$background.position, opacity = _props$background.opacity, fromColor = _props$background.fromColor, toColor = _props$background.toColor, size = _props$background.size, attachment = _props$background.attachment; var defaultOpacity = 0.8; var linearOpacity = opacity || defaultOpacity; // eslint-disable-next-line var defaultLinearColor = 'rgba(0,0,0,' + linearOpacity + ')'; var linearFrom = fromColor || defaultLinearColor; var linearTo = toColor || defaultLinearColor; return '\n &.ui.segment.' + backgroundClassName + ' {\n background: linear-gradient(' + linearFrom + ', ' + linearTo + '), url(\'' + src + '\');\n background-position: ' + (position || 'center') + ';\n background-repeat: ' + (repeat || 'no-repeat') + ';\n background-size: ' + (size || 'cover') + ';\n background-attachment: ' + (attachment || 'scroll') + ';\n }'; } return false; }, verticalAlignClassName, function (_ref) { var rawHeight = _ref.height; if (rawHeight) { var height = typeof rawHeight === 'number' ? rawHeight + 'px' : rawHeight; return 'height: ' + height + '; min-height: ' + height + ';'; } return false; }); /** * Create an angular block * @link https://css-tricks.com/creating-non-rectangular-headers/ */ var AngularSvg = _styledComponents2.default.svg.withConfig({ displayName: 'Block__AngularSvg' })(['position:absolute;left:0;width:100%;height:10vw;z-index:1;']); var TopSvg = (0, _styledComponents2.default)(AngularSvg).withConfig({ displayName: 'Block__TopSvg' })(['top:0;margin-top:-10vw;']); var BottomSvg = (0, _styledComponents2.default)(AngularSvg).withConfig({ displayName: 'Block__BottomSvg' })(['bottom:0;margin-bottom:-10vw;transform:rotate(180deg);']); var Block = function Block(rawProps) { var props = (0, _helpers.setCustomProps)(rawProps, { angular: { className: angularClassName, props: rawProps.angular }, verticalAlign: { className: verticalAlignClassName, classProps: rawProps.verticalAlign }, background: { className: backgroundClassName, props: rawProps.background }, spacer: { className: spacerClassName, props: rawProps.spacer }, height: { className: heightClassName, props: rawProps.height }, pageCenter: pageCenterClassName }, { vertical: true }); var angular = props.angular; if (angular) { var getSvgFill = function getSvgFill() { var defaultFill = '#fff'; var svgFill = defaultFill; if (props.secondary) { svgFill = '#f3f4f5'; /* default semantic-ui secondary color */ } if (props.inverted) { svgFill = '#1b1c1d'; /* default semantic-ui inverted color */ } return svgFill; }; var svgFill = getSvgFill(); return _react2.default.createElement( StyledBlock, props, angular.top && _react2.default.createElement( TopSvg, { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 100 100', preserveAspectRatio: 'none' }, _react2.default.createElement('polygon', { fill: '' + (angular.top.fill || svgFill), points: '0,100 100,0 100,100' }) ), props.children, angular.bottom && _react2.default.createElement( BottomSvg, { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 100 100', preserveAspectRatio: 'none' }, _react2.default.createElement('polygon', { fill: '' + (angular.bottom.fill || svgFill), points: '0,100 100,0 100,100' }) ) ); } return _react2.default.createElement(StyledBlock, props); }; Block.propTypes = { spacer: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ top: _propTypes2.default.number, bottom: _propTypes2.default.number, left: _propTypes2.default.number, right: _propTypes2.default.number })]), background: _propTypes2.default.shape({ src: _propTypes2.default.string.isRequired, repeat: _propTypes2.default.string, position: _propTypes2.default.string, opacity: _propTypes2.default.number, fromColor: _propTypes2.default.string, // 'rgba(0,0,0,0.5)' toColor: _propTypes2.default.string, // 'rgba(0,0,0,0.8)' size: _propTypes2.default.string, attachment: _propTypes2.default.string }), angular: _propTypes2.default.shape({ top: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.shape({ fill: _propTypes2.default.string })]), bottom: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.shape({ fill: _propTypes2.default.string })]) }), children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.string, _propTypes2.default.array]).isRequired, secondary: _propTypes2.default.bool, inverted: _propTypes2.default.bool, verticalAlign: _propTypes2.default.string, height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]) }; Block.defaultProps = { spacer: 1, background: undefined, angular: undefined, verticalAlign: undefined, height: undefined }; exports.default = Block; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var sizes = exports.sizes = ['mini', 'tiny', 'small', 'medium', 'large', 'big', 'huge', 'massive']; var verticalAlignFlexCssMap = exports.verticalAlignFlexCssMap = { top: 'flex-start', middle: 'center', bottom: 'flex-end' }; /***/ }), /* 9 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_9__; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactRouterDom = __webpack_require__(6); var _semanticUiReact = __webpack_require__(3); var _styledComponents = __webpack_require__(2); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _reactApolloUtils = __webpack_require__(11); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var hasManyChildren = function hasManyChildren(props) { return (0, _reactApolloUtils.countArrayLessUndefinedItems)(props.children.props.children) > 1; }; var Wrapper = (0, _styledComponents2.default)(_semanticUiReact.Button).withConfig({ displayName: 'ButtonLink__Wrapper' })(['&.ui.button{padding:0 !important;overflow:hidden;a{width:100%;display:inline-block;padding:', ';color:inherit;&:hover,&:focus{text-decoration:none;}.icon{margin-right:', ';}}}'], function (props) { return hasManyChildren(props) ? '.78571429em 1.5em' : '.78571429em'; }, function (props) { return hasManyChildren(props) ? '.25rem' : '0'; }); var ButtonLink = function ButtonLink(_ref) { var onClick = _ref.onClick, to = _ref.to, icon = _ref.icon, content = _ref.content, rest = _objectWithoutProperties(_ref, ['onClick', 'to', 'icon', 'content']); return _react2.default.createElement( Wrapper, rest, _react2.default.createElement( _reactRouterDom.Link, { to: to, onClick: onClick }, icon && _react2.default.createElement(_semanticUiReact.Icon, { name: icon }), content ) ); }; ButtonLink.propTypes = { to: _propTypes2.default.string.isRequired, icon: _propTypes2.default.string, content: _propTypes2.default.string, onClick: _propTypes2.default.func }; ButtonLink.defaultProps = { icon: undefined, content: undefined, onClick: undefined }; exports.default = ButtonLink; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(23) /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Checks if an object is empty * Do note that an empty object in javascript is a truthy value, * so we have to use this function to check for an empty object * @link https://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object * @param obj * @returns boolean */ var isEmptyObject = exports.isEmptyObject = function isEmptyObject(obj) { var surelyObj = obj; if (typeof obj === 'string') { surelyObj = JSON.parse(obj); } return Object.keys(surelyObj).length === 0; }; /** * Duck-typing to check if a key is trying to access a nested value * @param {string} key * @return {boolean} */ var isNestedKey = exports.isNestedKey = function isNestedKey(key) { return key.indexOf('.') > -1; }; /** * Key-path accessor to get value from nested object * @link https://stackoverflow.com/questions/8750362/using-variables-with-nested-javascript-object * @param {{}} obj - the nested objected * @param {string} path - @example 'foo.bar' * @returns {*} */ var getNestedObjectValue = exports.getNestedObjectValue = function getNestedObjectValue(obj, path) { var paths = path.split('.'); var res = obj; for (var i = 0; i < paths.length; i += 1) { // exit if key does not exist on the object if (!res) { return res; } res = res[paths[i]]; } return res; }; /** * Check if a key exists in an object * Note; if key exist, but value is null, returns true. * @param {{}} obj * @param {string} key * @return {Boolean} */ var objectHasKey = exports.objectHasKey = function objectHasKey(obj, key) { return Object.prototype.hasOwnProperty.call(obj, key); }; /** * Access a node object with an undetermined nested or single key * @param {{}} node * @param {string} key * @return {*} */ var getNodeValue = exports.getNodeValue = function getNodeValue(node, key) { if (isNestedKey(key)) { return getNestedObjectValue(node, key); } return node[key]; }; /** * Check if a variable is an Object * @link https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript * @param {*} v * @return {boolean} */ var isObject = exports.isObject = function isObject(v) { return v !== null && (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object'; }; /** * Check if a variable is a function * @link https://stackoverflow.com/questions/5999998/how-can-i-check-if-a-javascript-variable-is-function-type * @param {*} v * @return {boolean} */ var isFunction = exports.isFunction = function isFunction(v) { return typeof v === 'function'; }; /** * Get object from JSON string * @param {string} json * @return {{}} */ var getObjectFromJSON = exports.getObjectFromJSON = function getObjectFromJSON(json) { return JSON.parse(json); }; /** * Get JSON string from object * @param {{}} obj * @return {string} */ var getJSONFromObject = exports.getJSONFromObject = function getJSONFromObject(obj) { return JSON.stringify(obj); }; /** * Get JSON From key and value * @param {*} k * @param {*} v * @return {string} */ var getJSONFromKeyValue = exports.getJSONFromKeyValue = function getJSONFromKeyValue(k, v) { return getJSONFromObject(_defineProperty({}, k, v)); }; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactRouterDom = __webpack_require__(6); var _styledComponents = __webpack_require__(2); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _semanticUiReact = __webpack_require__(3); var _reactRouterHashLink = __webpack_require__(14); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var StyledLinkFactory = '\n width: 100%;\n display: flex;\n padding: .92857143em 1.14285714em;\n color: inherit;\n &:hover {\n color: inherit;\n }\n &:hover, &:focus {\n text-decoration: none;\n }\n'; var StyledHashLink = (0, _styledComponents2.default)(_reactRouterHashLink.HashLink).withConfig({ displayName: 'MenuLink__StyledHashLink' })(['', ''], StyledLinkFactory); var StyledLink = (0, _styledComponents2.default)(_reactRouterDom.Link).withConfig({ displayName: 'MenuLink__StyledLink' })(['', ''], StyledLinkFactory); var StyledMenuItem = (0, _styledComponents2.default)(_semanticUiReact.Menu.Item).withConfig({ displayName: 'MenuLink__StyledMenuItem' })(['padding:0 !important;']); var MenuLink = function MenuLink(_ref) { var onClick = _ref.onClick, to = _ref.to, children = _ref.children, link = _ref.link, rest = _objectWithoutProperties(_ref, ['onClick', 'to', 'children', 'link']); var isHashLink = to.charAt(0) === '#'; if (isHashLink) { return _react2.default.createElement( StyledMenuItem, _extends({ link: true, fitted: true }, rest), _react2.default.createElement( StyledHashLink, _extends({ to: to }, link), children ) ); } return _react2.default.createElement( StyledMenuItem, _extends({ className: 'menulink', link: true, fitted: true }, rest), _react2.default.createElement( StyledLink, _extends({ onClick: onClick, to: to }, link), children ) ); }; MenuLink.propTypes = { children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.string, _propTypes2.default.array]).isRequired, to: _propTypes2.default.string.isRequired, link: _propTypes2.default.object, onClick: _propTypes2.default.func }; MenuLink.defaultProps = { link: undefined, onClick: undefined }; exports.default = MenuLink; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.HashLink = HashLink; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactRouterDom = __webpack_require__(6); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var hashFragment = ''; var observer = null; var asyncTimerId = null; function reset() { hashFragment = ''; if (observer !== null) observer.disconnect(); if (asyncTimerId !== null) { window.clearTimeout(asyncTimerId); asyncTimerId = null; } } function getElAndScroll() { var element = document.getElementById(hashFragment); if (element !== null) { element.scrollIntoView(); reset(); return true; } return false; } function hashLinkScroll() { // Push onto callback queue so it runs after the DOM is updated window.setTimeout(function () { if (getElAndScroll() === false) { if (observer === null) { observer = new MutationObserver(getElAndScroll); } observer.observe(document, { attributes: true, childList: true, subtree: true }); // if the element doesn't show up in 10 seconds, stop checking asyncTimerId = window.setTimeout(function () { reset(); }, 10000); } }, 0); } function HashLink(props) { function handleClick(e) { reset(); if (props.onClick) props.onClick(e); if (typeof props.to === 'string') { hashFragment = props.to.split('#').slice(1).join('#'); } else if (_typeof(props.to) === 'object' && typeof props.to.hash === 'string') { hashFragment = props.to.hash.replace('#', ''); } if (hashFragment !== '') hashLinkScroll(); } return _react2.default.createElement( _reactRouterDom.Link, _extends({}, props, { onClick: handleClick }), props.children ); } HashLink.propTypes = { onClick: _propTypes2.default.func, children: _propTypes2.default.node, to: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]) }; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactRouterDom = __webpack_require__(6); var _styledComponents = __webpack_require__(2); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _semanticUiReact = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var StyledLink = (0, _styledComponents2.default)(_reactRouterDom.Link).withConfig({ displayName: 'DropdownLink__StyledLink' })(['width:100%;display:inline-block;padding:.78571429em 1.14285714em;line-height:1;color:inherit;&:hover{color:inherit;background-color:rgba(0,0,0,.05);}> .icon{margin-right:.75em;}']); var DropdownLink = function DropdownLink(_ref) { var to = _ref.to, children = _ref.children, rest = _objectWithoutProperties(_ref, ['to', 'children']); if (to) { return _react2.default.createElement( StyledLink, { to: to }, children ); } return _react2.default.createElement( _semanticUiReact.Dropdown.Item, rest, children ); }; DropdownLink.propTypes = { children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.string, _propTypes2.default.array]).isRequired, to: _propTypes2.default.string }; DropdownLink.defaultProps = { to: undefined }; exports.default = DropdownLink; /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactRouterDom = __webpack_require__(6); var _semanticUiReact = __webpack_require__(3); var _reactApolloUtils = __webpack_require__(11); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Breadcrumbs = function Breadcrumbs(_ref) { var match = _ref.match, customCrumbs = _ref.customCrumbs; var crumbs = match.url.split('/'); /** * Set custom routes on certain params * @param {string} crumb * @param {number} index * @param {{}} rules - set of keys (match.params path) and values (route to go to) * @returns {string} */ var getCrumbSlug = function getCrumbSlug(crumb, index, rules) { Object.entries(rules).forEach(function (_ref2) { var _ref3 = _slicedToArray(_ref2, 2), k = _ref3[0], v = _ref3[1]; if (k === crumb) { return v; } return crumbs.slice(0, index + 1).join('/'); }); return ''; }; return _react2.default.createElement( _semanticUiReact.Breadcrumb, { style: { margin: '0.75em auto' } }, crumbs.map(function (crumb, index) { var slug = getCrumbSlug(crumb, index, customCrumbs); var jsx = [_react2.default.createElement( _semanticUiReact.Breadcrumb.Section, { key: crumb }, _react2.default.createElement( _reactRouterDom.Link, { to: slug }, index === 0 ? 'Home' : (0, _reactApolloUtils.capitalizeFirstLetter)(crumb) ) )]; if (index !== crumbs.length - 1) { jsx.push(_react2.default.createElement(_semanticUiReact.Breadcrumb.Divider, { key: crumb + '-divider', icon: 'right angle' })); } return jsx; }) ); }; Breadcrumbs.propTypes = { match: _propTypes2.default.object.isRequired, customCrumbs: _propTypes2.default.object }; Breadcrumbs.defaultProps = { customCrumbs: {} }; exports.default = (0, _reactRouterDom.withRouter)(Breadcrumbs); /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _styledComponents = __webpack_require__(2); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _semanticUiReact = __webpack_require__(3); var _helpers = __webpack_require__(4); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var relaxedClassName = 'relaxed'; var compactClassName = 'compact'; var inheritClassName = 'inherit'; var StyledHeader = (0, _styledComponents2.default)(_semanticUiReact.Header).withConfig({ displayName: 'Header__StyledHeader' })(['&.ui.header{', ' &.', '{letter-spacing:1px;}&.', '{letter-spacing:-1px;}&.', '{color:inherit;}}'], function (_ref) { var fontWeight = _ref.fontWeight; return fontWeight && 'font-weight: ' + fontWeight + ';'; }, relaxedClassName, compactClassName, inheritClassName); var Header = function Header(rawProps) { var customProps = { relaxed: relaxedClassName, compact: compactClassName, inherit: inheritClassName }; var props = (0, _helpers.setCustomProps)(rawProps, customProps); return _react2.default.createElement(StyledHeader, props); }; exports.default = Header; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _templateObject = _taggedTemplateLiteral(['padding: 0 !important;'], ['padding: 0 !important;']); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _styledComponents = __webpack_require__(2); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _semanticUiReact = __webpack_require__(3); var _GridColumn = __webpack_require__(29); var _GridColumn2 = _interopRequireDefault(_GridColumn); var _constants = __webpack_require__(8); var _helpers = __webpack_require__(4); var _responsive = __webpack_require__(5); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var attachedClassName = 'attached'; var fluidClassName = 'fluid'; var StyledGrid = (0, _styledComponents2.default)(_semanticUiReact.Grid).withConfig({ displayName: 'Grid__StyledGrid' })(['&.ui.grid.inverted{color:white;}&.ui.grid.', ' > .row{padding-bottom:initial;}&.ui.grid.', '{> .row > .column{&:not(:first-of-type){padding-left:0;}&:not(:last-of-type){padding-right:0;}}&.stackable > .row > .column{', '}&.attached > .row{padding-top:0;padding-bottom:0;}}'], attachedClassName, fluidClassName, _responsive.MediaCss.max.sm(_templateObject)); var Grid = function Grid(props) { // 1. Define custom props for this component var customProps = { attached: attachedClassName, fluid: fluidClassName }; // 1.5. Define default props var defaultProps = { attached: false, fluid: false }; var allProps = _extends({}, defaultProps, props); // 2. Render the custom class names var className = props && (0, _helpers.getCustomClassName)(customProps, allProps); // 3. Clean up custom props from main prop set to avoid prop clashing var semanticProps = props && (0, _helpers.subtractObject)(_extends({}, defaultProps, customProps), allProps); return _react2.default.createElement(StyledGrid, _extends({}, semanticProps, { className: className })); }; Grid.Row = _semanticUiReact.Grid.Row; Grid.Column = _GridColumn2.default; Grid.propTypes = { attached: _propTypes2.default.bool, fluid: _propTypes2.default.bool, verticalAlign: _propTypes2.default.oneOf(Object.keys(_constants.verticalAlignFlexCssMap)), background: _propTypes2.default.shape({ src: _propTypes2.default.string, repeat: _propTypes2.default.string, position: _propTypes2.default.string, opacity: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), fromColor: _propTypes2.default.string, toColor: _propTypes2.default.string, size: _propTypes2.default.string, attachment: _propTypes2.default.string, color: _propTypes2.default.string, overlay: _propTypes2.default.bool }) }; exports.default = Grid; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _styledComponents = __webpack_require__(2); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _semanticUiReact = __webpack_require__(3); var _helpers = __webpack_require__(4); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var floatClassName = 'float'; var containerClassName = 'container'; var spacerClassName = 'spacer'; var StyledMenu = (0, _styledComponents2.default)(_semanticUiReact.Menu).withConfig({ displayName: 'Menu__StyledMenu' })(['&.ui.menu.', '{&:not(.tabular){border:0;}.menu.left .item:first-child > a{padding-left:0;}.menu.right .item:last-child > a{padding-right:0;}.menu.right .item:last-child{padding-right:0;}}&.ui.menu.', '{position:absolute;z-index:1;top:initial;bottom:initial;}', ''], containerClassName, floatClassName, function (props) { return props.spacer && (0, _helpers.setStyledSpacer)(props.spacer, 1); }); var Menu = function Menu(props) { // 1. Define custom props for this component var classProps = { float: floatClassName, container: containerClassName, spacer: spacerClassName }; // 1.5. Define default props var defaultProps = { float: false, container: false, spacer: 1 }; var customProps = { spacer: props.spacer }; var allProps = _extends({}, defaultProps, props); // 2. Render the custom class names var className = props && (0, _helpers.getCustomClassName)(classProps, allProps); // 3. Clean up custom props from main prop set to avoid prop clashing var semanticProps = props && (0, _helpers.subtractObject)(_extends({}, defaultProps, classProps), allProps); if (props.container) { return _react2.default.createElement( StyledMenu, _extends({}, semanticProps, customProps, { className: className }), _react2.default.createElement( _semanticUiReact.Container, null, props.children ) ); } return _react2.default.createElement( StyledMenu, _extends({}, semanticProps, customProps, { className: className }), props.children ); }; Menu.propTypes = { spacer: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ top: _propTypes2.default.number, bottom: _propTypes2.default.number })]), container: _propTypes2.default.bool, float: _propTypes2.default.bool, children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.string, _propTypes2.default.array]).isRequired }; Menu.Item = _semanticUiReact.Menu.Item; Menu.Menu = _semanticUiReact.Menu.Menu; Menu.Header = _semanticUiReact.Menu.Header; exports.default = Menu; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _styledComponents = __webpack_require__(2); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _semanticUiReact = __webpack_require__(3); var _index = __webpack_require__(17); var _index2 = _interopRequireDefault(_index); var _constants = __webpack_require__(8); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } /** * Calculate scale based on y = ax2 + bx + c * @link https://www.desmos.com/calculator/zukjgk9iry * @param {number} size - The x value * @return {number} - The y value */ var getEmSizeScale = function getEmSizeScale(size) { return 0.083 * Math.pow(size, 2) + 0.5; }; var ContentContainer = _styledComponents2.default.div.withConfig({ displayName: 'Copy__ContentContainer' })(['width:100%;.sub.header + .header{margin-top:.3em;}.header + p{margin-top:.6em;}.header{margin-bottom:0;}p,.ui.list > .item{line-height:1.6;}', ' ', ' ', ''], function (_ref) { var textAlign = _ref.textAlign; return textAlign && 'text-align: ' + textAlign + ';'; }, function (_ref2) { var size = _ref2.size; if (size) { var found = _constants.sizes.indexOf(size); return '\n font-size: ' + getEmSizeScale(found) + 'em;\n .ui.header {\n line-height: ' + (1.2 - found * 0.033) + ';\n }\n p {\n line-height: ' + (1.6 - found * 0.067) + '; \n }\n '; } return false; }, function (_ref3) { var color = _ref3.color; return color && 'color: ' + color + ';'; }); var ContentHeader = (0, _styledComponents2.default)(_index2.default).withConfig({ displayName: 'Copy__ContentHeader' })(['&.ui.header{width:100%;opacity:0.95;&:only-child{margin-bottom:0;}}']); var ContentSubheader = (0, _styledComponents2.default)(_index2.default).withConfig({ displayName: 'Copy__ContentSubheader' })(['&.ui.header.sub{opacity:0.86;letter-spacing:1px;}']); var Copy = function Copy(_ref4) { var subheader = _ref4.subheader, header = _ref4.header, body = _ref4.body, content = _ref4.content, list = _ref4.list, rest = _objectWithoutProperties(_ref4, ['subheader', 'header', 'body', 'content', 'list']); return _react2.default.createElement( ContentContainer, _extends({ className: 'copy' }, rest), subheader && _react2.default.createElement(ContentSubheader, _extends({ as: 'h6', sub: true, size: 'tiny' }, subheader)), header && _react2.default.createElement(ContentHeader, _extends({ as: 'h5', size: 'huge' }, header)), body && _react2.default.createElement( 'p', null, body ), content, list && _react2.default.createElement(_semanticUiReact.List, _extends({ relaxed: true, bulleted: true, size: 'large' }, list)) ); }; Copy.propTypes = { textAlign: _propTypes2.default.string, color: _propTypes2.default.string, size: _propTypes2.default.oneOf(_constants.sizes), subheader: _propTypes2.default.object, // sui header props header: _propTypes2.default.object, // sui header props list: _propTypes2.default.object, // sui list props body: _propTypes2.default.string, content: _propTypes2.default.element }; exports.default = Copy; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _semanticUiReact = __webpack_require__(3); var _reactRouterHashLink = __webpack_require__(14); var _reactRouterDom = __webpack_require__(6); var _styledComponents = __webpack_require__(2); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _Breadcrumbs = __webpack_require__(16); var _Breadcrumbs2 = _interopRequireDefault(_Breadcrumbs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (va