@dr.pogodin/react-utils 1.8.3 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/development/client/init.js +3 -1
- package/build/development/client/init.js.map +1 -1
- package/build/development/server/renderer.js +8 -2
- package/build/development/server/renderer.js.map +1 -1
- package/build/development/shared/components/Modal/index.js +1 -1
- package/build/development/shared/components/Modal/index.js.map +1 -1
- package/build/development/web.bundle.js +15 -15
- package/build/production/client/init.js +2 -1
- package/build/production/client/init.js.map +1 -1
- package/build/production/server/renderer.js +2 -2
- package/build/production/server/renderer.js.map +1 -1
- package/build/production/shared/components/Modal/index.js +1 -1
- package/build/production/shared/components/Modal/index.js.map +1 -1
- package/build/production/web.bundle.js +1 -1
- package/build/production/web.bundle.js.map +1 -1
- package/package.json +33 -32
|
@@ -46,7 +46,7 @@ eval("var __dirname = \"/\";\n__webpack_require__.r(__webpack_exports__);\n/* ha
|
|
|
46
46
|
\************************************************/
|
|
47
47
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
48
48
|
|
|
49
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Link */ \"./src/shared/components/Link.jsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./style.scss */ \"./src/shared/components/Button/style.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n// The <Button> component implements a standard button / button-like link.\n\n\n\n\n\n\nfunction BaseButton(_ref) {\n var active = _ref.active,\n children = _ref.children,\n disabled = _ref.disabled,\n enforceA = _ref.enforceA,\n onClick = _ref.onClick,\n onMouseDown = _ref.onMouseDown,\n openNewTab = _ref.openNewTab,\n replace = _ref.replace,\n theme = _ref.theme,\n to = _ref.to;\n var className = theme.button;\n if (active && theme.active) className += \" \".concat(theme.active);\n\n if (disabled) {\n if (theme.disabled) className += \" \".concat(theme.disabled);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"div\", {\n className: className,\n children: children\n });\n }\n\n if (to) {\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_1__
|
|
49
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Link */ \"./src/shared/components/Link.jsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./style.scss */ \"./src/shared/components/Button/style.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n// The <Button> component implements a standard button / button-like link.\n\n\n\n\n\n\nfunction BaseButton(_ref) {\n var active = _ref.active,\n children = _ref.children,\n disabled = _ref.disabled,\n enforceA = _ref.enforceA,\n onClick = _ref.onClick,\n onMouseDown = _ref.onMouseDown,\n openNewTab = _ref.openNewTab,\n replace = _ref.replace,\n theme = _ref.theme,\n to = _ref.to;\n var className = theme.button;\n if (active && theme.active) className += \" \".concat(theme.active);\n\n if (disabled) {\n if (theme.disabled) className += \" \".concat(theme.disabled);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"div\", {\n className: className,\n children: children\n });\n }\n\n if (to) {\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n className: className,\n enforceA: enforceA,\n onClick: onClick,\n onMouseDown: onMouseDown,\n openNewTab: openNewTab,\n replace: replace,\n to: to,\n children: children\n });\n }\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"div\", {\n className: className,\n onClick: onClick,\n onKeyPress: onClick,\n onMouseDown: onMouseDown,\n role: \"button\",\n tabIndex: 0,\n children: children\n });\n}\n/**\n * @category Components\n * @typedef {object} ButtonTheme {@link Button} component theme: a map of CSS\n * class names to append to button elements:\n * @prop {string} [active] to the root element of active button.\n * @prop {string} [button] to the root element of any button.\n * @prop {string} [disabled] to the root element of disabled button.\n */\n\n\nvar ThemedButton = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.themed)('Button', ['active', 'button', 'disabled'], _style_scss__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(BaseButton);\n/**\n * @category Components\n * @func Button\n * @desc\n * ```js\n * import { Button } from '@dr.pogodin/react-utils';\n * ```\n * Implements themeable buttons, and button-line links (elements which look\n * like buttons, but behave as links) in the same uniform manner.\n *\n * Under the hood, a `<Button>` instance is rendered as:\n * 1. `<div>` when the button is disabled. It helps to ensure exactly\n * the same style of disabled buttons and button-like links.\n * 2. `<Link>` when `to` property is set.\n * This takes care about internal and external links.\n * 3. `<div>` element, otherwise. `<Link>` component could also play the button\n * role, but is more efficient to use `<div>` in this case.\n *\n * **Children:** Component children, if any, are rendered as button content.\n *\n * @param {object} [props] Component props.\n * @param {boolean} [props.active] Set `true` to render the button as\n * active, even if it is not active otherwise.\n * @param {boolean} [props.disabled] Set `true` to disable the button.\n * @param {boolean} [props.enforceA] When the button is rendered as `<Link>`\n * component, this prop enforces it to be rendered as a simple `<a>` element\n * (external link), rather than the React router's internal link.\n * See `<Link>` documentation to learn when links are rendered as `<a>`\n * by default.\n * @param {function} [props.onClick] Click event handler.\n * @param {function} [props.onMouseDown] Mouse down event handler.\n * @param {boolean} [props.openNewTab] Set `true` to open link in the new tab.\n * @param {boolean} [props.replace] When the button is rendered as\n * `<Link>`, and the target URL is internal, this property tells that\n * the new route should replace the last record in the browser's history,\n * rather than to be pushed as a new entry into the history stack.\n * @param {ButtonTheme} [props.theme] _Ad hoc_ button theme.\n * @param {object|string} [props.to] If specified, the button will be rendered\n * as `<Link>` (if not disabled), and it will point to the specified location\n * or URL.\n * @param {...any} [props....]\n * [Other properties of themeable components](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n *\n * @example\n * import React from 'react';\n * import { Button } from '@dr.pogodin/react-utils';\n *\n * export default function ButtonDemo() {\n * return (\n * <div>\n * <Button onClick={() => alert('Button Clicked')}>Button</Button>\n * <Button to=\"https://dr.pogodin.studio\" openNewTab>\n * Button-Like Link\n * </Button>\n * <Button disabled>Disabled Button</Button>\n * <Button active>Forced-Active Button</Button>\n * </div>\n * );\n * }\n */\n\nBaseButton.defaultProps = {\n active: false,\n children: undefined,\n disabled: false,\n enforceA: false,\n onClick: undefined,\n onMouseDown: undefined,\n openNewTab: false,\n replace: false,\n to: undefined\n};\nBaseButton.propTypes = {\n active: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().bool),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().node),\n disabled: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().bool),\n enforceA: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().bool),\n onClick: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().func),\n onMouseDown: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().func),\n openNewTab: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().bool),\n replace: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().bool),\n theme: ThemedButton.themeType.isRequired,\n to: prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_0___default().object), (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string)])\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedButton);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/Button/index.jsx?");
|
|
50
50
|
|
|
51
51
|
/***/ }),
|
|
52
52
|
|
|
@@ -56,7 +56,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop
|
|
|
56
56
|
\**************************************************/
|
|
57
57
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
58
58
|
|
|
59
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Checkbox/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n\n\nfunction Checkbox(_ref) {\n var checked = _ref.checked,\n label = _ref.label,\n onChange = _ref.onChange,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(\"div\", {\n className: theme.container,\n children: [label === undefined ? null : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"p\", {\n className: theme.label,\n children: label\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"input\", {\n checked: checked,\n className: theme.checkbox,\n onChange: onChange,\n type: \"checkbox\"\n })]\n });\n}\n/**\n * @category Components\n * @typedef {object} CheckboxTheme {@link Checkbox} component theme: a map of\n * CSS classes to append to its elements:\n * @prop {string} [checkbox] to the underlying checkbox `<input>` element.\n * @prop {string} [container] to the root checkbox element.\n * @prop {string} [label] to the checkbox label element.\n */\n\n\nvar ThemedCheckbox = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.themed)('Checkbox', ['checkbox', 'container', 'label'], _theme_scss__WEBPACK_IMPORTED_MODULE_2__
|
|
59
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Checkbox/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n\n\nfunction Checkbox(_ref) {\n var checked = _ref.checked,\n label = _ref.label,\n onChange = _ref.onChange,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(\"div\", {\n className: theme.container,\n children: [label === undefined ? null : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"p\", {\n className: theme.label,\n children: label\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"input\", {\n checked: checked,\n className: theme.checkbox,\n onChange: onChange,\n type: \"checkbox\"\n })]\n });\n}\n/**\n * @category Components\n * @typedef {object} CheckboxTheme {@link Checkbox} component theme: a map of\n * CSS classes to append to its elements:\n * @prop {string} [checkbox] to the underlying checkbox `<input>` element.\n * @prop {string} [container] to the root checkbox element.\n * @prop {string} [label] to the checkbox label element.\n */\n\n\nvar ThemedCheckbox = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.themed)('Checkbox', ['checkbox', 'container', 'label'], _theme_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Checkbox);\n/**\n * @category Components\n * @func Checkbox\n * @desc\n * ```js\n * import { Checkbox } from '@dr.pogodin/react-utils';\n * ```\n * The `<Checkbox>` component implements themeable checkboxes.\n * @param {object} [props] Component properties.\n * @param {boolean} [props.checked] Checkbox value.\n * @param {string} [props.label] Checkbox label.\n * @param {function} [props.onChange] State change handler.\n * @param {CheckboxTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other properties of themeable components](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties).\n */\n\nCheckbox.propTypes = {\n checked: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().bool),\n label: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n onChange: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().func),\n theme: ThemedCheckbox.themeType.isRequired\n};\nCheckbox.defaultProps = {\n checked: undefined,\n label: undefined,\n onChange: undefined\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedCheckbox);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/Checkbox/index.jsx?");
|
|
60
60
|
|
|
61
61
|
/***/ }),
|
|
62
62
|
|
|
@@ -66,7 +66,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop
|
|
|
66
66
|
\********************************************************/
|
|
67
67
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
68
68
|
|
|
69
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ClientSide; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"@babel/runtime/helpers/slicedToArray\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"@babel/runtime/helpers/objectWithoutProperties\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dr_pogodin_react_global_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dr.pogodin/react-global-state */ \"@dr.pogodin/react-global-state\");\n/* harmony import */ var _dr_pogodin_react_global_state__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_global_state__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _utils_isomorphy__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/isomorphy */ \"./src/shared/utils/isomorphy.js\");\n/* harmony import */ var _utils_time__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/time */ \"./src/shared/utils/time.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\nvar _excluded = [\"chunkName\", \"getComponentAsync\", \"placeholder\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Client-side implementation of a split code chunk.\n */\n\n/* global document, window */\n\n/* eslint-disable react/jsx-props-no-spreading */\n\n\n\n\n\n\nfunction ClientSide(_ref) {\n var chunkName = _ref.chunkName,\n getComponentAsync = _ref.getComponentAsync,\n placeholder = _ref.placeholder,\n rest = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default()(_ref, _excluded);\n\n var _useRef = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)({\n pendingStyles: [],\n renderInitialized: false,\n stylesInitialized: false\n }),\n heap = _useRef.current; // publicPath from buildInfo does not have a trailing slash at the end.\n\n\n var _getBuildInfo = (0,_utils_isomorphy__WEBPACK_IMPORTED_MODULE_6__.getBuildInfo)(),\n publicPath = _getBuildInfo.publicPath; // This code block initiates style loading as soon as possible; it collects\n // into heap.pendingStyles all style load promises; and heap.stylesInitialized\n // flag remains set until the styles are teared down upon unmounting.\n\n\n if (!heap.stylesInitialized) {\n heap.stylesInitialized = true;\n window.CHUNK_GROUPS[chunkName].forEach(function (asset) {\n if (!asset.endsWith('.css')) return;\n var path = \"\".concat(publicPath, \"/\").concat(asset);\n var link = document.querySelector(\"link[href=\\\"\".concat(path, \"\\\"]\"));\n\n if (!link) {\n link = document.createElement('link');\n link.setAttribute('href', path);\n link.setAttribute('rel', 'stylesheet');\n var barrier = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.newBarrier)();\n link.onload = barrier.resolve;\n heap.pendingStyles.push(barrier);\n var head = document.querySelector('head');\n head.appendChild(link);\n }\n\n if (!link.dependants) link.dependants = new Set([chunkName]);else link.dependants.add(chunkName);\n });\n } // Async loading of React component necessary to render the chunk.\n\n\n var _useAsyncData = (0,_dr_pogodin_react_global_state__WEBPACK_IMPORTED_MODULE_4__.useAsyncData)(\"dr_pogodin_react_utils___split_components.\".concat(chunkName), getComponentAsync, {\n maxage: _utils_time__WEBPACK_IMPORTED_MODULE_7__
|
|
69
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ClientSide; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"@babel/runtime/helpers/slicedToArray\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"@babel/runtime/helpers/objectWithoutProperties\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dr_pogodin_react_global_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dr.pogodin/react-global-state */ \"@dr.pogodin/react-global-state\");\n/* harmony import */ var _dr_pogodin_react_global_state__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_global_state__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _utils_isomorphy__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/isomorphy */ \"./src/shared/utils/isomorphy.js\");\n/* harmony import */ var _utils_time__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/time */ \"./src/shared/utils/time.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\nvar _excluded = [\"chunkName\", \"getComponentAsync\", \"placeholder\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Client-side implementation of a split code chunk.\n */\n\n/* global document, window */\n\n/* eslint-disable react/jsx-props-no-spreading */\n\n\n\n\n\n\nfunction ClientSide(_ref) {\n var chunkName = _ref.chunkName,\n getComponentAsync = _ref.getComponentAsync,\n placeholder = _ref.placeholder,\n rest = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default()(_ref, _excluded);\n\n var _useRef = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)({\n pendingStyles: [],\n renderInitialized: false,\n stylesInitialized: false\n }),\n heap = _useRef.current; // publicPath from buildInfo does not have a trailing slash at the end.\n\n\n var _getBuildInfo = (0,_utils_isomorphy__WEBPACK_IMPORTED_MODULE_6__.getBuildInfo)(),\n publicPath = _getBuildInfo.publicPath; // This code block initiates style loading as soon as possible; it collects\n // into heap.pendingStyles all style load promises; and heap.stylesInitialized\n // flag remains set until the styles are teared down upon unmounting.\n\n\n if (!heap.stylesInitialized) {\n heap.stylesInitialized = true;\n window.CHUNK_GROUPS[chunkName].forEach(function (asset) {\n if (!asset.endsWith('.css')) return;\n var path = \"\".concat(publicPath, \"/\").concat(asset);\n var link = document.querySelector(\"link[href=\\\"\".concat(path, \"\\\"]\"));\n\n if (!link) {\n link = document.createElement('link');\n link.setAttribute('href', path);\n link.setAttribute('rel', 'stylesheet');\n var barrier = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.newBarrier)();\n link.onload = barrier.resolve;\n heap.pendingStyles.push(barrier);\n var head = document.querySelector('head');\n head.appendChild(link);\n }\n\n if (!link.dependants) link.dependants = new Set([chunkName]);else link.dependants.add(chunkName);\n });\n } // Async loading of React component necessary to render the chunk.\n\n\n var _useAsyncData = (0,_dr_pogodin_react_global_state__WEBPACK_IMPORTED_MODULE_4__.useAsyncData)(\"dr_pogodin_react_utils___split_components.\".concat(chunkName), getComponentAsync, {\n maxage: _utils_time__WEBPACK_IMPORTED_MODULE_7__[\"default\"].YEAR_MS\n }),\n data = _useAsyncData.data;\n\n var createRender = function createRender() {\n var Scene = data.default || data;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n \"data-chunk-name\": chunkName,\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Scene, _objectSpread({}, rest))\n });\n };\n\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(function () {\n // No need to await anything, we can render the final component right away.\n if (data && !heap.pendingStyles.length) {\n heap.renderInitialized = true;\n return createRender();\n } // Try to reuse the markup rendered during SSR.\n\n\n // Try to reuse the markup rendered during SSR.\n var node = document.querySelector(\"[data-chunk-name=\".concat(chunkName, \"]\"));\n\n if (node) {\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n /* eslint-disable react/no-danger */\n dangerouslySetInnerHTML: {\n __html: node.innerHTML || ''\n }\n /* eslint-disable react/no-danger */\n ,\n\n /* eslint-disable react/no-danger */\n \"data-chunk-name\": chunkName\n });\n } // Else render placeholder, or empty div.\n\n\n // Else render placeholder, or empty div.\n var Scene = placeholder || function () {\n return null;\n };\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Scene, {})\n });\n }),\n _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),\n render = _useState2[0],\n setRender = _useState2[1]; // At this point, if we have data, the absense of heap.renderInitialized flag\n // means we have to await styles loading; once it is done, and if we are still\n // mounted, we can set the final render.\n\n\n if (data && !heap.renderInitialized) {\n heap.renderInitialized = true;\n Promise.all(heap.pendingStyles).then(function () {\n if (heap.stylesInitialized) setRender(createRender());\n });\n } // This effectively fires only once, just before the component unmounts.\n\n\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n return function () {\n heap.stylesInitialized = false;\n window.CHUNK_GROUPS[chunkName].forEach(function (item) {\n if (!item.endsWith('.css')) return;\n var path = \"\".concat(publicPath, \"/\").concat(item);\n var link = document.querySelector(\"link[href=\\\"\".concat(path, \"\\\"]\"));\n link.dependants.delete(chunkName);\n\n if (!link.dependants.size) {\n var head = document.querySelector('head');\n head.removeChild(link);\n }\n });\n };\n }, [chunkName, heap, publicPath]);\n return render;\n}\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/CodeSplit/ClientSide.jsx?");
|
|
70
70
|
|
|
71
71
|
/***/ }),
|
|
72
72
|
|
|
@@ -76,7 +76,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
76
76
|
\**************************************************/
|
|
77
77
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
78
78
|
|
|
79
|
-
eval("var __dirname = \"/\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _ClientSide__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ClientSide */ \"./src/shared/components/CodeSplit/ClientSide.jsx\");\n/**\n * @category Components\n * @func CodeSplit\n * @desc\n * ```js\n * import { CodeSplit } from '@dr.pogodin/react-utils';\n * ```\n * The `<CodeSplit>` component implements separation of an app part into\n * separate code & style chunks (thus, allowing to split compiled app bundle\n * into smaller lazy-loaded pieces).\n * @param {object} props Component properties.\n * @param {string} props.chunkName Unique chunk name.\n * @param {function} props.getComponentAsync Asynchronous function which\n * resolves to the component to render in place of the `<CodeSplit>`\n * (_i.e._ the component which we are splitting into a separate chunk),\n * and uses dynamic `import()` with Webpack's\n * [webpackChunkName](https://webpack.js.org/api/module-methods/#magic-comments) magic\n * comment stating the same chunk name, as was specified via the `chunkName`\n * property above.\n * @param {function} [props.getComponentServer] A synchronous version of\n * `getComponentAsync()` to be used during server-side rendering. If not\n * provided, the server-side code will fallback to the asynchronous\n * `getComponentAsync()`, which is sub-optimal. If provided, it will be called\n * with a special {@link resolveRequire} function passed in as the only\n * argument, which should be used to correctly resolve & require necessary\n * modules, without Webpack being able to detect it and thus bundle them\n * into client-side code (also see the example below).\n * @param {function} [props.placeholder] Placeholder React component to render\n * while the code for actual splitted component is being loaded.\n * @param {...any} [props....] Any other properties are passed as is into\n * the splitted component.\n * @example\n * // Assume <SampleComponent> is a React sub-tree we want to split into\n * // a stand-alone chunk. To achieve it, we use <CodeSplit> to declare\n * // an auxiliary <WrappedSampleComponent>, which we'll use everywhere\n * // in the code instead of <SampleComponent>. In result <SampleComponent>,\n * // and any other components in its sub-tree, not required directly in\n * // other chunks, will be placed into a dedicated chunk.\n *\n * // WrappedSampleComponent.jsx\n * import { CodeSplit, webpack } from '@dr.pogodin/react-utils';\n *\n * export default function WrappedSampleComponent(props) {\n * return (\n * <CodeSplit\n * chunkName=\"sample-component\"\n * getComponentAsync={\n * // NOTE: Use the normal comment block opening and closing at\n * // the next line instead of / * and * / (whitespaces between\n * // start and slash had to be added due to limitations of our\n * // documentation setup).\n * () => import(/ * webpackChunkName: 'sample-component' * / 'path/to/SampleComponent')\n * }\n * getComponentServer={\n * // NOTE: You cannot just use the standard require() here, as it would\n * // cause Webpack to bundle in required module into the current chunk,\n * // instead of the split one. Thus, this workaround.\n * (resolveRequire) => resolveRequire(__dirname, 'path/to/SampleComponent');\n * }\n * placeholder={() => <div>Optional Placeholder</div>}\n * {...props}\n * />\n * );\n * }\n */\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_utils__WEBPACK_IMPORTED_MODULE_0__.isomorphy.IS_SERVER_SIDE ? _utils__WEBPACK_IMPORTED_MODULE_0__.webpack.requireWeak(\"\".concat(__dirname, \"/ServerSide\")) : _ClientSide__WEBPACK_IMPORTED_MODULE_1__
|
|
79
|
+
eval("var __dirname = \"/\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _ClientSide__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ClientSide */ \"./src/shared/components/CodeSplit/ClientSide.jsx\");\n/**\n * @category Components\n * @func CodeSplit\n * @desc\n * ```js\n * import { CodeSplit } from '@dr.pogodin/react-utils';\n * ```\n * The `<CodeSplit>` component implements separation of an app part into\n * separate code & style chunks (thus, allowing to split compiled app bundle\n * into smaller lazy-loaded pieces).\n * @param {object} props Component properties.\n * @param {string} props.chunkName Unique chunk name.\n * @param {function} props.getComponentAsync Asynchronous function which\n * resolves to the component to render in place of the `<CodeSplit>`\n * (_i.e._ the component which we are splitting into a separate chunk),\n * and uses dynamic `import()` with Webpack's\n * [webpackChunkName](https://webpack.js.org/api/module-methods/#magic-comments) magic\n * comment stating the same chunk name, as was specified via the `chunkName`\n * property above.\n * @param {function} [props.getComponentServer] A synchronous version of\n * `getComponentAsync()` to be used during server-side rendering. If not\n * provided, the server-side code will fallback to the asynchronous\n * `getComponentAsync()`, which is sub-optimal. If provided, it will be called\n * with a special {@link resolveRequire} function passed in as the only\n * argument, which should be used to correctly resolve & require necessary\n * modules, without Webpack being able to detect it and thus bundle them\n * into client-side code (also see the example below).\n * @param {function} [props.placeholder] Placeholder React component to render\n * while the code for actual splitted component is being loaded.\n * @param {...any} [props....] Any other properties are passed as is into\n * the splitted component.\n * @example\n * // Assume <SampleComponent> is a React sub-tree we want to split into\n * // a stand-alone chunk. To achieve it, we use <CodeSplit> to declare\n * // an auxiliary <WrappedSampleComponent>, which we'll use everywhere\n * // in the code instead of <SampleComponent>. In result <SampleComponent>,\n * // and any other components in its sub-tree, not required directly in\n * // other chunks, will be placed into a dedicated chunk.\n *\n * // WrappedSampleComponent.jsx\n * import { CodeSplit, webpack } from '@dr.pogodin/react-utils';\n *\n * export default function WrappedSampleComponent(props) {\n * return (\n * <CodeSplit\n * chunkName=\"sample-component\"\n * getComponentAsync={\n * // NOTE: Use the normal comment block opening and closing at\n * // the next line instead of / * and * / (whitespaces between\n * // start and slash had to be added due to limitations of our\n * // documentation setup).\n * () => import(/ * webpackChunkName: 'sample-component' * / 'path/to/SampleComponent')\n * }\n * getComponentServer={\n * // NOTE: You cannot just use the standard require() here, as it would\n * // cause Webpack to bundle in required module into the current chunk,\n * // instead of the split one. Thus, this workaround.\n * (resolveRequire) => resolveRequire(__dirname, 'path/to/SampleComponent');\n * }\n * placeholder={() => <div>Optional Placeholder</div>}\n * {...props}\n * />\n * );\n * }\n */\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_utils__WEBPACK_IMPORTED_MODULE_0__.isomorphy.IS_SERVER_SIDE ? _utils__WEBPACK_IMPORTED_MODULE_0__.webpack.requireWeak(\"\".concat(__dirname, \"/ServerSide\")) : _ClientSide__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/CodeSplit/index.js?");
|
|
80
80
|
|
|
81
81
|
/***/ }),
|
|
82
82
|
|
|
@@ -86,7 +86,7 @@ eval("var __dirname = \"/\";\n__webpack_require__.r(__webpack_exports__);\n/* ha
|
|
|
86
86
|
\**************************************************/
|
|
87
87
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
88
88
|
|
|
89
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"lodash\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Dropdown/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n/**\n * @category Components\n * @typedef {object} DropdownOption Represents a single option inside\n * {@link Dropdown} component.\n * @prop {string} [name] Option name (displayed in UI). If not given,\n * the `value` is used as the name.\n * @prop {string} value Option value key (used inside the code).\n */\n\n/**\n * @category Components\n * @desc\n * ```js\n * import { Dropdown } from '@dr.pogodin/react-utils';\n * ```\n * Implements a themeable dropdown list. Internally it is rendered with help of\n * the standard HTML `<select>` element, thus the styling support is somewhat\n * limited.\n * @param {object} [props] Component properties.\n * @param {function} [props.filter] Options filter function. If provided, only\n * those elements of `options` list will be used by the dropdown, for which this\n * filter returns `true`.\n * @param {string} [props.label] Dropdown label.\n * @param {string} [props.onChange] Selection event handler.\n * @param {DropdownOption[]|string[]} [props.options=[]] Array of dropdown\n * options. For string elements the option value and name will be the same.\n * It is allowed to mix DropdownOption and string elements in the same option\n * list.\n * @param {DropdownTheme} [props.theme] _Ad hoc_ theme.\n * @param {string} [props.value] Currently selected value.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\n\n\n\n\nfunction Dropdown(_ref) {\n var filter = _ref.filter,\n label = _ref.label,\n onChange = _ref.onChange,\n options = _ref.options,\n theme = _ref.theme,\n value = _ref.value;\n var optionArray = [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"option\", {\n className: theme.hiddenOption,\n children: \"\\u200C\"\n }, \"__reactUtilsHiddenOption\")];\n\n for (var i = 0; i < options.length; ++i) {\n var op = options[i];\n\n if (!filter || filter(op)) {\n if ((0,lodash__WEBPACK_IMPORTED_MODULE_0__.isString)(op)) op = {\n value: op\n };\n optionArray.push( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"option\", {\n className: theme.option,\n value: op.value,\n children: op.name === undefined ? op.value : op.name\n }, op.value));\n }\n }\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(\"div\", {\n className: theme.container,\n children: [label === undefined ? null : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"p\", {\n className: theme.label,\n children: label\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"select\", {\n className: theme.select,\n onChange: onChange,\n value: value,\n children: optionArray\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"div\", {\n className: theme.arrow,\n children: \"\\u25BC\"\n })]\n });\n}\n/**\n * @category Components\n * @typedef {object} DropdownTheme {@link Dropdown} component theme.\n * @prop {string} [arrow] Class name for arrow element.\n * @prop {string} [container] Class name for the root dropdown element.\n * @prop {string} [hiddenOption] Class name for the \"hidden option\" element,\n * which is rendered when dropdown value is undefined.\n * @prop {string} [label] Class name for label element.\n * @prop {string} [option] Class name for each option item element.\n * @prop {string} [select] Class name for the underlying `<select>` element.\n */\n\n\nvar ThemedDropdown = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.themed)('Dropdown', ['arrow', 'container', 'hiddenOption', 'label', 'option', 'select'], _theme_scss__WEBPACK_IMPORTED_MODULE_3__
|
|
89
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"lodash\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Dropdown/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n/**\n * @category Components\n * @typedef {object} DropdownOption Represents a single option inside\n * {@link Dropdown} component.\n * @prop {string} [name] Option name (displayed in UI). If not given,\n * the `value` is used as the name.\n * @prop {string} value Option value key (used inside the code).\n */\n\n/**\n * @category Components\n * @desc\n * ```js\n * import { Dropdown } from '@dr.pogodin/react-utils';\n * ```\n * Implements a themeable dropdown list. Internally it is rendered with help of\n * the standard HTML `<select>` element, thus the styling support is somewhat\n * limited.\n * @param {object} [props] Component properties.\n * @param {function} [props.filter] Options filter function. If provided, only\n * those elements of `options` list will be used by the dropdown, for which this\n * filter returns `true`.\n * @param {string} [props.label] Dropdown label.\n * @param {string} [props.onChange] Selection event handler.\n * @param {DropdownOption[]|string[]} [props.options=[]] Array of dropdown\n * options. For string elements the option value and name will be the same.\n * It is allowed to mix DropdownOption and string elements in the same option\n * list.\n * @param {DropdownTheme} [props.theme] _Ad hoc_ theme.\n * @param {string} [props.value] Currently selected value.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\n\n\n\n\nfunction Dropdown(_ref) {\n var filter = _ref.filter,\n label = _ref.label,\n onChange = _ref.onChange,\n options = _ref.options,\n theme = _ref.theme,\n value = _ref.value;\n var optionArray = [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"option\", {\n className: theme.hiddenOption,\n children: \"\\u200C\"\n }, \"__reactUtilsHiddenOption\")];\n\n for (var i = 0; i < options.length; ++i) {\n var op = options[i];\n\n if (!filter || filter(op)) {\n if ((0,lodash__WEBPACK_IMPORTED_MODULE_0__.isString)(op)) op = {\n value: op\n };\n optionArray.push( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"option\", {\n className: theme.option,\n value: op.value,\n children: op.name === undefined ? op.value : op.name\n }, op.value));\n }\n }\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(\"div\", {\n className: theme.container,\n children: [label === undefined ? null : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"p\", {\n className: theme.label,\n children: label\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"select\", {\n className: theme.select,\n onChange: onChange,\n value: value,\n children: optionArray\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"div\", {\n className: theme.arrow,\n children: \"\\u25BC\"\n })]\n });\n}\n/**\n * @category Components\n * @typedef {object} DropdownTheme {@link Dropdown} component theme.\n * @prop {string} [arrow] Class name for arrow element.\n * @prop {string} [container] Class name for the root dropdown element.\n * @prop {string} [hiddenOption] Class name for the \"hidden option\" element,\n * which is rendered when dropdown value is undefined.\n * @prop {string} [label] Class name for label element.\n * @prop {string} [option] Class name for each option item element.\n * @prop {string} [select] Class name for the underlying `<select>` element.\n */\n\n\nvar ThemedDropdown = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.themed)('Dropdown', ['arrow', 'container', 'hiddenOption', 'label', 'option', 'select'], _theme_scss__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Dropdown);\nDropdown.propTypes = {\n filter: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func),\n label: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),\n onChange: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func),\n options: prop_types__WEBPACK_IMPORTED_MODULE_1___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default().shape({\n name: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node),\n value: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string.isRequired)\n }), (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string)]).isRequired),\n theme: ThemedDropdown.themeType.isRequired,\n value: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string)\n};\nDropdown.defaultProps = {\n filter: undefined,\n label: undefined,\n onChange: undefined,\n options: [],\n value: undefined\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedDropdown);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/Dropdown/index.jsx?");
|
|
90
90
|
|
|
91
91
|
/***/ }),
|
|
92
92
|
|
|
@@ -106,7 +106,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
106
106
|
\***********************************************/
|
|
107
107
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
108
108
|
|
|
109
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"@babel/runtime/helpers/objectWithoutProperties\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Input/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\nvar _excluded = [\"label\", \"theme\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n/**\n * @category Components\n * @desc\n * ```js\n * import { Input } from '@dr.pogodin/react-utils';\n * ```\n * Themeable input field, based on the standard HTML `<input>` element.\n * @param {object} [props]\n * @param {string} [props.label] Input label.\n * @param {InputTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....] [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n * @param {...any} [props....] Any other properties are passed to the underlying\n * `<input>` element.\n */\n\n\n\n\nfunction Input(_ref) {\n var label = _ref.label,\n theme = _ref.theme,\n rest = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default()(_ref, _excluded);\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(\"div\", {\n className: theme.container,\n children: [label === undefined ? null : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"p\", {\n className: theme.label,\n children: label\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"input\", _objectSpread({\n className: theme.input\n }, rest))]\n });\n}\n/**\n * @category Components\n * @typedef {object} InputTheme {@link Input} component theme.\n * @prop {string} [container] Class name for root component element.\n * @prop {string} [input] Class name for the underlying HTML `<input>` element.\n * @prop {string} [label] Class name for label element.\n */\n\n\nvar ThemedInput = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.themed)('Input', ['container', 'input', 'label'], _theme_scss__WEBPACK_IMPORTED_MODULE_4__
|
|
109
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"@babel/runtime/helpers/objectWithoutProperties\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Input/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\nvar _excluded = [\"label\", \"theme\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n\n/**\n * @category Components\n * @desc\n * ```js\n * import { Input } from '@dr.pogodin/react-utils';\n * ```\n * Themeable input field, based on the standard HTML `<input>` element.\n * @param {object} [props]\n * @param {string} [props.label] Input label.\n * @param {InputTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....] [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n * @param {...any} [props....] Any other properties are passed to the underlying\n * `<input>` element.\n */\n\n\n\n\nfunction Input(_ref) {\n var label = _ref.label,\n theme = _ref.theme,\n rest = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default()(_ref, _excluded);\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(\"div\", {\n className: theme.container,\n children: [label === undefined ? null : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"p\", {\n className: theme.label,\n children: label\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"input\", _objectSpread({\n className: theme.input\n }, rest))]\n });\n}\n/**\n * @category Components\n * @typedef {object} InputTheme {@link Input} component theme.\n * @prop {string} [container] Class name for root component element.\n * @prop {string} [input] Class name for the underlying HTML `<input>` element.\n * @prop {string} [label] Class name for label element.\n */\n\n\nvar ThemedInput = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.themed)('Input', ['container', 'input', 'label'], _theme_scss__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(Input);\nInput.propTypes = {\n label: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),\n theme: ThemedInput.themeType.isRequired\n};\nInput.defaultProps = {\n label: undefined\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedInput);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/Input/index.jsx?");
|
|
110
110
|
|
|
111
111
|
/***/ }),
|
|
112
112
|
|
|
@@ -116,7 +116,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bab
|
|
|
116
116
|
\****************************************/
|
|
117
117
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
118
118
|
|
|
119
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Link; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _GenericLink__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./GenericLink */ \"./src/shared/components/GenericLink/index.jsx\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * The Link wraps around React Router's Link component, to automatically replace\n * it by the regular <a> element when:\n * - The target reference points to another domain;\n * - User opts to open the reference in a new tab;\n * - User explicitely opts to use <a>.\n */\n\n\n\nfunction Link(props) {\n /* eslint-disable react/jsx-props-no-spreading */\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_GenericLink__WEBPACK_IMPORTED_MODULE_2__
|
|
119
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Link; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _GenericLink__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./GenericLink */ \"./src/shared/components/GenericLink/index.jsx\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * The Link wraps around React Router's Link component, to automatically replace\n * it by the regular <a> element when:\n * - The target reference points to another domain;\n * - User opts to open the reference in a new tab;\n * - User explicitely opts to use <a>.\n */\n\n\n\nfunction Link(props) {\n /* eslint-disable react/jsx-props-no-spreading */\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_GenericLink__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _objectSpread(_objectSpread({}, props), {}, {\n routerLinkType: react_router_dom__WEBPACK_IMPORTED_MODULE_1__.Link\n }));\n /* eslint-enable react/jsx-props-no-spreading */\n}\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/Link.jsx?");
|
|
120
120
|
|
|
121
121
|
/***/ }),
|
|
122
122
|
|
|
@@ -136,7 +136,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
136
136
|
\***********************************************/
|
|
137
137
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
138
138
|
|
|
139
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BaseModal\": function() { return /* binding */ BaseModal; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"@babel/runtime/helpers/slicedToArray\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ \"lodash\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _base_theme_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base-theme.scss */ \"./src/shared/components/Modal/base-theme.scss\");\n/* harmony import */ var _styles_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./styles.scss */ \"./src/shared/components/Modal/styles.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n/* global document */\n\n\n\n\n\n\n\n/**\n * @category Components\n * @func Modal\n * @desc\n * ```jsx\n * import { BaseModal, Modal } from '@dr.pogodin/react-utils';\n * ```\n * The `<Modal>` component implements a simple themeable modal window, wrapped\n * into the default theme. `<BaseModal>` exposes the base non-themed component.\n * **Children:** Component children are rendered as the modal content.\n * @param {object} props Component properties.\n * @param {function} [props.onCancel] The callback to trigger when user\n * clicks outside the modal, or presses Escape. It is expected to hide the\n * modal.\n * @param {ModalTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n * @example\n * import React, { useState } from 'react';\n * import { Button, Modal } from '@dr.pogodin/react-utils';\n *\n * export default function ModalDemo() {\n * const [visible, setVisible] = useState(false);\n * return (\n * <div>\n * <Button onClick={() => setVisible(true)}>Show Modal</Button>\n * {\n * visible ? (\n * <Modal onCancel={() => setVisible(false)}>\n * This is a simple modal. Click outside, or press Escape to close\n * it.\n * </Modal>\n * ) : null\n * }\n * </div>\n * );\n * }\n */\n\n\n\n\n\nfunction BaseModal(_ref) {\n var children = _ref.children,\n onCancel = _ref.onCancel,\n theme = _ref.theme;\n var containerRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();\n var overlayRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();\n\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(),\n _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),\n portal = _useState2[0],\n setPortal = _useState2[1];\n\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {\n var p = document.createElement('div');\n document.body.classList.add('scrolling-disabled-by-modal');\n document.body.appendChild(p);\n setPortal(p);\n return function () {\n document.body.classList.remove('scrolling-disabled-by-modal');\n document.body.removeChild(p);\n };\n }, []);\n var focusLast = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n onFocus: function onFocus() {\n var elems = containerRef.current.querySelectorAll('*');\n\n for (var i = elems.length - 1; i >= 0; --i) {\n elems[i].focus();\n if (document.activeElement === elems[i]) return;\n }\n\n overlayRef.current.focus();\n }\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n ,\n tabIndex: \"0\"\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n\n });\n }, []);\n return portal ? /*#__PURE__*/react_dom__WEBPACK_IMPORTED_MODULE_3___default().createPortal( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.Fragment, {\n children: [focusLast, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n \"aria-label\": \"Cancel\",\n className: theme.overlay,\n onClick: function onClick() {\n return onCancel();\n },\n onKeyDown: function onKeyDown(e) {\n if (e.key === 'Escape') onCancel();\n },\n ref: function ref(node) {\n if (node && node !== overlayRef.current) {\n overlayRef.current = node;\n node.focus();\n }\n },\n role: \"button\",\n tabIndex: \"0\"\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n \"aria-modal\": \"true\",\n className: theme.container,\n onWheel: function onWheel(event) {\n return event.stopPropagation();\n },\n ref: containerRef,\n role: \"dialog\",\n children: children\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n onFocus: function onFocus() {\n overlayRef.current.focus();\n }\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n ,\n tabIndex: \"0\"\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n\n }), focusLast]\n }), portal) : null;\n}\n/**\n * @category Components\n * @typedef {object} ModalTheme {@link Modal} component theme.\n * @prop {string} [container] Class for modal container.\n * @prop {string} [overlay] Class for modal overlay (the background closing\n * the page underneath the modal).\n */\n\n\nvar ThemedModal = _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_5___default()('Modal', ['container', 'overlay'], _base_theme_scss__WEBPACK_IMPORTED_MODULE_6__
|
|
139
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BaseModal\": function() { return /* binding */ BaseModal; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"@babel/runtime/helpers/slicedToArray\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ \"lodash\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _base_theme_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base-theme.scss */ \"./src/shared/components/Modal/base-theme.scss\");\n/* harmony import */ var _styles_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./styles.scss */ \"./src/shared/components/Modal/styles.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n/* global document */\n\n\n\n\n\n\n\n/**\n * @category Components\n * @func Modal\n * @desc\n * ```jsx\n * import { BaseModal, Modal } from '@dr.pogodin/react-utils';\n * ```\n * The `<Modal>` component implements a simple themeable modal window, wrapped\n * into the default theme. `<BaseModal>` exposes the base non-themed component.\n * **Children:** Component children are rendered as the modal content.\n * @param {object} props Component properties.\n * @param {function} [props.onCancel] The callback to trigger when user\n * clicks outside the modal, or presses Escape. It is expected to hide the\n * modal.\n * @param {ModalTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n * @example\n * import React, { useState } from 'react';\n * import { Button, Modal } from '@dr.pogodin/react-utils';\n *\n * export default function ModalDemo() {\n * const [visible, setVisible] = useState(false);\n * return (\n * <div>\n * <Button onClick={() => setVisible(true)}>Show Modal</Button>\n * {\n * visible ? (\n * <Modal onCancel={() => setVisible(false)}>\n * This is a simple modal. Click outside, or press Escape to close\n * it.\n * </Modal>\n * ) : null\n * }\n * </div>\n * );\n * }\n */\n\n\n\n\n\nfunction BaseModal(_ref) {\n var children = _ref.children,\n onCancel = _ref.onCancel,\n theme = _ref.theme;\n var containerRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();\n var overlayRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();\n\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(),\n _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),\n portal = _useState2[0],\n setPortal = _useState2[1];\n\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {\n var p = document.createElement('div');\n document.body.classList.add('scrolling-disabled-by-modal');\n document.body.appendChild(p);\n setPortal(p);\n return function () {\n document.body.classList.remove('scrolling-disabled-by-modal');\n document.body.removeChild(p);\n };\n }, []);\n var focusLast = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n onFocus: function onFocus() {\n var elems = containerRef.current.querySelectorAll('*');\n\n for (var i = elems.length - 1; i >= 0; --i) {\n elems[i].focus();\n if (document.activeElement === elems[i]) return;\n }\n\n overlayRef.current.focus();\n }\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n ,\n tabIndex: \"0\"\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n\n });\n }, []);\n return portal ? /*#__PURE__*/react_dom__WEBPACK_IMPORTED_MODULE_3___default().createPortal( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.Fragment, {\n children: [focusLast, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n \"aria-label\": \"Cancel\",\n className: theme.overlay,\n onClick: function onClick() {\n return onCancel();\n },\n onKeyDown: function onKeyDown(e) {\n if (e.key === 'Escape') onCancel();\n },\n ref: function ref(node) {\n if (node && node !== overlayRef.current) {\n overlayRef.current = node;\n node.focus();\n }\n },\n role: \"button\",\n tabIndex: \"0\"\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n \"aria-modal\": \"true\",\n className: theme.container,\n onWheel: function onWheel(event) {\n return event.stopPropagation();\n },\n ref: containerRef,\n role: \"dialog\",\n children: children\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"div\", {\n onFocus: function onFocus() {\n overlayRef.current.focus();\n }\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n ,\n tabIndex: \"0\"\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n\n }), focusLast]\n }), portal) : null;\n}\n/**\n * @category Components\n * @typedef {object} ModalTheme {@link Modal} component theme.\n * @prop {string} [container] Class for modal container.\n * @prop {string} [overlay] Class for modal overlay (the background closing\n * the page underneath the modal).\n */\n\n\nvar ThemedModal = _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_5___default()('Modal', ['container', 'overlay'], _base_theme_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(BaseModal);\nBaseModal.propTypes = {\n onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),\n children: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node),\n theme: ThemedModal.themeType.isRequired\n};\nBaseModal.defaultProps = {\n onCancel: lodash__WEBPACK_IMPORTED_MODULE_1__.noop,\n children: null\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedModal);\n/* Non-themed version of the Modal. */\n\n\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/Modal/index.jsx?");
|
|
140
140
|
|
|
141
141
|
/***/ }),
|
|
142
142
|
|
|
@@ -146,7 +146,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
146
146
|
\*******************************************/
|
|
147
147
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
148
148
|
|
|
149
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ NavLink; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _GenericLink__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./GenericLink */ \"./src/shared/components/GenericLink/index.jsx\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n/**\n * @category Components\n * @func NavLink\n * @desc\n * ```js\n * import { NavLink } from '@dr.pogodin/react-utils';\n * ```\n * See {@link Link} documentation.\n * @param {object} [props] Component properties.\n */\n\n\nfunction NavLink(props) {\n /* eslint-disable react/jsx-props-no-spreading */\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_GenericLink__WEBPACK_IMPORTED_MODULE_2__
|
|
149
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ NavLink; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"@babel/runtime/helpers/defineProperty\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-router-dom */ \"react-router-dom\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _GenericLink__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./GenericLink */ \"./src/shared/components/GenericLink/index.jsx\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n\n\n/**\n * @category Components\n * @func NavLink\n * @desc\n * ```js\n * import { NavLink } from '@dr.pogodin/react-utils';\n * ```\n * See {@link Link} documentation.\n * @param {object} [props] Component properties.\n */\n\n\nfunction NavLink(props) {\n /* eslint-disable react/jsx-props-no-spreading */\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_GenericLink__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _objectSpread(_objectSpread({}, props), {}, {\n routerLinkType: react_router_dom__WEBPACK_IMPORTED_MODULE_1__.NavLink\n }));\n /* eslint-enable react/jsx-props-no-spreading */\n}\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/NavLink.jsx?");
|
|
150
150
|
|
|
151
151
|
/***/ }),
|
|
152
152
|
|
|
@@ -156,7 +156,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
156
156
|
\****************************************************/
|
|
157
157
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
158
158
|
|
|
159
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _base_theme_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base-theme.scss */ \"./src/shared/components/PageLayout/base-theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n/**\n * @category Components\n * @func PageLayout\n * @desc\n * ```jsx\n * import { PageLayout } from '@dr.pogodin/react-utils';\n * export default PageLayoutDemo() {\n * return (\n * <PageLayout>\n * Page content.\n * </PageLayout>\n * );\n * }\n * ```\n * Simple and themeable page layout. It keeps the main content centered in\n * a column of limited width, which fills entire viewport on small screens\n * (under `$screen-md = 1024px` size). At larger screens the column keeps\n * `$screen-md` size, and it is centered at the page, surrounded by side\n * panels, where additional content can be displayed.\n *\n * **Children:** Component children are rendered as the content of main panel.\n * @param {object} [props] Component properties.\n * @param {Node} [props.leftSidePanelContent] The content for left side panel.\n * @param {Node} [props.rightSidePanelContent] The content for right side panel.\n * @param {PageLayoutTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\n\n\n\n\nfunction PageLayout(_ref) {\n var children = _ref.children,\n leftSidePanelContent = _ref.leftSidePanelContent,\n rightSidePanelContent = _ref.rightSidePanelContent,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(\"div\", {\n className: theme.container,\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: [theme.sidePanel, theme.leftSidePanel].join(' '),\n children: leftSidePanelContent\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: theme.mainPanel,\n children: children\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: [theme.sidePanel, theme.rightSidePanel].join(' '),\n children: rightSidePanelContent\n })]\n });\n}\n/**\n * @category Components\n * @typedef {object} PageLayoutTheme {@link PageLayout} component theme.\n * @prop {string} [container] Class for the root container of page layout.\n * @prop {string} [mainPanel] Class for the main content panel.\n * @prop {string} [sidePanel] Class for each side panel.\n * @prop {string} [leftSidePanel] Class for the left side panel (in addition to\n * `.sidePanel`, if also provided).\n * @prop {string} [rightSidePanel] Class for the right side panel (in addition\n * to `.sidePanel`, if also provided).\n */\n\n\nvar ThemedPageLayout = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.themed)('PageLayout', ['container', 'leftSidePanel', 'mainPanel', 'rightSidePanel', 'sidePanel'], _base_theme_scss__WEBPACK_IMPORTED_MODULE_2__
|
|
159
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _base_theme_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base-theme.scss */ \"./src/shared/components/PageLayout/base-theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n/**\n * @category Components\n * @func PageLayout\n * @desc\n * ```jsx\n * import { PageLayout } from '@dr.pogodin/react-utils';\n * export default PageLayoutDemo() {\n * return (\n * <PageLayout>\n * Page content.\n * </PageLayout>\n * );\n * }\n * ```\n * Simple and themeable page layout. It keeps the main content centered in\n * a column of limited width, which fills entire viewport on small screens\n * (under `$screen-md = 1024px` size). At larger screens the column keeps\n * `$screen-md` size, and it is centered at the page, surrounded by side\n * panels, where additional content can be displayed.\n *\n * **Children:** Component children are rendered as the content of main panel.\n * @param {object} [props] Component properties.\n * @param {Node} [props.leftSidePanelContent] The content for left side panel.\n * @param {Node} [props.rightSidePanelContent] The content for right side panel.\n * @param {PageLayoutTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\n\n\n\n\nfunction PageLayout(_ref) {\n var children = _ref.children,\n leftSidePanelContent = _ref.leftSidePanelContent,\n rightSidePanelContent = _ref.rightSidePanelContent,\n theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(\"div\", {\n className: theme.container,\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: [theme.sidePanel, theme.leftSidePanel].join(' '),\n children: leftSidePanelContent\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: theme.mainPanel,\n children: children\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: [theme.sidePanel, theme.rightSidePanel].join(' '),\n children: rightSidePanelContent\n })]\n });\n}\n/**\n * @category Components\n * @typedef {object} PageLayoutTheme {@link PageLayout} component theme.\n * @prop {string} [container] Class for the root container of page layout.\n * @prop {string} [mainPanel] Class for the main content panel.\n * @prop {string} [sidePanel] Class for each side panel.\n * @prop {string} [leftSidePanel] Class for the left side panel (in addition to\n * `.sidePanel`, if also provided).\n * @prop {string} [rightSidePanel] Class for the right side panel (in addition\n * to `.sidePanel`, if also provided).\n */\n\n\nvar ThemedPageLayout = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.themed)('PageLayout', ['container', 'leftSidePanel', 'mainPanel', 'rightSidePanel', 'sidePanel'], _base_theme_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(PageLayout);\nPageLayout.propTypes = {\n children: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().node),\n leftSidePanelContent: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().node),\n rightSidePanelContent: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().node),\n theme: ThemedPageLayout.themeType.isRequired\n};\nPageLayout.defaultProps = {\n children: null,\n leftSidePanelContent: null,\n rightSidePanelContent: null\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedPageLayout);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/PageLayout/index.jsx?");
|
|
160
160
|
|
|
161
161
|
/***/ }),
|
|
162
162
|
|
|
@@ -176,7 +176,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
176
176
|
\**************************************************/
|
|
177
177
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
178
178
|
|
|
179
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Throbber/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n/**\n * @category Components\n * @func Throbber\n * @desc\n * ```jsx\n * import { Throbber } from '@dr.pogodin/react-utils';\n * ```\n * Throbber is an \"action in progress\" indicator, which renders\n * three bouncing circles as a simple pending activity indicator,\n * and can be further themed to a certain degree.\n * @param {object} [props] Component properties.\n * @param {ThrobberTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\n\n\n\n\nfunction Throbber(_ref) {\n var theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(\"div\", {\n className: (theme.container ? theme.container + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___container___1aJSBX\",\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: (theme.circle ? theme.circle + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___2c_4lS\"\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: (theme.circle ? theme.circle + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___2c_4lS\"\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: (theme.circle ? theme.circle + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___2c_4lS\"\n })]\n });\n}\n\nThrobber.defaultProps = {\n theme: {}\n};\nThrobber.propTypes = {\n theme: prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n container: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n circle: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string)\n })\n};\n/**\n * @category Components\n * @typedef {object} ThrobberTheme {@link Throbber} theme.\n * @prop {string} [container] Class name to add to the throbber container.\n * @prop {string} [circle] Class name to add to each throbber circle.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_1___default()('Throbber', ['circle', 'container'], _theme_scss__WEBPACK_IMPORTED_MODULE_2__
|
|
179
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Throbber/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n/**\n * @category Components\n * @func Throbber\n * @desc\n * ```jsx\n * import { Throbber } from '@dr.pogodin/react-utils';\n * ```\n * Throbber is an \"action in progress\" indicator, which renders\n * three bouncing circles as a simple pending activity indicator,\n * and can be further themed to a certain degree.\n * @param {object} [props] Component properties.\n * @param {ThrobberTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\n\n\n\n\nfunction Throbber(_ref) {\n var theme = _ref.theme;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(\"div\", {\n className: (theme.container ? theme.container + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___container___1aJSBX\",\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: (theme.circle ? theme.circle + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___2c_4lS\"\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: (theme.circle ? theme.circle + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___2c_4lS\"\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"div\", {\n className: (theme.circle ? theme.circle + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___2c_4lS\"\n })]\n });\n}\n\nThrobber.defaultProps = {\n theme: {}\n};\nThrobber.propTypes = {\n theme: prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n container: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n circle: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string)\n })\n};\n/**\n * @category Components\n * @typedef {object} ThrobberTheme {@link Throbber} theme.\n * @prop {string} [container] Class name to add to the throbber container.\n * @prop {string} [circle] Class name to add to each throbber circle.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_1___default()('Throbber', ['circle', 'container'], _theme_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(Throbber));\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/Throbber/index.jsx?");
|
|
180
180
|
|
|
181
181
|
/***/ }),
|
|
182
182
|
|
|
@@ -196,7 +196,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
196
196
|
\*****************************************************/
|
|
197
197
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
198
198
|
|
|
199
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"@babel/runtime/helpers/slicedToArray\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Tooltip */ \"./src/shared/components/WithTooltip/Tooltip.jsx\");\n/* harmony import */ var _default_theme_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./default-theme.scss */ \"./src/shared/components/WithTooltip/default-theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n/* global window */\n\n\n\n\n\n/**\n * @category Components\n * @func WithTooltip\n * @desc\n * ```js\n * import { WithTooltip } from '@dr.pogodin/react-utils';\n * ```\n * Implements a simple to use and themeable tooltip component, _e.g._\n * ```js\n * <WithTooltip tip=\"This is example tooltip.\">\n * <p>Hover to see the tooltip.</p>\n * </WithTooltip>\n * ```\n * **Children:** Children are rendered in the place of `<WithTooltip>`,\n * and when hovered the tooltip is shown. By default the wrapper itself is\n * `<div>` block with `display: inline-block`.\n * @param {object} props Component properties.\n * @param {React.node} props.tip – Anything React is able to render,\n * _e.g._ a tooltip text. This will be the tooltip content.\n * @param {WithTooltipTheme} props.theme _Ad hoc_ theme.\n */\n\n\n\n\nfunction Wrapper(_ref) {\n var children = _ref.children,\n placement = _ref.placement,\n tip = _ref.tip,\n theme = _ref.theme;\n var tooltipRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();\n var wrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();\n\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false),\n _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),\n showTooltip = _useState2[0],\n setShowTooltip = _useState2[1];\n\n var updatePortalPosition = function updatePortalPosition(cursorX, cursorY) {\n if (!showTooltip) setShowTooltip(true);else {\n var wrapperRect = wrapperRef.current.getBoundingClientRect();\n\n if (cursorX < wrapperRect.left || cursorX > wrapperRect.right || cursorY < wrapperRect.top || cursorY > wrapperRect.bottom) {\n setShowTooltip(false);\n } else if (tooltipRef.current) {\n tooltipRef.current.pointTo(cursorX + window.pageXOffset, cursorY + window.pageYOffset, placement, wrapperRef.current);\n }\n }\n };\n\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {\n if (showTooltip && tip !== null) {\n var listener = function listener() {\n return setShowTooltip(false);\n };\n\n window.addEventListener('scroll', listener);\n return function () {\n return window.removeEventListener('scroll', listener);\n };\n }\n\n return undefined;\n }, [showTooltip, tip]);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(\"div\", {\n className: theme.wrapper,\n onMouseLeave: function onMouseLeave() {\n return setShowTooltip(false);\n },\n onMouseMove: function onMouseMove(e) {\n return updatePortalPosition(e.clientX, e.clientY);\n },\n ref: wrapperRef,\n children: [showTooltip && tip !== null ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Tooltip__WEBPACK_IMPORTED_MODULE_4__
|
|
199
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"@babel/runtime/helpers/slicedToArray\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/shared/utils/index.js\");\n/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Tooltip */ \"./src/shared/components/WithTooltip/Tooltip.jsx\");\n/* harmony import */ var _default_theme_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./default-theme.scss */ \"./src/shared/components/WithTooltip/default-theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n/* global window */\n\n\n\n\n\n/**\n * @category Components\n * @func WithTooltip\n * @desc\n * ```js\n * import { WithTooltip } from '@dr.pogodin/react-utils';\n * ```\n * Implements a simple to use and themeable tooltip component, _e.g._\n * ```js\n * <WithTooltip tip=\"This is example tooltip.\">\n * <p>Hover to see the tooltip.</p>\n * </WithTooltip>\n * ```\n * **Children:** Children are rendered in the place of `<WithTooltip>`,\n * and when hovered the tooltip is shown. By default the wrapper itself is\n * `<div>` block with `display: inline-block`.\n * @param {object} props Component properties.\n * @param {React.node} props.tip – Anything React is able to render,\n * _e.g._ a tooltip text. This will be the tooltip content.\n * @param {WithTooltipTheme} props.theme _Ad hoc_ theme.\n */\n\n\n\n\nfunction Wrapper(_ref) {\n var children = _ref.children,\n placement = _ref.placement,\n tip = _ref.tip,\n theme = _ref.theme;\n var tooltipRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();\n var wrapperRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();\n\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false),\n _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),\n showTooltip = _useState2[0],\n setShowTooltip = _useState2[1];\n\n var updatePortalPosition = function updatePortalPosition(cursorX, cursorY) {\n if (!showTooltip) setShowTooltip(true);else {\n var wrapperRect = wrapperRef.current.getBoundingClientRect();\n\n if (cursorX < wrapperRect.left || cursorX > wrapperRect.right || cursorY < wrapperRect.top || cursorY > wrapperRect.bottom) {\n setShowTooltip(false);\n } else if (tooltipRef.current) {\n tooltipRef.current.pointTo(cursorX + window.pageXOffset, cursorY + window.pageYOffset, placement, wrapperRef.current);\n }\n }\n };\n\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {\n if (showTooltip && tip !== null) {\n var listener = function listener() {\n return setShowTooltip(false);\n };\n\n window.addEventListener('scroll', listener);\n return function () {\n return window.removeEventListener('scroll', listener);\n };\n }\n\n return undefined;\n }, [showTooltip, tip]);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(\"div\", {\n className: theme.wrapper,\n onMouseLeave: function onMouseLeave() {\n return setShowTooltip(false);\n },\n onMouseMove: function onMouseMove(e) {\n return updatePortalPosition(e.clientX, e.clientY);\n },\n ref: wrapperRef,\n children: [showTooltip && tip !== null ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Tooltip__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n ref: tooltipRef,\n theme: theme,\n children: tip\n }) : null, children]\n });\n}\n\nvar ThemedWrapper = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.themed)('WithTooltip', ['appearance', 'arrow', 'container', 'content', 'wrapper'], _default_theme_scss__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Wrapper);\nThemedWrapper.PLACEMENTS = _Tooltip__WEBPACK_IMPORTED_MODULE_4__.PLACEMENTS;\nWrapper.propTypes = {\n children: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node),\n placement: prop_types__WEBPACK_IMPORTED_MODULE_1___default().oneOf(Object.values(_Tooltip__WEBPACK_IMPORTED_MODULE_4__.PLACEMENTS)),\n theme: ThemedWrapper.themeType.isRequired,\n tip: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node)\n};\nWrapper.defaultProps = {\n children: null,\n placement: _Tooltip__WEBPACK_IMPORTED_MODULE_4__.PLACEMENTS.ABOVE_CURSOR,\n tip: null\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedWrapper);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/WithTooltip/index.jsx?");
|
|
200
200
|
|
|
201
201
|
/***/ }),
|
|
202
202
|
|
|
@@ -206,7 +206,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bab
|
|
|
206
206
|
\******************************************************/
|
|
207
207
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
208
208
|
|
|
209
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"@babel/runtime/helpers/slicedToArray\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! qs */ \"qs\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _ScalableRect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ScalableRect */ \"./src/shared/components/ScalableRect/index.jsx\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _Throbber__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Throbber */ \"./src/shared/components/Throbber/index.jsx\");\n/* harmony import */ var _base_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base.scss */ \"./src/shared/components/YouTubeVideo/base.scss\");\n/* harmony import */ var _throbber_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./throbber.scss */ \"./src/shared/components/YouTubeVideo/throbber.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n\n\n\n\n/**\n * @category Components\n * @func YouTubeVideo\n * @desc\n * ```js\n * import { YouTubeVideo } from '@dr.pogodin/react-utils';\n * ```\n * A component for embeding a YouTube video.\n * @param {object} [props] Component properties.\n * @param {boolean} [props.autoplay] If `true` the video will start to play\n * automatically once loaded.\n * @param {string} [props.src] URL of the video to play. Can be in any of\n * the following formats, and keeps any additional query parameters understood\n * by the YouTube IFrame player:\n * - `https://www.youtube.com/watch?v=NdF6Rmt6Ado`\n * - `https://youtu.be/NdF6Rmt6Ado`\n * - `https://www.youtube.com/embed/NdF6Rmt6Ado`\n * @param {YouTubeVideoTheme} [props.theme] _Ad hoc_ theme.\n * @param {string} [props.title] The `title` attribute to add to the player\n * IFrame.\n */\n\n\n\n\nfunction YouTubeVideo(_ref) {\n var autoplay = _ref.autoplay,\n src = _ref.src,\n theme = _ref.theme,\n title = _ref.title;\n\n var _src$split = src.split('?'),\n _src$split2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_src$split, 2),\n url = _src$split2[0],\n query = _src$split2[1];\n\n query = query ? qs__WEBPACK_IMPORTED_MODULE_2___default().parse(query) : {};\n var videoId = query.v || url.match(/\\/([a-zA-Z0-9-_]*)$/)[1];\n url = \"https://www.youtube.com/embed/\".concat(videoId);\n delete query.v;\n query.autoplay = autoplay ? 1 : 0;\n url += \"?\".concat(qs__WEBPACK_IMPORTED_MODULE_2___default().stringify(query)); // TODO: https://developers.google.com/youtube/player_parameters\n // More query parameters can be exposed via the component props.\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_ScalableRect__WEBPACK_IMPORTED_MODULE_3__
|
|
209
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"@babel/runtime/helpers/slicedToArray\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"prop-types\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! qs */ \"qs\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _ScalableRect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ScalableRect */ \"./src/shared/components/ScalableRect/index.jsx\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _Throbber__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Throbber */ \"./src/shared/components/Throbber/index.jsx\");\n/* harmony import */ var _base_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base.scss */ \"./src/shared/components/YouTubeVideo/base.scss\");\n/* harmony import */ var _throbber_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./throbber.scss */ \"./src/shared/components/YouTubeVideo/throbber.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\n\n\n\n\n/**\n * @category Components\n * @func YouTubeVideo\n * @desc\n * ```js\n * import { YouTubeVideo } from '@dr.pogodin/react-utils';\n * ```\n * A component for embeding a YouTube video.\n * @param {object} [props] Component properties.\n * @param {boolean} [props.autoplay] If `true` the video will start to play\n * automatically once loaded.\n * @param {string} [props.src] URL of the video to play. Can be in any of\n * the following formats, and keeps any additional query parameters understood\n * by the YouTube IFrame player:\n * - `https://www.youtube.com/watch?v=NdF6Rmt6Ado`\n * - `https://youtu.be/NdF6Rmt6Ado`\n * - `https://www.youtube.com/embed/NdF6Rmt6Ado`\n * @param {YouTubeVideoTheme} [props.theme] _Ad hoc_ theme.\n * @param {string} [props.title] The `title` attribute to add to the player\n * IFrame.\n */\n\n\n\n\nfunction YouTubeVideo(_ref) {\n var autoplay = _ref.autoplay,\n src = _ref.src,\n theme = _ref.theme,\n title = _ref.title;\n\n var _src$split = src.split('?'),\n _src$split2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_src$split, 2),\n url = _src$split2[0],\n query = _src$split2[1];\n\n query = query ? qs__WEBPACK_IMPORTED_MODULE_2___default().parse(query) : {};\n var videoId = query.v || url.match(/\\/([a-zA-Z0-9-_]*)$/)[1];\n url = \"https://www.youtube.com/embed/\".concat(videoId);\n delete query.v;\n query.autoplay = autoplay ? 1 : 0;\n url += \"?\".concat(qs__WEBPACK_IMPORTED_MODULE_2___default().stringify(query)); // TODO: https://developers.google.com/youtube/player_parameters\n // More query parameters can be exposed via the component props.\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_ScalableRect__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: theme.container,\n ratio: \"16:9\",\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_Throbber__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n theme: _throbber_scss__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(\"iframe\", {\n allow: \"autoplay\",\n allowFullScreen: true,\n className: theme.video,\n src: url,\n title: title\n })]\n });\n}\n\nvar ThemedYouTubeVideo = _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_4___default()('YouTubeVideo', ['container', 'video'], _base_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(YouTubeVideo);\nYouTubeVideo.propTypes = {\n autoplay: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool),\n src: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string.isRequired),\n theme: ThemedYouTubeVideo.themeType.isRequired,\n title: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string)\n};\nYouTubeVideo.defaultProps = {\n autoplay: false,\n title: ''\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedYouTubeVideo);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/YouTubeVideo/index.jsx?");
|
|
210
210
|
|
|
211
211
|
/***/ }),
|
|
212
212
|
|
|
@@ -216,7 +216,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bab
|
|
|
216
216
|
\****************************************/
|
|
217
217
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
218
218
|
|
|
219
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Button\": function() { return /* reexport safe */ _Button__WEBPACK_IMPORTED_MODULE_0__
|
|
219
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Button\": function() { return /* reexport safe */ _Button__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; },\n/* harmony export */ \"Checkbox\": function() { return /* reexport safe */ _Checkbox__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; },\n/* harmony export */ \"CodeSplit\": function() { return /* reexport safe */ _CodeSplit__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; },\n/* harmony export */ \"client\": function() { return /* reexport safe */ _client__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; },\n/* harmony export */ \"Dropdown\": function() { return /* reexport safe */ _Dropdown__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; },\n/* harmony export */ \"Input\": function() { return /* reexport safe */ _Input__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; },\n/* harmony export */ \"Link\": function() { return /* reexport safe */ _Link__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; },\n/* harmony export */ \"PageLayout\": function() { return /* reexport safe */ _PageLayout__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; },\n/* harmony export */ \"MetaTags\": function() { return /* reexport safe */ _MetaTags__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; },\n/* harmony export */ \"Modal\": function() { return /* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; },\n/* harmony export */ \"BaseModal\": function() { return /* reexport safe */ _Modal__WEBPACK_IMPORTED_MODULE_9__.BaseModal; },\n/* harmony export */ \"NavLink\": function() { return /* reexport safe */ _NavLink__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; },\n/* harmony export */ \"ScalableRect\": function() { return /* reexport safe */ _ScalableRect__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; },\n/* harmony export */ \"Throbber\": function() { return /* reexport safe */ _Throbber__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; },\n/* harmony export */ \"WithTooltip\": function() { return /* reexport safe */ _WithTooltip__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; },\n/* harmony export */ \"YouTubeVideo\": function() { return /* reexport safe */ _YouTubeVideo__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; }\n/* harmony export */ });\n/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Button */ \"./src/shared/components/Button/index.jsx\");\n/* harmony import */ var _Checkbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Checkbox */ \"./src/shared/components/Checkbox/index.jsx\");\n/* harmony import */ var _CodeSplit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CodeSplit */ \"./src/shared/components/CodeSplit/index.js\");\n/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../client */ \"./src/client/index.jsx\");\n/* harmony import */ var _Dropdown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Dropdown */ \"./src/shared/components/Dropdown/index.jsx\");\n/* harmony import */ var _Input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Input */ \"./src/shared/components/Input/index.jsx\");\n/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Link */ \"./src/shared/components/Link.jsx\");\n/* harmony import */ var _PageLayout__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PageLayout */ \"./src/shared/components/PageLayout/index.jsx\");\n/* harmony import */ var _MetaTags__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./MetaTags */ \"./src/shared/components/MetaTags.jsx\");\n/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Modal */ \"./src/shared/components/Modal/index.jsx\");\n/* harmony import */ var _NavLink__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./NavLink */ \"./src/shared/components/NavLink.jsx\");\n/* harmony import */ var _ScalableRect__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ScalableRect */ \"./src/shared/components/ScalableRect/index.jsx\");\n/* harmony import */ var _Throbber__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Throbber */ \"./src/shared/components/Throbber/index.jsx\");\n/* harmony import */ var _WithTooltip__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./WithTooltip */ \"./src/shared/components/WithTooltip/index.jsx\");\n/* harmony import */ var _YouTubeVideo__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./YouTubeVideo */ \"./src/shared/components/YouTubeVideo/index.jsx\");\n/**\n * Just an aggregation of all exported components into a single module.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/index.js?");
|
|
220
220
|
|
|
221
221
|
/***/ }),
|
|
222
222
|
|
|
@@ -236,7 +236,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _iso
|
|
|
236
236
|
\***********************************/
|
|
237
237
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
238
238
|
|
|
239
|
-
eval("var __dirname = \"/\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"withRetries\": function() { return /* binding */ withRetries; },\n/* harmony export */ \"config\": function() { return /* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__
|
|
239
|
+
eval("var __dirname = \"/\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"withRetries\": function() { return /* binding */ withRetries; },\n/* harmony export */ \"config\": function() { return /* reexport safe */ _config__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; },\n/* harmony export */ \"isomorphy\": function() { return /* reexport module object */ _isomorphy__WEBPACK_IMPORTED_MODULE_4__; },\n/* harmony export */ \"JU\": function() { return /* binding */ JU; },\n/* harmony export */ \"newBarrier\": function() { return /* binding */ newBarrier; },\n/* harmony export */ \"themed\": function() { return /* reexport default from dynamic */ _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_2___default.a; },\n/* harmony export */ \"ThemeProvider\": function() { return /* reexport safe */ _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_2__.ThemeProvider; },\n/* harmony export */ \"time\": function() { return /* reexport safe */ _time__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; },\n/* harmony export */ \"url\": function() { return /* reexport module object */ _url__WEBPACK_IMPORTED_MODULE_6__; },\n/* harmony export */ \"webpack\": function() { return /* reexport module object */ _webpack__WEBPACK_IMPORTED_MODULE_7__; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"@babel/runtime/helpers/asyncToGenerator\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"@babel/runtime/regenerator\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config */ \"./src/shared/utils/config.js\");\n/* harmony import */ var _isomorphy__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isomorphy */ \"./src/shared/utils/isomorphy.js\");\n/* harmony import */ var _time__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./time */ \"./src/shared/utils/time.js\");\n/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./url */ \"./src/shared/utils/url.js\");\n/* harmony import */ var _webpack__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./webpack */ \"./src/shared/utils/webpack.js\");\n\n\n\n/**\n * @category Utilities\n * @module themed\n * @desc\n * ```js\n * import { themed, ThemeProvider } from '@dr.pogodin/react-utils';\n * ```\n * Encapsulates\n * [`dr.pogodin/react-themes`](https://www.npmjs.com/package/@dr.pogodin/react-themes)\n * library for React component styling with theme composition. For convenience,\n * the aliases are provided for react themes exports. They work the same as\n * specified in the `react-themes` documentation, and `react-utils`\n * configration is fully compliant with expected CSS Modules setup.\n * | Export from `react-utils` | Original export from `react-themes` |\n * | ------------------------- | -------------------------------------- |\n * | `themed` | _default export_ (component decorator) |\n * | `themed.COMPOSE` | `COMPOSE` |\n * | `themed.PRIORITY` | `PRIORITY` |\n * | `ThemeProvider` | `ThemeProvider` |\n */\n\n\n\n\n\n\n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_2___default().COMPOSE) = _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_2__.COMPOSE;\n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_2___default().PRIORITY) = _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_2__.PRIORITY;\nvar JU = null; // eslint-disable-line import/no-mutable-exports\n\nif (_isomorphy__WEBPACK_IMPORTED_MODULE_4__.IS_SERVER_SIDE && (process.env.NODE_CONFIG_ENV || \"development\") !== 'production') {\n /* eslint-disable global-require */\n var path = _webpack__WEBPACK_IMPORTED_MODULE_7__.requireWeak('path');\n JU = _webpack__WEBPACK_IMPORTED_MODULE_7__.requireWeak(path.resolve(__dirname, './jest'));\n /* eslint-enable global-require */\n}\n/**\n * @category Utilities\n * @func newBarrier\n * @global\n * @desc\n * ```js\n * import { newBarrier } from '@dr.pogodin/react-utils';\n * ```\n * Creates a new async barrier: a Promise instance with its resolve method\n * attached as `.resolve` field.\n * @return {Promise}\n * @example\n * import { newBarrier } from '@dr.pogodin/react-utils';\n * (async () => {\n * const barrier = newBarrier();\n * setTimeout(() => barrier.resolve(), 5000);\n * await barrier;\n * console.log('This will be printed only after the timeout fires.');\n * })();\n */\n\n\nfunction newBarrier() {\n var resolve;\n var promise = new Promise(function (res) {\n resolve = res;\n });\n promise.resolve = resolve;\n return promise;\n}\n/**\n * @category Utilities\n * @global\n * @func withRetries\n * @desc\n * ```js\n * import { withRetries } from '@dr.pogodin/react-utils';\n * ```\n * Attempts to perform given asynchronous `action` up to `maxRetries` times,\n * with the given `interval` between attempts. If any attempt is successful,\n * the result is returned immediately, with no further attempts done;\n * otherwise, if all attempts fail, the result Promise rejects after the last\n * attempt.\n * @param {function} action\n * @param {number} [maxRetries=5] Optional. Maximum number of retries. Defaults\n * to 5 attempts.\n * @param {number} [interval=1000] Optional. Interval between retries [ms].\n * Defaults to 1 second.\n * @return {Promise} Resolves to the result of successful operation, or\n * rejects with the error from the latst failed attempt.\n * @example\n * import { withRetries } from '@dr.pogodin/react-utils';\n *\n * let firstCall = true;\n *\n * function sampleAction() {\n * if (!firstCall) return 'success';\n * firstCall = false;\n * throw Error('The first call to this method fails');\n * }\n *\n * withRetries(sampleAction).then(console.log);\n * // It will print 'success' after one second, once the second attempt\n * // is performed.\n */\n\n\nfunction withRetries(_x) {\n return _withRetries.apply(this, arguments);\n}\n\nfunction _withRetries() {\n _withRetries = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee(action) {\n var maxRetries,\n interval,\n n,\n _args = arguments;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n maxRetries = _args.length > 1 && _args[1] !== undefined ? _args[1] : 5;\n interval = _args.length > 2 && _args[2] !== undefined ? _args[2] : 1000;\n n = 1;\n\n case 3:\n _context.prev = 3;\n _context.next = 6;\n return action();\n\n case 6:\n return _context.abrupt(\"return\", _context.sent);\n\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](3);\n\n if (!(n < maxRetries)) {\n _context.next = 16;\n break;\n }\n\n _context.next = 14;\n return _time__WEBPACK_IMPORTED_MODULE_5__[\"default\"].timer(interval);\n\n case 14:\n _context.next = 17;\n break;\n\n case 16:\n throw _context.t0;\n\n case 17:\n ++n;\n _context.next = 3;\n break;\n\n case 20:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 9]]);\n }));\n return _withRetries.apply(this, arguments);\n}\n\n\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/utils/index.js?");
|
|
240
240
|
|
|
241
241
|
/***/ }),
|
|
242
242
|
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
// is bundled into client-side code.
|
|
5
5
|
/* `BUILD_INFO` is always injected by Webpack build, but this check is needed
|
|
6
6
|
* to adopt the code for usage in tests. */if(typeof BUILD_INFO!=="undefined"){window.TRU_BUILD_INFO=BUILD_INFO}/* Removes data injection script out of the document.
|
|
7
|
-
* The if block is here for test purposes. */if(!window.TRU_KEEP_INJ_SCRIPT){var block=document.querySelector("script[id=\"inj\"]");if(block)document.getElementsByTagName("body")[0].removeChild(block)}/* TODO: A proper logger should be moved to `@dr.pogodin/react-utils`. */ /* eslint-disable no-console */var useServiceWorker=window.TRU_BUILD_INFO.useServiceWorker;if(useServiceWorker){var _window=window,navigator=_window.navigator;if("serviceWorker"in navigator){window.addEventListener("load",/*#__PURE__*/(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(){var reg;return _regenerator.default.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return navigator.serviceWorker.register("/__service-worker.js");case 3:reg=_context.sent;console.log("SW registered:",reg);_context.next=10;break;case 7:_context.prev=7;_context.t0=_context["catch"](0);console.log("SW registration failed:",_context.t0);case 10:case"end":return _context.stop();}}},_callee,null,[[0,7]])})))}}/* eslint-enable no-console */ /* Decodes data injected at the server side. */if(window.INJ){var key=window.TRU_BUILD_INFO.key;var data=_forge.default.util.decode64(window.INJ);var decipher=_forge.default.cipher.createDecipher("AES-CBC",key);decipher.start({iv:data.slice(0,32)});decipher.update(_forge.default.util.createBuffer(data.slice(32)));decipher.finish();data=
|
|
7
|
+
* The if block is here for test purposes. */if(!window.TRU_KEEP_INJ_SCRIPT){var block=document.querySelector("script[id=\"inj\"]");if(block)document.getElementsByTagName("body")[0].removeChild(block)}/* TODO: A proper logger should be moved to `@dr.pogodin/react-utils`. */ /* eslint-disable no-console */var useServiceWorker=window.TRU_BUILD_INFO.useServiceWorker;if(useServiceWorker){var _window=window,navigator=_window.navigator;if("serviceWorker"in navigator){window.addEventListener("load",/*#__PURE__*/(0,_asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(){var reg;return _regenerator.default.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return navigator.serviceWorker.register("/__service-worker.js");case 3:reg=_context.sent;console.log("SW registered:",reg);_context.next=10;break;case 7:_context.prev=7;_context.t0=_context["catch"](0);console.log("SW registration failed:",_context.t0);case 10:case"end":return _context.stop();}}},_callee,null,[[0,7]])})))}}/* eslint-enable no-console */ /* Decodes data injected at the server side. */if(window.INJ){var key=window.TRU_BUILD_INFO.key;var data=_forge.default.util.decode64(window.INJ);var decipher=_forge.default.cipher.createDecipher("AES-CBC",key);decipher.start({iv:data.slice(0,32)});decipher.update(_forge.default.util.createBuffer(data.slice(32)));decipher.finish();data=_forge.default.util.decodeUtf8(decipher.output.data);data=eval("(".concat(data,")"));// eslint-disable-line no-eval
|
|
8
|
+
window.CHUNK_GROUPS=data.CHUNK_GROUPS;window.CONFIG=data.CONFIG;window.ISTATE=data.ISTATE}else{// This is possible when the client-side bundle is launched as a stand-alone
|
|
8
9
|
// precompiled website, rather than served by react-utils' based server.
|
|
9
10
|
window.CHUNK_GROUPS={};window.CONFIG={}}
|
|
10
11
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/client/init.js"],"names":["BUILD_INFO","window","TRU_BUILD_INFO","TRU_KEEP_INJ_SCRIPT","block","document","querySelector","getElementsByTagName","removeChild","useServiceWorker","navigator","addEventListener","serviceWorker","register","reg","console","log","INJ","key","data","forge","util","decode64","decipher","cipher","createDecipher","start","iv","slice","update","createBuffer","finish","
|
|
1
|
+
{"version":3,"sources":["../../../src/client/init.js"],"names":["BUILD_INFO","window","TRU_BUILD_INFO","TRU_KEEP_INJ_SCRIPT","block","document","querySelector","getElementsByTagName","removeChild","useServiceWorker","navigator","addEventListener","serviceWorker","register","reg","console","log","INJ","key","data","forge","util","decode64","decipher","cipher","createDecipher","start","iv","slice","update","createBuffer","finish","decodeUtf8","output","eval","CHUNK_GROUPS","CONFIG","ISTATE"],"mappings":"iRAQA,mEACA,8BATA;AACA;AACA,G,CAEA,yC,CAEA;AACA;AAIA;AACA,2CACA,GAAI,MAAOA,CAAAA,UAAP,GAAsB,WAA1B,CAAuC,CACrCC,MAAM,CAACC,cAAP,CAAwBF,UACzB,CAED;AACA,6CACA,GAAI,CAACC,MAAM,CAACE,mBAAZ,CAAiC,CAC/B,GAAMC,CAAAA,KAAK,CAAGC,QAAQ,CAACC,aAAT,CAAuB,oBAAvB,CAAd,CACA,GAAIF,KAAJ,CAAWC,QAAQ,CAACE,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCC,WAAzC,CAAqDJ,KAArD,CACZ,CAED,yE,CACA,+BACA,GAAQK,CAAAA,gBAAR,CAA6BR,MAAM,CAACC,cAApC,CAAQO,gBAAR,CACA,GAAIA,gBAAJ,CAAsB,CACpB,YAAsBR,MAAtB,CAAQS,SAAR,SAAQA,SAAR,CACA,GAAI,iBAAmBA,CAAAA,SAAvB,CAAkC,CAChCT,MAAM,CAACU,gBAAP,CAAwB,MAAxB,oFAAgC,kLAEVD,CAAAA,SAAS,CACxBE,aADe,CACDC,QADC,CACQ,sBADR,CAFU,QAEtBC,GAFsB,eAI5BC,OAAO,CAACC,GAAR,CAAY,gBAAZ,CAA8BF,GAA9B,EAJ4B,+EAM5BC,OAAO,CAACC,GAAR,CAAY,yBAAZ,cAN4B,mEAAhC,GASD,CACF,CACD,8B,CAEA,+CACA,GAAIf,MAAM,CAACgB,GAAX,CAAgB,CACd,GAAQC,CAAAA,GAAR,CAAgBjB,MAAM,CAACC,cAAvB,CAAQgB,GAAR,CACA,GAAIC,CAAAA,IAAI,CAAGC,eAAMC,IAAN,CAAWC,QAAX,CAAoBrB,MAAM,CAACgB,GAA3B,CAAX,CACA,GAAMM,CAAAA,QAAQ,CAAGH,eAAMI,MAAN,CAAaC,cAAb,CAA4B,SAA5B,CAAuCP,GAAvC,CAAjB,CACAK,QAAQ,CAACG,KAAT,CAAe,CAAEC,EAAE,CAAER,IAAI,CAACS,KAAL,CAAW,CAAX,CAAc,EAAd,CAAN,CAAf,EACAL,QAAQ,CAACM,MAAT,CAAgBT,eAAMC,IAAN,CAAWS,YAAX,CAAwBX,IAAI,CAACS,KAAL,CAAW,EAAX,CAAxB,CAAhB,EACAL,QAAQ,CAACQ,MAAT,GAEAZ,IAAI,CAAGC,eAAMC,IAAN,CAAWW,UAAX,CAAsBT,QAAQ,CAACU,MAAT,CAAgBd,IAAtC,CAAP,CACAA,IAAI,CAAGe,IAAI,YAAKf,IAAL,MAAX,CAA0B;AAE1BlB,MAAM,CAACkC,YAAP,CAAsBhB,IAAI,CAACgB,YAA3B,CACAlC,MAAM,CAACmC,MAAP,CAAgBjB,IAAI,CAACiB,MAArB,CACAnC,MAAM,CAACoC,MAAP,CAAgBlB,IAAI,CAACkB,MACtB,CAdD,IAcO,CACL;AACA;AACApC,MAAM,CAACkC,YAAP,CAAsB,EAAtB,CACAlC,MAAM,CAACmC,MAAP,CAAgB,EACjB","sourcesContent":["/**\n * Initialization of client-side environment.\n */\n\n/* global BUILD_INFO, document, window */\n\n// Note: this way, only required part of \"node-forge\": AES, and some utils,\n// is bundled into client-side code.\nimport forge from 'node-forge/lib/forge';\nimport 'node-forge/lib/aes';\n\n/* `BUILD_INFO` is always injected by Webpack build, but this check is needed\n * to adopt the code for usage in tests. */\nif (typeof BUILD_INFO !== 'undefined') {\n window.TRU_BUILD_INFO = BUILD_INFO;\n}\n\n/* Removes data injection script out of the document.\n * The if block is here for test purposes. */\nif (!window.TRU_KEEP_INJ_SCRIPT) {\n const block = document.querySelector('script[id=\"inj\"]');\n if (block) document.getElementsByTagName('body')[0].removeChild(block);\n}\n\n/* TODO: A proper logger should be moved to `@dr.pogodin/react-utils`. */\n/* eslint-disable no-console */\nconst { useServiceWorker } = window.TRU_BUILD_INFO;\nif (useServiceWorker) {\n const { navigator } = window;\n if ('serviceWorker' in navigator) {\n window.addEventListener('load', async () => {\n try {\n const reg = await navigator\n .serviceWorker.register('/__service-worker.js');\n console.log('SW registered:', reg);\n } catch (err) {\n console.log('SW registration failed:', err);\n }\n });\n }\n}\n/* eslint-enable no-console */\n\n/* Decodes data injected at the server side. */\nif (window.INJ) {\n const { key } = window.TRU_BUILD_INFO;\n let data = forge.util.decode64(window.INJ);\n const decipher = forge.cipher.createDecipher('AES-CBC', key);\n decipher.start({ iv: data.slice(0, 32) });\n decipher.update(forge.util.createBuffer(data.slice(32)));\n decipher.finish();\n\n data = forge.util.decodeUtf8(decipher.output.data);\n data = eval(`(${data})`); // eslint-disable-line no-eval\n\n window.CHUNK_GROUPS = data.CHUNK_GROUPS;\n window.CONFIG = data.CONFIG;\n window.ISTATE = data.ISTATE;\n} else {\n // This is possible when the client-side bundle is launched as a stand-alone\n // precompiled website, rather than served by react-utils' based server.\n window.CHUNK_GROUPS = {};\n window.CONFIG = {};\n}\n"],"file":"init.js"}
|