@onextech/react-semantic-booster
Version:
Extended components for react-semantic-ui
1,500 lines (1,173 loc) • 208 kB
JavaScript
(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