@dr.pogodin/react-utils 1.26.3 → 1.26.5

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.
@@ -56,7 +56,9 @@ const BaseButton = ({
56
56
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
57
57
  className: className,
58
58
  onClick: onClick,
59
- onKeyDown: onClick,
59
+ onKeyDown: onClick && (e => {
60
+ if (e.key === 'Enter') onClick(e);
61
+ }),
60
62
  onMouseDown: onMouseDown,
61
63
  role: "button",
62
64
  tabIndex: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_propTypes","_interopRequireDefault","require","_Link","_reactThemes","_jsxRuntime","defaultTheme","BaseButton","active","children","disabled","enforceA","onClick","onMouseDown","openNewTab","replace","theme","to","className","button","jsx","default","onKeyDown","role","tabIndex","ThemedButton","themed","defaultProps","undefined","propTypes","PT","bool","node","func","themeType","isRequired","oneOfType","object","string","_default","exports"],"sources":["../../../../../src/shared/components/Button/index.tsx"],"sourcesContent":["// The <Button> component implements a standard button / button-like link.\n\nimport PT from 'prop-types';\nimport { type ReactNode } from 'react';\n\nimport Link from 'components/Link';\n\nimport themed, { type Theme } from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './style.scss';\n\ntype PropsT = {\n active?: boolean;\n children?: ReactNode;\n disabled?: boolean;\n enforceA?: boolean;\n onClick?: React.MouseEventHandler & React.KeyboardEventHandler;\n onMouseDown?: React.MouseEventHandler;\n openNewTab?: boolean;\n replace?: boolean;\n theme: Theme & {\n active?: string;\n button?: string;\n disabled?: string;\n };\n // TODO: It needs a more precise typing of the object option.\n to?: object | string;\n};\n\n/* eslint-disable react/function-component-definition */\nconst BaseButton: React.FunctionComponent<PropsT> = ({\n active,\n children,\n disabled,\n enforceA,\n onClick,\n onMouseDown,\n openNewTab,\n replace,\n theme,\n to,\n}) => {\n let className = theme.button;\n if (active && theme.active) className += ` ${theme.active}`;\n if (disabled) {\n if (theme.disabled) className += ` ${theme.disabled}`;\n return (\n <div className={className}>\n {children}\n </div>\n );\n }\n if (to) {\n return (\n <Link\n className={className}\n enforceA={enforceA}\n onClick={onClick}\n onMouseDown={onMouseDown}\n openNewTab={openNewTab}\n replace={replace}\n to={to}\n >\n {children}\n </Link>\n );\n }\n return (\n <div\n className={className}\n onClick={onClick}\n onKeyDown={onClick}\n onMouseDown={onMouseDown}\n role=\"button\"\n tabIndex={0}\n >\n {children}\n </div>\n );\n};\n\n/**\n * 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 */\nconst ThemedButton = themed(BaseButton, 'Button', [\n 'active',\n 'button',\n 'disabled',\n], defaultTheme);\n\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 * @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 */\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};\n\nBaseButton.propTypes = {\n active: PT.bool,\n children: PT.node,\n disabled: PT.bool,\n enforceA: PT.bool,\n onClick: PT.func,\n onMouseDown: PT.func,\n openNewTab: PT.bool,\n replace: PT.bool,\n theme: ThemedButton.themeType.isRequired,\n to: PT.oneOfType([PT.object, PT.string]),\n};\n\nexport default ThemedButton;\n"],"mappings":";;;;;;;AAEA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACAA,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA8D,IAAAG,WAAA,GAAAH,OAAA;AAP9D;AAAA,MAAAI,YAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AA6BA;AACA,MAAMC,UAA2C,GAAGA,CAAC;EACnDC,MAAM;EACNC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPC,WAAW;EACXC,UAAU;EACVC,OAAO;EACPC,KAAK;EACLC;AACF,CAAC,KAAK;EACJ,IAAIC,SAAS,GAAGF,KAAK,CAACG,MAAM;EAC5B,IAAIX,MAAM,IAAIQ,KAAK,CAACR,MAAM,EAAEU,SAAS,IAAK,IAAGF,KAAK,CAACR,MAAO,EAAC;EAC3D,IAAIE,QAAQ,EAAE;IACZ,IAAIM,KAAK,CAACN,QAAQ,EAAEQ,SAAS,IAAK,IAAGF,KAAK,CAACN,QAAS,EAAC;IACrD,oBACE,IAAAL,WAAA,CAAAe,GAAA;MAAKF,SAAS,EAAEA,SAAU;MAAAT,QAAA,EACvBA;IAAQ,CACN,CAAC;EAEV;EACA,IAAIQ,EAAE,EAAE;IACN,oBACE,IAAAZ,WAAA,CAAAe,GAAA,EAACjB,KAAA,CAAAkB,OAAI;MACHH,SAAS,EAAEA,SAAU;MACrBP,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBC,WAAW,EAAEA,WAAY;MACzBC,UAAU,EAAEA,UAAW;MACvBC,OAAO,EAAEA,OAAQ;MACjBE,EAAE,EAAEA,EAAG;MAAAR,QAAA,EAENA;IAAQ,CACL,CAAC;EAEX;EACA,oBACE,IAAAJ,WAAA,CAAAe,GAAA;IACEF,SAAS,EAAEA,SAAU;IACrBN,OAAO,EAAEA,OAAQ;IACjBU,SAAS,EAAEV,OAAQ;IACnBC,WAAW,EAAEA,WAAY;IACzBU,IAAI,EAAC,QAAQ;IACbC,QAAQ,EAAE,CAAE;IAAAf,QAAA,EAEXA;EAAQ,CACN,CAAC;AAEV,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgB,YAAY,GAAG,IAAAC,oBAAM,EAACnB,UAAU,EAAE,QAAQ,EAAE,CAChD,QAAQ,EACR,QAAQ,EACR,UAAU,CACX,EAAED,YAAY,CAAC;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,UAAU,CAACoB,YAAY,GAAG;EACxBnB,MAAM,EAAE,KAAK;EACbC,QAAQ,EAAEmB,SAAS;EACnBlB,QAAQ,EAAE,KAAK;EACfC,QAAQ,EAAE,KAAK;EACfC,OAAO,EAAEgB,SAAS;EAClBf,WAAW,EAAEe,SAAS;EACtBd,UAAU,EAAE,KAAK;EACjBC,OAAO,EAAE,KAAK;EACdE,EAAE,EAAEW;AACN,CAAC;AAEDrB,UAAU,CAACsB,SAAS,GAAG;EACrBrB,MAAM,EAAEsB,kBAAE,CAACC,IAAI;EACftB,QAAQ,EAAEqB,kBAAE,CAACE,IAAI;EACjBtB,QAAQ,EAAEoB,kBAAE,CAACC,IAAI;EACjBpB,QAAQ,EAAEmB,kBAAE,CAACC,IAAI;EACjBnB,OAAO,EAAEkB,kBAAE,CAACG,IAAI;EAChBpB,WAAW,EAAEiB,kBAAE,CAACG,IAAI;EACpBnB,UAAU,EAAEgB,kBAAE,CAACC,IAAI;EACnBhB,OAAO,EAAEe,kBAAE,CAACC,IAAI;EAChBf,KAAK,EAAES,YAAY,CAACS,SAAS,CAACC,UAAU;EACxClB,EAAE,EAAEa,kBAAE,CAACM,SAAS,CAAC,CAACN,kBAAE,CAACO,MAAM,EAAEP,kBAAE,CAACQ,MAAM,CAAC;AACzC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAEaI,YAAY"}
1
+ {"version":3,"file":"index.js","names":["_propTypes","_interopRequireDefault","require","_Link","_reactThemes","_jsxRuntime","defaultTheme","BaseButton","active","children","disabled","enforceA","onClick","onMouseDown","openNewTab","replace","theme","to","className","button","jsx","default","onKeyDown","e","key","role","tabIndex","ThemedButton","themed","defaultProps","undefined","propTypes","PT","bool","node","func","themeType","isRequired","oneOfType","object","string","_default","exports"],"sources":["../../../../../src/shared/components/Button/index.tsx"],"sourcesContent":["// The <Button> component implements a standard button / button-like link.\n\nimport PT from 'prop-types';\nimport { type ReactNode } from 'react';\n\nimport Link from 'components/Link';\n\nimport themed, { type Theme } from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './style.scss';\n\ntype PropsT = {\n active?: boolean;\n children?: ReactNode;\n disabled?: boolean;\n enforceA?: boolean;\n onClick?: React.MouseEventHandler & React.KeyboardEventHandler;\n onMouseDown?: React.MouseEventHandler;\n openNewTab?: boolean;\n replace?: boolean;\n theme: Theme & {\n active?: string;\n button?: string;\n disabled?: string;\n };\n // TODO: It needs a more precise typing of the object option.\n to?: object | string;\n};\n\n/* eslint-disable react/function-component-definition */\nconst BaseButton: React.FunctionComponent<PropsT> = ({\n active,\n children,\n disabled,\n enforceA,\n onClick,\n onMouseDown,\n openNewTab,\n replace,\n theme,\n to,\n}) => {\n let className = theme.button;\n if (active && theme.active) className += ` ${theme.active}`;\n if (disabled) {\n if (theme.disabled) className += ` ${theme.disabled}`;\n return (\n <div className={className}>\n {children}\n </div>\n );\n }\n if (to) {\n return (\n <Link\n className={className}\n enforceA={enforceA}\n onClick={onClick}\n onMouseDown={onMouseDown}\n openNewTab={openNewTab}\n replace={replace}\n to={to}\n >\n {children}\n </Link>\n );\n }\n\n return (\n <div\n className={className}\n onClick={onClick}\n onKeyDown={onClick && ((e) => {\n if (e.key === 'Enter') onClick(e);\n })}\n onMouseDown={onMouseDown}\n role=\"button\"\n tabIndex={0}\n >\n {children}\n </div>\n );\n};\n\n/**\n * 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 */\nconst ThemedButton = themed(BaseButton, 'Button', [\n 'active',\n 'button',\n 'disabled',\n], defaultTheme);\n\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 * @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 */\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};\n\nBaseButton.propTypes = {\n active: PT.bool,\n children: PT.node,\n disabled: PT.bool,\n enforceA: PT.bool,\n onClick: PT.func,\n onMouseDown: PT.func,\n openNewTab: PT.bool,\n replace: PT.bool,\n theme: ThemedButton.themeType.isRequired,\n to: PT.oneOfType([PT.object, PT.string]),\n};\n\nexport default ThemedButton;\n"],"mappings":"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"}
@@ -27,13 +27,13 @@ const defaultTheme = {
27
27
  const Throbber = ({
28
28
  theme
29
29
  }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
30
- className: (theme.container ? theme.container + " " : "") + "-dr-pogodin-react-utils___src-shared-components-Throbber-theme___container___7zdld4",
30
+ className: theme.container,
31
31
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
32
- className: (theme.circle ? theme.circle + " " : "") + "-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___dBrB4g"
32
+ className: theme.circle
33
33
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
34
- className: (theme.circle ? theme.circle + " " : "") + "-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___dBrB4g"
34
+ className: theme.circle
35
35
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
36
- className: (theme.circle ? theme.circle + " " : "") + "-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___dBrB4g"
36
+ className: theme.circle
37
37
  })]
38
38
  });
39
39
  const ThemedThrobber = (0, _reactThemes.default)(Throbber, 'Throbber', ['bouncing', 'circle', 'container'], defaultTheme);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_reactThemes","_interopRequireDefault","require","_jsxRuntime","defaultTheme","Throbber","theme","jsxs","className","container","children","jsx","circle","ThemedThrobber","themed","propTypes","themeType","isRequired","_default","exports","default"],"sources":["../../../../../src/shared/components/Throbber/index.tsx"],"sourcesContent":["import themed, { type Theme } from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './theme.scss';\n\ntype PropsT = {\n theme: Theme & {\n bouncing?: string;\n container?: string;\n circle?: string;\n };\n};\n\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 */\nconst Throbber: React.FunctionComponent<PropsT> = ({ theme }) => (\n <span className={theme.container} styleName=\"container\">\n <span className={theme.circle} styleName=\"circle\" />\n <span className={theme.circle} styleName=\"circle\" />\n <span className={theme.circle} styleName=\"circle\" />\n </span>\n);\n\nconst ThemedThrobber = themed(\n Throbber,\n 'Throbber',\n [\n 'bouncing',\n 'circle',\n 'container',\n ],\n defaultTheme,\n);\n\nThrobber.propTypes = {\n theme: ThemedThrobber.themeType.isRequired,\n};\n\nexport default ThemedThrobber;\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8D,IAAAC,WAAA,GAAAD,OAAA;AAAA,MAAAE,YAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAY9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,QAAyC,GAAGA,CAAC;EAAEC;AAAM,CAAC,kBAC1D,IAAAH,WAAA,CAAAI,IAAA;EAAMC,SAAS,GAAEF,KAAK,CAACG,SAAS,GAAfH,KAAK,CAACG,SAAS,oGAAC;EAAAC,QAAA,gBAC/B,IAAAP,WAAA,CAAAQ,GAAA;IAAMH,SAAS,GAAEF,KAAK,CAACM,MAAM,GAAZN,KAAK,CAACM,MAAM;EAAC,CAAqB,CAAC,eACpD,IAAAT,WAAA,CAAAQ,GAAA;IAAMH,SAAS,GAAEF,KAAK,CAACM,MAAM,GAAZN,KAAK,CAACM,MAAM;EAAC,CAAqB,CAAC,eACpD,IAAAT,WAAA,CAAAQ,GAAA;IAAMH,SAAS,GAAEF,KAAK,CAACM,MAAM,GAAZN,KAAK,CAACM,MAAM;EAAC,CAAqB,CAAC;AAAA,CAChD,CACP;AAED,MAAMC,cAAc,GAAG,IAAAC,oBAAM,EAC3BT,QAAQ,EACR,UAAU,EACV,CACE,UAAU,EACV,QAAQ,EACR,WAAW,CACZ,EACDD,YACF,CAAC;AAEDC,QAAQ,CAACU,SAAS,GAAG;EACnBT,KAAK,EAAEO,cAAc,CAACG,SAAS,CAACC;AAClC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaP,cAAc"}
1
+ {"version":3,"file":"index.js","names":["_reactThemes","_interopRequireDefault","require","_jsxRuntime","defaultTheme","Throbber","theme","jsxs","className","container","children","jsx","circle","ThemedThrobber","themed","propTypes","themeType","isRequired","_default","exports","default"],"sources":["../../../../../src/shared/components/Throbber/index.tsx"],"sourcesContent":["import themed, { type Theme } from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './theme.scss';\n\ntype PropsT = {\n theme: Theme & {\n bouncing?: string;\n container?: string;\n circle?: string;\n };\n};\n\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 */\nconst Throbber: React.FunctionComponent<PropsT> = ({ theme }) => (\n <span className={theme.container}>\n <span className={theme.circle} />\n <span className={theme.circle} />\n <span className={theme.circle} />\n </span>\n);\n\nconst ThemedThrobber = themed(\n Throbber,\n 'Throbber',\n [\n 'bouncing',\n 'circle',\n 'container',\n ],\n defaultTheme,\n);\n\nThrobber.propTypes = {\n theme: ThemedThrobber.themeType.isRequired,\n};\n\nexport default ThemedThrobber;\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8D,IAAAC,WAAA,GAAAD,OAAA;AAAA,MAAAE,YAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAY9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,QAAyC,GAAGA,CAAC;EAAEC;AAAM,CAAC,kBAC1D,IAAAH,WAAA,CAAAI,IAAA;EAAMC,SAAS,EAAEF,KAAK,CAACG,SAAU;EAAAC,QAAA,gBAC/B,IAAAP,WAAA,CAAAQ,GAAA;IAAMH,SAAS,EAAEF,KAAK,CAACM;EAAO,CAAE,CAAC,eACjC,IAAAT,WAAA,CAAAQ,GAAA;IAAMH,SAAS,EAAEF,KAAK,CAACM;EAAO,CAAE,CAAC,eACjC,IAAAT,WAAA,CAAAQ,GAAA;IAAMH,SAAS,EAAEF,KAAK,CAACM;EAAO,CAAE,CAAC;AAAA,CAC7B,CACP;AAED,MAAMC,cAAc,GAAG,IAAAC,oBAAM,EAC3BT,QAAQ,EACR,UAAU,EACV,CACE,UAAU,EACV,QAAQ,EACR,WAAW,CACZ,EACDD,YACF,CAAC;AAEDC,QAAQ,CAACU,SAAS,GAAG;EACnBT,KAAK,EAAEO,cAAc,CAACG,SAAS,CAACC;AAClC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaP,cAAc"}
@@ -56,7 +56,7 @@ eval("var __dirname = \"/\";\n__webpack_require__.r(__webpack_exports__);\n/* ha
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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Link */ \"./src/shared/components/Link.tsx\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style.scss */ \"./src/shared/components/Button/style.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __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\n\n/* eslint-disable react/function-component-definition */\nconst BaseButton = _ref => {\n let {\n active,\n children,\n disabled,\n enforceA,\n onClick,\n onMouseDown,\n openNewTab,\n replace,\n theme,\n to\n } = _ref;\n let className = theme.button;\n if (active && theme.active) className += ` ${theme.active}`;\n if (disabled) {\n if (theme.disabled) className += ` ${theme.disabled}`;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"div\", {\n className: className,\n children: children\n });\n }\n if (to) {\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_2__[\"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 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"div\", {\n className: className,\n onClick: onClick,\n onKeyDown: onClick,\n onMouseDown: onMouseDown,\n role: \"button\",\n tabIndex: 0,\n children: children\n });\n};\n\n/**\n * 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 */\nconst ThemedButton = _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_3___default()(BaseButton, 'Button', ['active', 'button', 'disabled'], _style_scss__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n\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 * @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 */\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.tsx?");
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 react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Link */ \"./src/shared/components/Link.tsx\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./style.scss */ \"./src/shared/components/Button/style.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __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\n\n/* eslint-disable react/function-component-definition */\nconst BaseButton = _ref => {\n let {\n active,\n children,\n disabled,\n enforceA,\n onClick,\n onMouseDown,\n openNewTab,\n replace,\n theme,\n to\n } = _ref;\n let className = theme.button;\n if (active && theme.active) className += ` ${theme.active}`;\n if (disabled) {\n if (theme.disabled) className += ` ${theme.disabled}`;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"div\", {\n className: className,\n children: children\n });\n }\n if (to) {\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_2__[\"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 return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"div\", {\n className: className,\n onClick: onClick,\n onKeyDown: onClick && (e => {\n if (e.key === 'Enter') onClick(e);\n }),\n onMouseDown: onMouseDown,\n role: \"button\",\n tabIndex: 0,\n children: children\n });\n};\n\n/**\n * 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 */\nconst ThemedButton = _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_3___default()(BaseButton, 'Button', ['active', 'button', 'disabled'], _style_scss__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n\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 * @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 */\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.tsx?");
60
60
 
61
61
  /***/ }),
62
62
 
@@ -166,7 +166,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop
166
166
  \**************************************************/
167
167
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
168
168
 
169
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Throbber/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\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 */\nconst Throbber = _ref => {\n let {\n theme\n } = _ref;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"span\", {\n className: (theme.container ? theme.container + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___container___7zdld4\",\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n className: (theme.circle ? theme.circle + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___dBrB4g\"\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n className: (theme.circle ? theme.circle + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___dBrB4g\"\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n className: (theme.circle ? theme.circle + \" \" : \"\") + \"-dr-pogodin-react-utils___src-shared-components-Throbber-theme___circle___dBrB4g\"\n })]\n });\n};\nconst ThemedThrobber = _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_0___default()(Throbber, 'Throbber', ['bouncing', 'circle', 'container'], _theme_scss__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nThrobber.propTypes = {\n theme: ThemedThrobber.themeType.isRequired\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedThrobber);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/Throbber/index.tsx?");
169
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @dr.pogodin/react-themes */ \"@dr.pogodin/react-themes\");\n/* harmony import */ var _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _theme_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme.scss */ \"./src/shared/components/Throbber/theme.scss\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n\n\n\n\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 */\nconst Throbber = _ref => {\n let {\n theme\n } = _ref;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(\"span\", {\n className: theme.container,\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n className: theme.circle\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n className: theme.circle\n }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n className: theme.circle\n })]\n });\n};\nconst ThemedThrobber = _dr_pogodin_react_themes__WEBPACK_IMPORTED_MODULE_0___default()(Throbber, 'Throbber', ['bouncing', 'circle', 'container'], _theme_scss__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nThrobber.propTypes = {\n theme: ThemedThrobber.themeType.isRequired\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemedThrobber);\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./src/shared/components/Throbber/index.tsx?");
170
170
 
171
171
  /***/ }),
172
172
 
@@ -306,7 +306,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
306
306
  \**************************************/
307
307
  /***/ (function(__unused_webpack_module, exports) {
308
308
 
309
- eval("/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index)\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index)\n\n if (endIdx === -1) {\n endIdx = str.length\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1\n continue\n }\n\n var key = str.slice(index, eqIdx).trim()\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim()\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString()\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low'\n break\n case 'medium':\n str += '; Priority=Medium'\n break\n case 'high':\n str += '; Priority=High'\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./node_modules/cookie/index.js?");
309
+ eval("/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index)\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index)\n\n if (endIdx === -1) {\n endIdx = str.length\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1\n continue\n }\n\n var key = str.slice(index, eqIdx).trim()\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim()\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString()\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.partitioned) {\n str += '; Partitioned'\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low'\n break\n case 'medium':\n str += '; Priority=Medium'\n break\n case 'high':\n str += '; Priority=High'\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} val\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n\n\n//# sourceURL=webpack://@dr.pogodin/react-utils/./node_modules/cookie/index.js?");
310
310
 
311
311
  /***/ }),
312
312
 
@@ -1,5 +1,5 @@
1
1
  "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _propTypes=_interopRequireDefault(require("prop-types"));require("react");var _Link=_interopRequireDefault(require("../Link"));var _reactThemes=_interopRequireDefault(require("@dr.pogodin/react-themes"));var _jsxRuntime=require("react/jsx-runtime");// The <Button> component implements a standard button / button-like link.
2
- const defaultTheme={"context":"KM0v4f","ad":"_3jm1-Q","hoc":"_0plpDL","button":"E1FNQT","active":"MAe9O6","disabled":"Br9IWV"};/* eslint-disable react/function-component-definition */const BaseButton=({active,children,disabled,enforceA,onClick,onMouseDown,openNewTab,replace,theme,to})=>{let className=theme.button;if(active&&theme.active)className+=` ${theme.active}`;if(disabled){if(theme.disabled)className+=` ${theme.disabled}`;return/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:className,children:children})}if(to){return/*#__PURE__*/(0,_jsxRuntime.jsx)(_Link.default,{className:className,enforceA:enforceA,onClick:onClick,onMouseDown:onMouseDown,openNewTab:openNewTab,replace:replace,to:to,children:children})}return/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:className,onClick:onClick,onKeyDown:onClick,onMouseDown:onMouseDown,role:"button",tabIndex:0,children:children})};/**
2
+ const defaultTheme={"context":"KM0v4f","ad":"_3jm1-Q","hoc":"_0plpDL","button":"E1FNQT","active":"MAe9O6","disabled":"Br9IWV"};/* eslint-disable react/function-component-definition */const BaseButton=({active,children,disabled,enforceA,onClick,onMouseDown,openNewTab,replace,theme,to})=>{let className=theme.button;if(active&&theme.active)className+=` ${theme.active}`;if(disabled){if(theme.disabled)className+=` ${theme.disabled}`;return/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:className,children:children})}if(to){return/*#__PURE__*/(0,_jsxRuntime.jsx)(_Link.default,{className:className,enforceA:enforceA,onClick:onClick,onMouseDown:onMouseDown,openNewTab:openNewTab,replace:replace,to:to,children:children})}return/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:className,onClick:onClick,onKeyDown:onClick&&(e=>{if(e.key==="Enter")onClick(e)}),onMouseDown:onMouseDown,role:"button",tabIndex:0,children:children})};/**
3
3
  * Button component theme: a map of CSS
4
4
  * class names to append to button elements:
5
5
  * @prop {string} [active] to the root element of active button.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_propTypes","_interopRequireDefault","require","_Link","_reactThemes","_jsxRuntime","defaultTheme","BaseButton","active","children","disabled","enforceA","onClick","onMouseDown","openNewTab","replace","theme","to","className","button","jsx","default","onKeyDown","role","tabIndex","ThemedButton","themed","defaultProps","undefined","propTypes","PT","bool","node","func","themeType","isRequired","oneOfType","object","string","_default","exports"],"sources":["../../../../../src/shared/components/Button/index.tsx"],"sourcesContent":["// The <Button> component implements a standard button / button-like link.\n\nimport PT from 'prop-types';\nimport { type ReactNode } from 'react';\n\nimport Link from 'components/Link';\n\nimport themed, { type Theme } from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './style.scss';\n\ntype PropsT = {\n active?: boolean;\n children?: ReactNode;\n disabled?: boolean;\n enforceA?: boolean;\n onClick?: React.MouseEventHandler & React.KeyboardEventHandler;\n onMouseDown?: React.MouseEventHandler;\n openNewTab?: boolean;\n replace?: boolean;\n theme: Theme & {\n active?: string;\n button?: string;\n disabled?: string;\n };\n // TODO: It needs a more precise typing of the object option.\n to?: object | string;\n};\n\n/* eslint-disable react/function-component-definition */\nconst BaseButton: React.FunctionComponent<PropsT> = ({\n active,\n children,\n disabled,\n enforceA,\n onClick,\n onMouseDown,\n openNewTab,\n replace,\n theme,\n to,\n}) => {\n let className = theme.button;\n if (active && theme.active) className += ` ${theme.active}`;\n if (disabled) {\n if (theme.disabled) className += ` ${theme.disabled}`;\n return (\n <div className={className}>\n {children}\n </div>\n );\n }\n if (to) {\n return (\n <Link\n className={className}\n enforceA={enforceA}\n onClick={onClick}\n onMouseDown={onMouseDown}\n openNewTab={openNewTab}\n replace={replace}\n to={to}\n >\n {children}\n </Link>\n );\n }\n return (\n <div\n className={className}\n onClick={onClick}\n onKeyDown={onClick}\n onMouseDown={onMouseDown}\n role=\"button\"\n tabIndex={0}\n >\n {children}\n </div>\n );\n};\n\n/**\n * 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 */\nconst ThemedButton = themed(BaseButton, 'Button', [\n 'active',\n 'button',\n 'disabled',\n], defaultTheme);\n\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 * @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 */\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};\n\nBaseButton.propTypes = {\n active: PT.bool,\n children: PT.node,\n disabled: PT.bool,\n enforceA: PT.bool,\n onClick: PT.func,\n onMouseDown: PT.func,\n openNewTab: PT.bool,\n replace: PT.bool,\n theme: ThemedButton.themeType.isRequired,\n to: PT.oneOfType([PT.object, PT.string]),\n};\n\nexport default ThemedButton;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_propTypes","_interopRequireDefault","require","_Link","_reactThemes","_jsxRuntime","defaultTheme","BaseButton","active","children","disabled","enforceA","onClick","onMouseDown","openNewTab","replace","theme","to","className","button","jsx","default","onKeyDown","e","key","role","tabIndex","ThemedButton","themed","defaultProps","undefined","propTypes","PT","bool","node","func","themeType","isRequired","oneOfType","object","string","_default","exports"],"sources":["../../../../../src/shared/components/Button/index.tsx"],"sourcesContent":["// The <Button> component implements a standard button / button-like link.\n\nimport PT from 'prop-types';\nimport { type ReactNode } from 'react';\n\nimport Link from 'components/Link';\n\nimport themed, { type Theme } from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './style.scss';\n\ntype PropsT = {\n active?: boolean;\n children?: ReactNode;\n disabled?: boolean;\n enforceA?: boolean;\n onClick?: React.MouseEventHandler & React.KeyboardEventHandler;\n onMouseDown?: React.MouseEventHandler;\n openNewTab?: boolean;\n replace?: boolean;\n theme: Theme & {\n active?: string;\n button?: string;\n disabled?: string;\n };\n // TODO: It needs a more precise typing of the object option.\n to?: object | string;\n};\n\n/* eslint-disable react/function-component-definition */\nconst BaseButton: React.FunctionComponent<PropsT> = ({\n active,\n children,\n disabled,\n enforceA,\n onClick,\n onMouseDown,\n openNewTab,\n replace,\n theme,\n to,\n}) => {\n let className = theme.button;\n if (active && theme.active) className += ` ${theme.active}`;\n if (disabled) {\n if (theme.disabled) className += ` ${theme.disabled}`;\n return (\n <div className={className}>\n {children}\n </div>\n );\n }\n if (to) {\n return (\n <Link\n className={className}\n enforceA={enforceA}\n onClick={onClick}\n onMouseDown={onMouseDown}\n openNewTab={openNewTab}\n replace={replace}\n to={to}\n >\n {children}\n </Link>\n );\n }\n\n return (\n <div\n className={className}\n onClick={onClick}\n onKeyDown={onClick && ((e) => {\n if (e.key === 'Enter') onClick(e);\n })}\n onMouseDown={onMouseDown}\n role=\"button\"\n tabIndex={0}\n >\n {children}\n </div>\n );\n};\n\n/**\n * 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 */\nconst ThemedButton = themed(BaseButton, 'Button', [\n 'active',\n 'button',\n 'disabled',\n], defaultTheme);\n\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 * @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 */\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};\n\nBaseButton.propTypes = {\n active: PT.bool,\n children: PT.node,\n disabled: PT.bool,\n enforceA: PT.bool,\n onClick: PT.func,\n onMouseDown: PT.func,\n openNewTab: PT.bool,\n replace: PT.bool,\n theme: ThemedButton.themeType.isRequired,\n to: PT.oneOfType([PT.object, PT.string]),\n};\n\nexport default ThemedButton;\n"],"mappings":"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"}
@@ -6,5 +6,5 @@
6
6
  * @param {ThrobberTheme} [props.theme] _Ad hoc_ theme.
7
7
  * @param {...any} [props....]
8
8
  * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)
9
- */const Throbber=({theme})=>/*#__PURE__*/(0,_jsxRuntime.jsxs)("span",{className:(theme.container?theme.container+" ":"")+"_7zdld4",children:[/*#__PURE__*/(0,_jsxRuntime.jsx)("span",{className:(theme.circle?theme.circle+" ":"")+"dBrB4g"}),/*#__PURE__*/(0,_jsxRuntime.jsx)("span",{className:(theme.circle?theme.circle+" ":"")+"dBrB4g"}),/*#__PURE__*/(0,_jsxRuntime.jsx)("span",{className:(theme.circle?theme.circle+" ":"")+"dBrB4g"})]});const ThemedThrobber=(0,_reactThemes.default)(Throbber,"Throbber",["bouncing","circle","container"],defaultTheme);Throbber.propTypes={theme:ThemedThrobber.themeType.isRequired};var _default=exports.default=ThemedThrobber;
9
+ */const Throbber=({theme})=>/*#__PURE__*/(0,_jsxRuntime.jsxs)("span",{className:theme.container,children:[/*#__PURE__*/(0,_jsxRuntime.jsx)("span",{className:theme.circle}),/*#__PURE__*/(0,_jsxRuntime.jsx)("span",{className:theme.circle}),/*#__PURE__*/(0,_jsxRuntime.jsx)("span",{className:theme.circle})]});const ThemedThrobber=(0,_reactThemes.default)(Throbber,"Throbber",["bouncing","circle","container"],defaultTheme);Throbber.propTypes={theme:ThemedThrobber.themeType.isRequired};var _default=exports.default=ThemedThrobber;
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_reactThemes","_interopRequireDefault","require","_jsxRuntime","defaultTheme","Throbber","theme","jsxs","className","container","children","jsx","circle","ThemedThrobber","themed","propTypes","themeType","isRequired","_default","exports","default"],"sources":["../../../../../src/shared/components/Throbber/index.tsx"],"sourcesContent":["import themed, { type Theme } from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './theme.scss';\n\ntype PropsT = {\n theme: Theme & {\n bouncing?: string;\n container?: string;\n circle?: string;\n };\n};\n\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 */\nconst Throbber: React.FunctionComponent<PropsT> = ({ theme }) => (\n <span className={theme.container} styleName=\"container\">\n <span className={theme.circle} styleName=\"circle\" />\n <span className={theme.circle} styleName=\"circle\" />\n <span className={theme.circle} styleName=\"circle\" />\n </span>\n);\n\nconst ThemedThrobber = themed(\n Throbber,\n 'Throbber',\n [\n 'bouncing',\n 'circle',\n 'container',\n ],\n defaultTheme,\n);\n\nThrobber.propTypes = {\n theme: ThemedThrobber.themeType.isRequired,\n};\n\nexport default ThemedThrobber;\n"],"mappings":"gLAAA,IAAAA,YAAA,CAAAC,sBAAA,CAAAC,OAAA,8BAA8D,IAAAC,WAAA,CAAAD,OAAA,4BAAAE,YAAA,+GAY9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,KAAM,CAAAC,QAAyC,CAAGA,CAAC,CAAEC,KAAM,CAAC,gBAC1D,GAAAH,WAAA,CAAAI,IAAA,UAAMC,SAAS,EAAEF,KAAK,CAACG,SAAS,CAAfH,KAAK,CAACG,SAAS,kBAAC,CAAAC,QAAA,eAC/B,GAAAP,WAAA,CAAAQ,GAAA,UAAMH,SAAS,EAAEF,KAAK,CAACM,MAAM,CAAZN,KAAK,CAACM,MAAM,iBAAC,CAAqB,CAAC,cACpD,GAAAT,WAAA,CAAAQ,GAAA,UAAMH,SAAS,EAAEF,KAAK,CAACM,MAAM,CAAZN,KAAK,CAACM,MAAM,iBAAC,CAAqB,CAAC,cACpD,GAAAT,WAAA,CAAAQ,GAAA,UAAMH,SAAS,EAAEF,KAAK,CAACM,MAAM,CAAZN,KAAK,CAACM,MAAM,iBAAC,CAAqB,CAAC,EAChD,CACP,CAED,KAAM,CAAAC,cAAc,CAAG,GAAAC,oBAAM,EAC3BT,QAAQ,CACR,UAAU,CACV,CACE,UAAU,CACV,QAAQ,CACR,WAAW,CACZ,CACDD,YACF,CAAC,CAEDC,QAAQ,CAACU,SAAS,CAAG,CACnBT,KAAK,CAAEO,cAAc,CAACG,SAAS,CAACC,UAClC,CAAC,CAAC,IAAAC,QAAA,CAAAC,OAAA,CAAAC,OAAA,CAEaP,cAAc"}
1
+ {"version":3,"file":"index.js","names":["_reactThemes","_interopRequireDefault","require","_jsxRuntime","defaultTheme","Throbber","theme","jsxs","className","container","children","jsx","circle","ThemedThrobber","themed","propTypes","themeType","isRequired","_default","exports","default"],"sources":["../../../../../src/shared/components/Throbber/index.tsx"],"sourcesContent":["import themed, { type Theme } from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './theme.scss';\n\ntype PropsT = {\n theme: Theme & {\n bouncing?: string;\n container?: string;\n circle?: string;\n };\n};\n\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 */\nconst Throbber: React.FunctionComponent<PropsT> = ({ theme }) => (\n <span className={theme.container}>\n <span className={theme.circle} />\n <span className={theme.circle} />\n <span className={theme.circle} />\n </span>\n);\n\nconst ThemedThrobber = themed(\n Throbber,\n 'Throbber',\n [\n 'bouncing',\n 'circle',\n 'container',\n ],\n defaultTheme,\n);\n\nThrobber.propTypes = {\n theme: ThemedThrobber.themeType.isRequired,\n};\n\nexport default ThemedThrobber;\n"],"mappings":"gLAAA,IAAAA,YAAA,CAAAC,sBAAA,CAAAC,OAAA,8BAA8D,IAAAC,WAAA,CAAAD,OAAA,4BAAAE,YAAA,+GAY9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,KAAM,CAAAC,QAAyC,CAAGA,CAAC,CAAEC,KAAM,CAAC,gBAC1D,GAAAH,WAAA,CAAAI,IAAA,UAAMC,SAAS,CAAEF,KAAK,CAACG,SAAU,CAAAC,QAAA,eAC/B,GAAAP,WAAA,CAAAQ,GAAA,UAAMH,SAAS,CAAEF,KAAK,CAACM,MAAO,CAAE,CAAC,cACjC,GAAAT,WAAA,CAAAQ,GAAA,UAAMH,SAAS,CAAEF,KAAK,CAACM,MAAO,CAAE,CAAC,cACjC,GAAAT,WAAA,CAAAQ,GAAA,UAAMH,SAAS,CAAEF,KAAK,CAACM,MAAO,CAAE,CAAC,EAC7B,CACP,CAED,KAAM,CAAAC,cAAc,CAAG,GAAAC,oBAAM,EAC3BT,QAAQ,CACR,UAAU,CACV,CACE,UAAU,CACV,QAAQ,CACR,WAAW,CACZ,CACDD,YACF,CAAC,CAEDC,QAAQ,CAACU,SAAS,CAAG,CACnBT,KAAK,CAAEO,cAAc,CAACG,SAAS,CAACC,UAClC,CAAC,CAAC,IAAAC,QAAA,CAAAC,OAAA,CAAAC,OAAA,CAEaP,cAAc"}
@@ -1,3 +1,3 @@
1
1
  /*! For license information please see web.bundle.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@dr.pogodin/js-utils"),require("@dr.pogodin/react-global-state"),require("@dr.pogodin/react-themes"),require("axios"),require("dayjs"),require("lodash"),require("node-forge/lib/aes"),require("node-forge/lib/forge"),require("prop-types"),require("qs"),require("react"),require("react-dom"),require("react-dom/client"),require("react-helmet"),require("react-router-dom")):"function"==typeof define&&define.amd?define(["@dr.pogodin/js-utils","@dr.pogodin/react-global-state","@dr.pogodin/react-themes","axios","dayjs","lodash","node-forge/lib/aes","node-forge/lib/forge","prop-types","qs","react","react-dom","react-dom/client","react-helmet","react-router-dom"],t):"object"==typeof exports?exports["@dr.pogodin/react-utils"]=t(require("@dr.pogodin/js-utils"),require("@dr.pogodin/react-global-state"),require("@dr.pogodin/react-themes"),require("axios"),require("dayjs"),require("lodash"),require("node-forge/lib/aes"),require("node-forge/lib/forge"),require("prop-types"),require("qs"),require("react"),require("react-dom"),require("react-dom/client"),require("react-helmet"),require("react-router-dom")):e["@dr.pogodin/react-utils"]=t(e["@dr.pogodin/js-utils"],e["@dr.pogodin/react-global-state"],e["@dr.pogodin/react-themes"],e.axios,e.dayjs,e.lodash,e["node-forge/lib/aes"],e["node-forge/lib/forge"],e["prop-types"],e.qs,e.react,e["react-dom"],e["react-dom/client"],e["react-helmet"],e["react-router-dom"])}("undefined"!=typeof self?self:this,(function(__WEBPACK_EXTERNAL_MODULE__269__,__WEBPACK_EXTERNAL_MODULE__899__,__WEBPACK_EXTERNAL_MODULE__198__,__WEBPACK_EXTERNAL_MODULE__300__,__WEBPACK_EXTERNAL_MODULE__760__,__WEBPACK_EXTERNAL_MODULE__467__,__WEBPACK_EXTERNAL_MODULE__0__,__WEBPACK_EXTERNAL_MODULE__654__,__WEBPACK_EXTERNAL_MODULE__99__,__WEBPACK_EXTERNAL_MODULE__656__,__WEBPACK_EXTERNAL_MODULE__156__,__WEBPACK_EXTERNAL_MODULE__111__,__WEBPACK_EXTERNAL_MODULE__715__,__WEBPACK_EXTERNAL_MODULE__383__,__WEBPACK_EXTERNAL_MODULE__128__){return function(){"use strict";var __webpack_modules__={88:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Z:function(){return getInj}});var node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(654),node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0__),node_forge_lib_aes__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(0),node_forge_lib_aes__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(node_forge_lib_aes__WEBPACK_IMPORTED_MODULE_1__),_shared_utils_isomorphy_buildInfo__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(120);let inj={};const metaElement="undefined"!=typeof document?document.querySelector('meta[itemprop="drpruinj"]'):null;if(metaElement){metaElement.remove();let data=node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default().util.decode64(metaElement.content);const{key:key}=(0,_shared_utils_isomorphy_buildInfo__WEBPACK_IMPORTED_MODULE_2__.J)(),d=node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default().cipher.createDecipher("AES-CBC",key);d.start({iv:data.slice(0,key.length)}),d.update(node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default().util.createBuffer(data.slice(key.length))),d.finish(),data=node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default().util.decodeUtf8(d.output.data),inj=eval(`(${data})`)}else inj={};function getInj(){return inj}},7:function(e,t,r){r.d(t,{Z:function(){return l}}),r(156);var n=r(899),o=r(715),i=r(128),a=r(88),c=r(893);function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=document.getElementById("react-view");if(!r)throw Error("Failed to find container for React app");const l=(0,c.jsx)(n.GlobalStateProvider,{initialState:(0,a.Z)().ISTATE,children:(0,c.jsx)(i.BrowserRouter,{children:(0,c.jsx)(e,{})})});t.dontHydrate?(0,o.createRoot)(r).render(l):(0,o.hydrateRoot)(r,l)}},120:function(e,t,r){let n;function o(){if(void 0===n)throw Error('"Build Info" has not been initialized yet');return n}r.d(t,{J:function(){return o}}),"undefined"!=typeof BUILD_INFO&&(n=BUILD_INFO)},848:function(e,t,r){r.d(t,{b:function(){return n},x:function(){return o}});const n="object"!=typeof process||!process.versions||!process.versions.node||!!r.g.REACT_UTILS_FORCE_CLIENT_SIDE,o=!n},463:function(e,t,r){r.r(t),r.d(t,{IS_CLIENT_SIDE:function(){return o.b},IS_SERVER_SIDE:function(){return o.x},buildTimestamp:function(){return c},getBuildInfo:function(){return n.J},isDevBuild:function(){return i},isProdBuild:function(){return a}});var n=r(120),o=r(848);function i(){return!1}function a(){return!0}function c(){return(0,n.J)().timestamp}},911:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{requireWeak:function(){return requireWeak},resolveWeak:function(){return resolveWeak}});var _isomorphy__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(463);function requireWeak(modulePath,basePath){if(_isomorphy__WEBPACK_IMPORTED_MODULE_0__.IS_CLIENT_SIDE)return null;try{const{resolve:resolve}=eval("require")("path"),path=basePath?resolve(basePath,modulePath):modulePath,{default:def,...named}=eval("require")(path);return def?(Object.entries(named).forEach((e=>{let[t,r]=e;if(def[t])throw Error("Conflict between default and named exports");def[t]=r})),def):named}catch{return null}}function resolveWeak(e){return e}},489:function(e,t){t.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var r={},n=(t||{}).decode||o,i=0;i<e.length;){var c=e.indexOf("=",i);if(-1===c)break;var l=e.indexOf(";",i);if(-1===l)l=e.length;else if(l<c){i=e.lastIndexOf(";",c-1)+1;continue}var _=e.slice(i,c).trim();if(void 0===r[_]){var s=e.slice(c+1,l).trim();34===s.charCodeAt(0)&&(s=s.slice(1,-1)),r[_]=a(s,n)}i=l+1}return r},t.serialize=function(e,t,o){var a=o||{},c=a.encode||i;if("function"!=typeof c)throw new TypeError("option encode is invalid");if(!n.test(e))throw new TypeError("argument name is invalid");var l=c(t);if(l&&!n.test(l))throw new TypeError("argument val is invalid");var _=e+"="+l;if(null!=a.maxAge){var s=a.maxAge-0;if(isNaN(s)||!isFinite(s))throw new TypeError("option maxAge is invalid");_+="; Max-Age="+Math.floor(s)}if(a.domain){if(!n.test(a.domain))throw new TypeError("option domain is invalid");_+="; Domain="+a.domain}if(a.path){if(!n.test(a.path))throw new TypeError("option path is invalid");_+="; Path="+a.path}if(a.expires){var u=a.expires;if(!function(e){return"[object Date]"===r.call(e)||e instanceof Date}(u)||isNaN(u.valueOf()))throw new TypeError("option expires is invalid");_+="; Expires="+u.toUTCString()}if(a.httpOnly&&(_+="; HttpOnly"),a.secure&&(_+="; Secure"),a.priority)switch("string"==typeof a.priority?a.priority.toLowerCase():a.priority){case"low":_+="; Priority=Low";break;case"medium":_+="; Priority=Medium";break;case"high":_+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}if(a.sameSite)switch("string"==typeof a.sameSite?a.sameSite.toLowerCase():a.sameSite){case!0:_+="; SameSite=Strict";break;case"lax":_+="; SameSite=Lax";break;case"strict":_+="; SameSite=Strict";break;case"none":_+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return _};var r=Object.prototype.toString,n=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function o(e){return-1!==e.indexOf("%")?decodeURIComponent(e):e}function i(e){return encodeURIComponent(e)}function a(e,t){try{return t(e)}catch(t){return e}}},251:function(e,t,r){var n=r(156),o=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,c=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var n,i={},_=null,s=null;for(n in void 0!==r&&(_=""+r),void 0!==t.key&&(_=""+t.key),void 0!==t.ref&&(s=t.ref),t)a.call(t,n)&&!l.hasOwnProperty(n)&&(i[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===i[n]&&(i[n]=t[n]);return{$$typeof:o,type:e,key:_,ref:s,props:i,_owner:c.current}}t.Fragment=i,t.jsx=_,t.jsxs=_},893:function(e,t,r){e.exports=r(251)},269:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__269__},899:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__899__},198:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__198__},300:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__300__},760:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__760__},467:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__467__},0:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__0__},654:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__654__},99:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__99__},656:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__656__},156:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__156__},111:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__111__},715:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__715__},383:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__383__},128:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__128__}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return function(){__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Barrier:function(){return u.Barrier},BaseModal:function(){return ie},Button:function(){return I},Checkbox:function(){return X},Dropdown:function(){return $},Emitter:function(){return u.Emitter},GlobalStateProvider:function(){return d.GlobalStateProvider},Input:function(){return G},JU:function(){return S},Link:function(){return D},MetaTags:function(){return te},Modal:function(){return ce},NavLink:function(){return le},PT:function(){return h},PageLayout:function(){return Z},ScalableRect:function(){return se},Semaphore:function(){return u.Semaphore},ThemeProvider:function(){return e.ThemeProvider},Throbber:function(){return pe},WithTooltip:function(){return Te},YouTubeVideo:function(){return Se},api:function(){return q()},client:function(){return Le},config:function(){return i},getGlobalState:function(){return d.getGlobalState},getSsrContext:function(){return p},isomorphy:function(){return a},server:function(){return Ae},splitComponent:function(){return k},themed:function(){return C},time:function(){return m},useAsyncCollection:function(){return d.useAsyncCollection},useAsyncData:function(){return d.useAsyncData},useGlobalState:function(){return d.useGlobalState},webpack:function(){return n},withGlobalStateType:function(){return d.withGlobalStateType},withRetries:function(){return A}});var e=__webpack_require__(198),t=__webpack_require__.n(e),r=__webpack_require__(848),n=__webpack_require__(911);const o=(r.b?__webpack_require__(88).Z().CONFIG:(0,n.requireWeak)("config"))||{};if(r.b&&"undefined"!=typeof document){const e=__webpack_require__(489);o.CSRF=e.parse(document.cookie).csrfToken}var i=o,a=__webpack_require__(463),c=__webpack_require__(489),l=__webpack_require__(760),_=__webpack_require__.n(l),s=__webpack_require__(156),u=__webpack_require__(269),d=__webpack_require__(899);const{getSsrContext:p}=(0,d.withGlobalStateType)(),f={DAY_MS:u.DAY_MS,HOUR_MS:u.HOUR_MS,MIN_MS:u.MIN_MS,SEC_MS:u.SEC_MS,YEAR_MS:u.YEAR_MS,now:Date.now,timer:u.timer,useCurrent:function(){let{autorefresh:e=!1,globalStatePath:t="currentTime",precision:r=5*u.SEC_MS}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[n,o]=(0,d.useGlobalState)(t,Date.now);return(0,s.useEffect)((()=>{let t;const n=()=>{o((e=>{const t=Date.now();return Math.abs(t-e)>r?t:e})),e&&(t=setTimeout(n,r))};return n(),()=>{t&&clearTimeout(t)}}),[e,r,o]),n},useTimezoneOffset:function(){let{cookieName:e="timezoneOffset",globalStatePath:t="timezoneOffset"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=p(!1),[n,o]=(0,d.useGlobalState)(t,(()=>{var t;const n=e&&(null==r||null===(t=r.req)||void 0===t||null===(t=t.cookies)||void 0===t?void 0:t[e]);return n?parseInt(n,10):0}));return(0,s.useEffect)((()=>{const t=(new Date).getTimezoneOffset();o(t),e&&(document.cookie=c.serialize(e,t.toString(),{path:"/"}))}),[e,o]),n}};var m=Object.assign(_(),f),h=__webpack_require__(99),E=__webpack_require__.n(h),b=__webpack_require__(893);let w;a.IS_CLIENT_SIDE&&(w=__webpack_require__(88).Z().CHUNK_GROUPS||{});const g={};function v(){return(0,a.getBuildInfo)().publicPath}function y(e,t,r){let n;const o=`${v()}/${e}`,i=`${document.location.origin}${o}`;if(!t.has(i)){let e=document.querySelector(`link[href="${o}"]`);e||(e=document.createElement("link"),e.setAttribute("rel","stylesheet"),e.setAttribute("href",o),document.head.appendChild(e)),n=new u.Barrier,e.addEventListener("load",(()=>n.resolve())),e.addEventListener("error",(()=>n.resolve()))}if(r){const e=g[o]||0;g[o]=1+e}return n}function T(e,t){if(!t[e])throw Error(`Unknown chunk name "${e}"`)}function x(e,t,r){const n=[],o=t[e],i=function(){const e=new Set,{styleSheets:t}=document;for(let r=0;r<t.length;++r){const{href:n}=t[r];n&&e.add(n)}return e}();for(let e=0;e<o.length;++e){const t=o[e];if(t.endsWith(".css")){const e=y(t,i,r);e&&n.push(e)}}return n.length?Promise.allSettled(n).then():Promise.resolve()}const P=new Set;function k(e){let{chunkName:t,getComponent:r,placeholder:n}=e;if(a.IS_CLIENT_SIDE&&T(t,w),P.has(t))throw Error(`Repeated splitComponent() call for the chunk "${t}"`);P.add(t);const o=(0,s.lazy)((async()=>{const e=await r(),n="default"in e?e.default:e;a.IS_CLIENT_SIDE&&await x(t,w,!1);const o=(0,s.forwardRef)(((e,r)=>{let{children:o,...i}=e;if(a.IS_SERVER_SIDE){const{chunkGroups:e,chunks:r}=p();T(t,e),r.includes(t)||r.push(t)}return(0,s.useInsertionEffect)((()=>(x(t,w,!0),()=>function(e,t){const r=t[e];for(let e=0;e<r.length;++e){const t=r[e];if(t.endsWith(".css")){const e=`${v()}/${t}`;--g[e]<=0&&document.head.querySelector(`link[href="${e}"]`).remove()}}}(t,w))),[]),(0,b.jsx)(n,{ref:r,...i,children:o})}));return{default:o}})),i=e=>{let{children:t,...r}=e;return(0,b.jsx)(s.Suspense,{fallback:n,children:(0,b.jsx)(o,{...r,children:t})})};return i.propTypes={children:E().node},i.defaultProps={children:void 0},i}const C=t();let O;C.COMPOSE=e.COMPOSE,C.PRIORITY=e.PRIORITY;try{O=process.env.NODE_CONFIG_ENV}catch{}const S="production"!==(O||"production")?n.requireWeak("./jest","/"):null;async function A(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3;for(let n=1;;++n)try{return await e()}catch(e){if(!(n<t))throw e;await m.timer(r)}}var L=__webpack_require__(300),q=__webpack_require__.n(L),R=__webpack_require__(128);const N=e=>{let{children:t,className:r,disabled:n,enforceA:o,keepScrollPosition:i,onClick:a,onMouseDown:c,openNewTab:l,replace:_,routerLinkType:s,to:u,...d}=e;if(n||o||l||null!=u&&u.match(/^(#|(https?|mailto):)/))return(0,b.jsx)("a",{className:(r?r+" ":"")+"zH52sA",href:u,onClick:n?e=>e.preventDefault():a,onMouseDown:n?e=>e.preventDefault():c,rel:"noopener noreferrer",target:l?"_blank":"",children:t});const p=s;return(0,b.jsx)(p,{className:r,onMouseDown:c,replace:_,to:u,onClick:e=>{a&&a(e),i||window.scroll(0,0)},...d,children:t})};N.defaultProps={children:null,className:"",disabled:!1,enforceA:!1,keepScrollPosition:!1,onClick:void 0,onMouseDown:void 0,openNewTab:!1,replace:!1,to:""},N.propTypes={children:E().node,className:E().string,disabled:E().bool,enforceA:E().bool,keepScrollPosition:E().bool,onClick:E().func,onMouseDown:E().func,openNewTab:E().bool,replace:E().bool,routerLinkType:E().elementType.isRequired,to:E().oneOfType([E().object,E().string])};var M=N,D=e=>(0,b.jsx)(M,{...e,routerLinkType:R.Link});const j=e=>{let{active:t,children:r,disabled:n,enforceA:o,onClick:i,onMouseDown:a,openNewTab:c,replace:l,theme:_,to:s}=e,u=_.button;return t&&_.active&&(u+=` ${_.active}`),n?(_.disabled&&(u+=` ${_.disabled}`),(0,b.jsx)("div",{className:u,children:r})):s?(0,b.jsx)(D,{className:u,enforceA:o,onClick:i,onMouseDown:a,openNewTab:c,replace:l,to:s,children:r}):(0,b.jsx)("div",{className:u,onClick:i,onKeyDown:i,onMouseDown:a,role:"button",tabIndex:0,children:r})},B=t()(j,"Button",["active","button","disabled"],{button:"E1FNQT",context:"KM0v4f",ad:"_3jm1-Q",hoc:"_0plpDL",active:"MAe9O6",disabled:"Br9IWV"});j.defaultProps={active:!1,children:void 0,disabled:!1,enforceA:!1,onClick:void 0,onMouseDown:void 0,openNewTab:!1,replace:!1,to:void 0},j.propTypes={active:E().bool,children:E().node,disabled:E().bool,enforceA:E().bool,onClick:E().func,onMouseDown:E().func,openNewTab:E().bool,replace:E().bool,theme:B.themeType.isRequired,to:E().oneOfType([E().object,E().string])};var I=B;const W=e=>{let{checked:t,label:r,onChange:n,theme:o}=e;return(0,b.jsxs)("div",{className:o.container,children:[void 0===r?null:(0,b.jsx)("p",{className:o.label,children:r}),(0,b.jsx)("input",{checked:t,className:o.checkbox,onChange:n,type:"checkbox"})]})},U=t()(W,"Checkbox",["checkbox","container","label"],{checkbox:"A-f8qJ",context:"dNQcC6",ad:"earXxa",hoc:"qAPfQ6",container:"Kr0g3M",label:"_3dML-O"});W.propTypes={checked:E().bool,label:E().string,onChange:E().func,theme:U.themeType.isRequired},W.defaultProps={checked:void 0,label:void 0,onChange:void 0};var X=U;const K=e=>{let{filter:t,label:r,onChange:n,options:o=[],theme:i,value:a}=e,c=!1;const l=[];for(let e=0;e<o.length;++e){const r=o[e];if(!t||t(r)){let e,t;"string"==typeof r?(t=r,e=r):(t=r.name||r.value,e=r.value),c||(c=e===a),l.push((0,b.jsx)("option",{className:i.option,value:e,children:t},e))}}const _=c?null:(0,b.jsx)("option",{disabled:!0,className:i.hiddenOption,value:a,children:a},"__reactUtilsHiddenOption");return(0,b.jsxs)("div",{className:i.container,children:[void 0===r?null:(0,b.jsx)("p",{className:i.label,children:r}),(0,b.jsxs)("select",{className:i.select,onChange:n,value:a,children:[_,l]}),(0,b.jsx)("div",{className:i.arrow,children:"▼"})]})},Y=t()(K,"Dropdown",["arrow","container","hiddenOption","label","option","select"],{arrow:"-zPK7Y",context:"haRIry",ad:"D4XHG2",hoc:"N3nd34",container:"_9CQpeA",label:"Gv0kyu",hiddenOption:"RdW3yR",select:"JXK1uw"});K.propTypes={filter:E().func,label:E().string,onChange:E().func,options:E().arrayOf(E().oneOfType([E().shape({name:E().string,value:E().string.isRequired}),E().string]).isRequired),theme:Y.themeType.isRequired,value:E().string},K.defaultProps={filter:void 0,label:void 0,onChange:void 0,options:[],value:""};var $=Y;const z=(0,s.forwardRef)(((e,t)=>{let{label:r,theme:n,...o}=e;return(0,b.jsxs)("span",{className:n.container,children:[void 0===r?null:(0,b.jsx)("p",{className:n.label,children:r}),(0,b.jsx)("input",{className:n.input,ref:t,...o})]})})),F=t()(z,"Input",["container","input","label"],{container:"Cxx397",context:"X5WszA",ad:"_8s7GCr",hoc:"TVlBYc",input:"M07d4s",label:"gfbdq-"});z.propTypes={label:E().string,theme:F.themeType.isRequired},z.defaultProps={label:void 0};var G=F;const H=e=>{let{children:t,leftSidePanelContent:r,rightSidePanelContent:n,theme:o}=e;return(0,b.jsxs)("div",{className:o.container,children:[(0,b.jsx)("div",{className:[o.sidePanel,o.leftSidePanel].join(" "),children:r}),(0,b.jsx)("div",{className:o.mainPanel,children:t}),(0,b.jsx)("div",{className:[o.sidePanel,o.rightSidePanel].join(" "),children:n})]})},V=t()(H,"PageLayout",["container","leftSidePanel","mainPanel","rightSidePanel","sidePanel"],{container:"T3cuHB",context:"m4mL-M",ad:"m3-mdC",hoc:"J15Z4H",mainPanel:"pPlQO2",sidePanel:"lqNh4h"});H.propTypes={children:E().node,leftSidePanelContent:E().node,rightSidePanelContent:E().node,theme:V.themeType.isRequired},H.defaultProps={children:null,leftSidePanelContent:null,rightSidePanelContent:null};var Z=V,J=__webpack_require__(383);const Q=(0,s.createContext)({description:"",title:""}),ee=e=>{let{children:t,description:r,image:n,siteName:o,socialDescription:i,socialTitle:a,title:c,url:l}=e;const _=a||c,u=i||r,d=(0,s.useMemo)((()=>({description:r,image:n,siteName:o,socialDescription:i,socialTitle:a,title:c,url:l})),[r,n,o,i,a,c,l]);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(J.Helmet,{children:[(0,b.jsx)("title",{children:c}),(0,b.jsx)("meta",{name:"description",content:r}),(0,b.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,b.jsx)("meta",{name:"twitter:title",content:_}),(0,b.jsx)("meta",{name:"twitter:description",content:u}),n?(0,b.jsx)("meta",{name:"twitter:image",content:n}):null,o?(0,b.jsx)("meta",{name:"twitter:site",content:`@${o}`}):null,(0,b.jsx)("meta",{name:"og:title",content:_}),n?(0,b.jsx)("meta",{name:"og:image",content:n}):null,n?(0,b.jsx)("meta",{name:"og:image:alt",content:_}):null,(0,b.jsx)("meta",{name:"og:description",content:u}),o?(0,b.jsx)("meta",{name:"og:sitename",content:o}):null,l?(0,b.jsx)("meta",{name:"og:url",content:l}):null]}),t?(0,b.jsx)(Q.Provider,{value:d,children:t}):null]})};ee.Context=Q,ee.defaultProps={children:null,image:"",siteName:"",socialDescription:"",socialTitle:"",url:""},ee.propTypes={children:E().node,description:E().string.isRequired,image:E().string,siteName:E().string,socialDescription:E().string,socialTitle:E().string,title:E().string.isRequired,url:E().string};var te=ee,re=__webpack_require__(467),ne=__webpack_require__(111),oe=__webpack_require__.n(ne);const ie=e=>{let{children:t,onCancel:r,theme:n}=e;const o=(0,s.useRef)(null),i=(0,s.useRef)(null),[a,c]=(0,s.useState)();(0,s.useEffect)((()=>{const e=document.createElement("div");return document.body.classList.add("scrolling-disabled-by-modal"),document.body.appendChild(e),c(e),()=>{document.body.classList.remove("scrolling-disabled-by-modal"),document.body.removeChild(e)}}),[]);const l=(0,s.useMemo)((()=>(0,b.jsx)("div",{onFocus:()=>{var e,t;const r=null===(e=o.current)||void 0===e?void 0:e.querySelectorAll("*");for(let e=r.length-1;e>=0;--e)if(r[e].focus(),document.activeElement===r[e])return;null===(t=i.current)||void 0===t||t.focus()},tabIndex:0})),[]);return a?oe().createPortal((0,b.jsxs)(b.Fragment,{children:[l,(0,b.jsx)("div",{"aria-label":"Cancel",className:n.overlay,onClick:()=>r&&r(),onKeyDown:e=>{"Escape"===e.key&&r&&r()},ref:e=>{e&&e!==i.current&&(i.current=e,e.focus())},role:"button",tabIndex:0}),(0,b.jsx)("div",{"aria-modal":"true",className:n.container,onWheel:e=>e.stopPropagation(),ref:o,role:"dialog",children:t}),(0,b.jsx)("div",{onFocus:()=>{var e;null===(e=i.current)||void 0===e||e.focus()},tabIndex:0}),l]}),a):null},ae=t()(ie,"Modal",["container","overlay"],{overlay:"ye2BZo",context:"Szmbbz",ad:"Ah-Nsc",hoc:"Wki41G",container:"gyZ4rc"});ie.propTypes={onCancel:E().func,children:E().node,theme:ae.themeType.isRequired},ie.defaultProps={onCancel:re.noop,children:null};var ce=ae,le=e=>(0,b.jsx)(M,{...e,routerLinkType:R.NavLink});const _e=e=>{let{children:t,className:r,ratio:n}=e;const o=n.split(":"),i=100*parseFloat(o[1])/parseFloat(o[0])+"%",a=(0,b.jsx)("div",{style:{paddingBottom:i},className:"EznFz3",children:(0,b.jsx)("div",{className:"_0vb7tq",children:t})});return r?(0,b.jsx)("div",{className:r,children:a}):a};_e.defaultProps={children:null,className:void 0,ratio:"1:1"},_e.propTypes={children:E().node,className:E().string,ratio:(e,t)=>{const r=e[t];return void 0===r?null:"string"!=typeof r?Error('"ratio" prop must be a string'):r.match(/\d+:\d+/)?null:Error('"ratio" prop must have "H:W" format')}};var se=_e;const ue=e=>{let{theme:t}=e;return(0,b.jsxs)("span",{className:(t.container?t.container+" ":"")+"_7zdld4",children:[(0,b.jsx)("span",{className:(t.circle?t.circle+" ":"")+"dBrB4g"}),(0,b.jsx)("span",{className:(t.circle?t.circle+" ":"")+"dBrB4g"}),(0,b.jsx)("span",{className:(t.circle?t.circle+" ":"")+"dBrB4g"})]})},de=t()(ue,"Throbber",["bouncing","circle","container"],{container:"_7zdld4",context:"uIObt7",ad:"XIxe9o",hoc:"YOyORH",circle:"dBrB4g",bouncing:"TJe-6j"});ue.propTypes={theme:de.themeType.isRequired};var pe=de;let fe=function(e){return e.ABOVE_CURSOR="ABOVE_CURSOR",e.ABOVE_ELEMENT="ABOVE_ELEMENT",e.BELOW_CURSOR="BELOW_CURSOR",e.BELOW_ELEMENT="BELOW_ELEMENT",e}({});const me=["border-bottom-color:transparent","border-left-color:transparent","border-right-color:transparent"].join(";"),he=["border-top-color:transparent","border-left-color:transparent","border-right-color:transparent"].join(";");function Ee(e,t,r,n,o){const i=function(e){return{arrow:e.arrow.getBoundingClientRect(),container:e.container.getBoundingClientRect()}}(o),a=function(){const{scrollX:e,scrollY:t}=window,{documentElement:{clientHeight:r,clientWidth:n}}=document;return{left:e,right:e+n,top:t,bottom:t+r}}(),c=function(e,t,r){const{arrow:n,container:o}=r;return{arrowX:.5*(o.width-n.width),arrowY:o.height,containerX:e-o.width/2,containerY:t-o.height-n.height/1.5,baseArrowStyle:me}}(e,t,i);if(c.containerX<a.left+6)c.containerX=a.left+6,c.arrowX=Math.max(6,e-c.containerX-i.arrow.width/2);else{const t=a.right-6-i.container.width;c.containerX>t&&(c.containerX=t,c.arrowX=Math.min(i.container.width-6,e-c.containerX-i.arrow.width/2))}c.containerY<a.top+6&&(c.containerY+=i.container.height+2*i.arrow.height,c.arrowY-=i.container.height+i.arrow.height,c.baseArrowStyle=he);const l=`left:${c.containerX}px;top:${c.containerY}px`;o.container.setAttribute("style",l);const _=`${c.baseArrowStyle};left:${c.arrowX}px;top:${c.arrowY}px`;o.arrow.setAttribute("style",_)}const be=(0,s.forwardRef)(((e,t)=>{let{children:r,theme:n}=e;const{current:o}=(0,s.useRef)({lastElement:void 0,lastPageX:0,lastPageY:0,lastPlacement:void 0}),[i,a]=(0,s.useState)(null),c=(e,t,r,n)=>{o.lastElement=n,o.lastPageX=e,o.lastPageY=t,o.lastPlacement=r,i&&Ee(e,t,0,0,i)};return(0,s.useImperativeHandle)(t,(()=>({pointTo:c}))),(0,s.useEffect)((()=>{const e=function(e){const t=document.createElement("div");e.arrow&&t.setAttribute("class",e.arrow);const r=document.createElement("div");e.content&&r.setAttribute("class",e.content);const n=document.createElement("div");return e.container&&n.setAttribute("class",e.container),n.appendChild(t),n.appendChild(r),document.body.appendChild(n),{container:n,arrow:t,content:r}}(n);return a(e),()=>{document.body.removeChild(e.container),a(null)}}),[n]),(0,s.useEffect)((()=>{i&&Ee(o.lastPageX,o.lastPageY,o.lastPlacement,o.lastElement,i)}),[i,o.lastPageX,o.lastPageY,o.lastPlacement,o.lastElement]),i?(0,ne.createPortal)(r,i.content):null}));be.propTypes={children:E().node,theme:E().shape({}).isRequired},be.defaultProps={children:null};var we=be;const ge=e=>{let{children:t,placement:r,tip:n,theme:o}=e;const{current:i}=(0,s.useRef)({lastCursorX:0,lastCursorY:0,triggeredByTouch:!1,timerId:void 0}),a=(0,s.useRef)(),c=(0,s.useRef)(null),[l,_]=(0,s.useState)(!1);return(0,s.useEffect)((()=>{if(l&&null!==n){a.current&&a.current.pointTo(i.lastCursorX+window.scrollX,i.lastCursorY+window.scrollY,r,c.current);const e=()=>_(!1);return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)}}),[i.lastCursorX,i.lastCursorY,r,l,n]),(0,b.jsxs)("div",{className:o.wrapper,onMouseLeave:()=>_(!1),onMouseMove:e=>((e,t)=>{if(l){const n=c.current.getBoundingClientRect();e<n.left||e>n.right||t<n.top||t>n.bottom?_(!1):a.current&&a.current.pointTo(e+window.scrollX,t+window.scrollY,r,c.current)}else i.lastCursorX=e,i.lastCursorY=t,i.triggeredByTouch?i.timerId||(i.timerId=setTimeout((()=>{i.triggeredByTouch=!1,i.timerId=void 0,_(!0)}),300)):_(!0)})(e.clientX,e.clientY),onClick:()=>{i.timerId&&(clearTimeout(i.timerId),i.timerId=void 0,i.triggeredByTouch=!1)},onTouchStart:()=>{i.triggeredByTouch=!0},ref:c,role:"presentation",children:[l&&null!==n?(0,b.jsx)(we,{ref:a,theme:o,children:n}):null,t]})},ve=t()(ge,"WithTooltip",["appearance","arrow","container","content","wrapper"],{arrow:"M9gywF",ad:"_4xT7zE",hoc:"zd-vnH",context:"GdZucr",container:"f9gY8K",appearance:"L4ubm-",wrapper:"_4qDBRM"}),ye=ve;ye.PLACEMENTS=fe,ge.propTypes={children:E().node,placement:E().oneOf(Object.values(fe)),theme:ve.themeType.isRequired,tip:E().node},ge.defaultProps={children:null,placement:fe.ABOVE_CURSOR,tip:null};var Te=ye,xe=__webpack_require__(656),Pe=__webpack_require__.n(xe),ke={container:"jTxmOX",context:"dzIcLh",ad:"_5a9XX1",hoc:"_7sH52O"};const Ce=e=>{var t;let{autoplay:r,src:n,theme:o,title:i}=e;const a=n.split("?");let c=a[0];const l=a[1],_=l?Pe().parse(l):{},s=_.v||(null===(t=c.match(/\/([a-zA-Z0-9-_]*)$/))||void 0===t?void 0:t[1]);return c=`https://www.youtube.com/embed/${s}`,delete _.v,_.autoplay=r?"1":"0",c+=`?${Pe().stringify(_)}`,(0,b.jsxs)(se,{className:o.container,ratio:"16:9",children:[(0,b.jsx)(pe,{theme:ke}),(0,b.jsx)("iframe",{allow:"autoplay",allowFullScreen:!0,className:o.video,src:c,title:i})]})},Oe=t()(Ce,"YouTubeVideo",["container","video"],{container:"sXHM81",context:"veKyYi",ad:"r3ABzd",hoc:"YKcPnR",video:"SlV2zw"});Ce.propTypes={autoplay:E().bool,src:E().string.isRequired,theme:Oe.themeType.isRequired,title:E().string},Ce.defaultProps={autoplay:!1,title:""};var Se=Oe;const Ae=n.requireWeak("./server","/"),Le=Ae?void 0:__webpack_require__(7).Z}(),__webpack_exports__}()}));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@dr.pogodin/js-utils"),require("@dr.pogodin/react-global-state"),require("@dr.pogodin/react-themes"),require("axios"),require("dayjs"),require("lodash"),require("node-forge/lib/aes"),require("node-forge/lib/forge"),require("prop-types"),require("qs"),require("react"),require("react-dom"),require("react-dom/client"),require("react-helmet"),require("react-router-dom")):"function"==typeof define&&define.amd?define(["@dr.pogodin/js-utils","@dr.pogodin/react-global-state","@dr.pogodin/react-themes","axios","dayjs","lodash","node-forge/lib/aes","node-forge/lib/forge","prop-types","qs","react","react-dom","react-dom/client","react-helmet","react-router-dom"],t):"object"==typeof exports?exports["@dr.pogodin/react-utils"]=t(require("@dr.pogodin/js-utils"),require("@dr.pogodin/react-global-state"),require("@dr.pogodin/react-themes"),require("axios"),require("dayjs"),require("lodash"),require("node-forge/lib/aes"),require("node-forge/lib/forge"),require("prop-types"),require("qs"),require("react"),require("react-dom"),require("react-dom/client"),require("react-helmet"),require("react-router-dom")):e["@dr.pogodin/react-utils"]=t(e["@dr.pogodin/js-utils"],e["@dr.pogodin/react-global-state"],e["@dr.pogodin/react-themes"],e.axios,e.dayjs,e.lodash,e["node-forge/lib/aes"],e["node-forge/lib/forge"],e["prop-types"],e.qs,e.react,e["react-dom"],e["react-dom/client"],e["react-helmet"],e["react-router-dom"])}("undefined"!=typeof self?self:this,(function(__WEBPACK_EXTERNAL_MODULE__269__,__WEBPACK_EXTERNAL_MODULE__899__,__WEBPACK_EXTERNAL_MODULE__198__,__WEBPACK_EXTERNAL_MODULE__300__,__WEBPACK_EXTERNAL_MODULE__760__,__WEBPACK_EXTERNAL_MODULE__467__,__WEBPACK_EXTERNAL_MODULE__0__,__WEBPACK_EXTERNAL_MODULE__654__,__WEBPACK_EXTERNAL_MODULE__99__,__WEBPACK_EXTERNAL_MODULE__656__,__WEBPACK_EXTERNAL_MODULE__156__,__WEBPACK_EXTERNAL_MODULE__111__,__WEBPACK_EXTERNAL_MODULE__715__,__WEBPACK_EXTERNAL_MODULE__383__,__WEBPACK_EXTERNAL_MODULE__128__){return function(){"use strict";var __webpack_modules__={88:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Z:function(){return getInj}});var node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(654),node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0__),node_forge_lib_aes__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(0),node_forge_lib_aes__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(node_forge_lib_aes__WEBPACK_IMPORTED_MODULE_1__),_shared_utils_isomorphy_buildInfo__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(120);let inj={};const metaElement="undefined"!=typeof document?document.querySelector('meta[itemprop="drpruinj"]'):null;if(metaElement){metaElement.remove();let data=node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default().util.decode64(metaElement.content);const{key:key}=(0,_shared_utils_isomorphy_buildInfo__WEBPACK_IMPORTED_MODULE_2__.J)(),d=node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default().cipher.createDecipher("AES-CBC",key);d.start({iv:data.slice(0,key.length)}),d.update(node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default().util.createBuffer(data.slice(key.length))),d.finish(),data=node_forge_lib_forge__WEBPACK_IMPORTED_MODULE_0___default().util.decodeUtf8(d.output.data),inj=eval(`(${data})`)}else inj={};function getInj(){return inj}},7:function(e,t,r){r.d(t,{Z:function(){return l}}),r(156);var n=r(899),o=r(715),i=r(128),a=r(88),c=r(893);function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=document.getElementById("react-view");if(!r)throw Error("Failed to find container for React app");const l=(0,c.jsx)(n.GlobalStateProvider,{initialState:(0,a.Z)().ISTATE,children:(0,c.jsx)(i.BrowserRouter,{children:(0,c.jsx)(e,{})})});t.dontHydrate?(0,o.createRoot)(r).render(l):(0,o.hydrateRoot)(r,l)}},120:function(e,t,r){let n;function o(){if(void 0===n)throw Error('"Build Info" has not been initialized yet');return n}r.d(t,{J:function(){return o}}),"undefined"!=typeof BUILD_INFO&&(n=BUILD_INFO)},848:function(e,t,r){r.d(t,{b:function(){return n},x:function(){return o}});const n="object"!=typeof process||!process.versions||!process.versions.node||!!r.g.REACT_UTILS_FORCE_CLIENT_SIDE,o=!n},463:function(e,t,r){r.r(t),r.d(t,{IS_CLIENT_SIDE:function(){return o.b},IS_SERVER_SIDE:function(){return o.x},buildTimestamp:function(){return c},getBuildInfo:function(){return n.J},isDevBuild:function(){return i},isProdBuild:function(){return a}});var n=r(120),o=r(848);function i(){return!1}function a(){return!0}function c(){return(0,n.J)().timestamp}},911:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{requireWeak:function(){return requireWeak},resolveWeak:function(){return resolveWeak}});var _isomorphy__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(463);function requireWeak(modulePath,basePath){if(_isomorphy__WEBPACK_IMPORTED_MODULE_0__.IS_CLIENT_SIDE)return null;try{const{resolve:resolve}=eval("require")("path"),path=basePath?resolve(basePath,modulePath):modulePath,{default:def,...named}=eval("require")(path);return def?(Object.entries(named).forEach((e=>{let[t,r]=e;if(def[t])throw Error("Conflict between default and named exports");def[t]=r})),def):named}catch{return null}}function resolveWeak(e){return e}},489:function(e,t){t.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var r={},n=(t||{}).decode||o,i=0;i<e.length;){var c=e.indexOf("=",i);if(-1===c)break;var l=e.indexOf(";",i);if(-1===l)l=e.length;else if(l<c){i=e.lastIndexOf(";",c-1)+1;continue}var _=e.slice(i,c).trim();if(void 0===r[_]){var s=e.slice(c+1,l).trim();34===s.charCodeAt(0)&&(s=s.slice(1,-1)),r[_]=a(s,n)}i=l+1}return r},t.serialize=function(e,t,o){var a=o||{},c=a.encode||i;if("function"!=typeof c)throw new TypeError("option encode is invalid");if(!n.test(e))throw new TypeError("argument name is invalid");var l=c(t);if(l&&!n.test(l))throw new TypeError("argument val is invalid");var _=e+"="+l;if(null!=a.maxAge){var s=a.maxAge-0;if(isNaN(s)||!isFinite(s))throw new TypeError("option maxAge is invalid");_+="; Max-Age="+Math.floor(s)}if(a.domain){if(!n.test(a.domain))throw new TypeError("option domain is invalid");_+="; Domain="+a.domain}if(a.path){if(!n.test(a.path))throw new TypeError("option path is invalid");_+="; Path="+a.path}if(a.expires){var u=a.expires;if(!function(e){return"[object Date]"===r.call(e)||e instanceof Date}(u)||isNaN(u.valueOf()))throw new TypeError("option expires is invalid");_+="; Expires="+u.toUTCString()}if(a.httpOnly&&(_+="; HttpOnly"),a.secure&&(_+="; Secure"),a.partitioned&&(_+="; Partitioned"),a.priority)switch("string"==typeof a.priority?a.priority.toLowerCase():a.priority){case"low":_+="; Priority=Low";break;case"medium":_+="; Priority=Medium";break;case"high":_+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}if(a.sameSite)switch("string"==typeof a.sameSite?a.sameSite.toLowerCase():a.sameSite){case!0:_+="; SameSite=Strict";break;case"lax":_+="; SameSite=Lax";break;case"strict":_+="; SameSite=Strict";break;case"none":_+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return _};var r=Object.prototype.toString,n=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function o(e){return-1!==e.indexOf("%")?decodeURIComponent(e):e}function i(e){return encodeURIComponent(e)}function a(e,t){try{return t(e)}catch(t){return e}}},251:function(e,t,r){var n=r(156),o=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,c=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var n,i={},_=null,s=null;for(n in void 0!==r&&(_=""+r),void 0!==t.key&&(_=""+t.key),void 0!==t.ref&&(s=t.ref),t)a.call(t,n)&&!l.hasOwnProperty(n)&&(i[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===i[n]&&(i[n]=t[n]);return{$$typeof:o,type:e,key:_,ref:s,props:i,_owner:c.current}}t.Fragment=i,t.jsx=_,t.jsxs=_},893:function(e,t,r){e.exports=r(251)},269:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__269__},899:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__899__},198:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__198__},300:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__300__},760:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__760__},467:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__467__},0:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__0__},654:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__654__},99:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__99__},656:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__656__},156:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__156__},111:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__111__},715:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__715__},383:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__383__},128:function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__128__}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return function(){__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Barrier:function(){return u.Barrier},BaseModal:function(){return ie},Button:function(){return I},Checkbox:function(){return X},Dropdown:function(){return $},Emitter:function(){return u.Emitter},GlobalStateProvider:function(){return d.GlobalStateProvider},Input:function(){return G},JU:function(){return S},Link:function(){return D},MetaTags:function(){return te},Modal:function(){return ce},NavLink:function(){return le},PT:function(){return h},PageLayout:function(){return Z},ScalableRect:function(){return se},Semaphore:function(){return u.Semaphore},ThemeProvider:function(){return e.ThemeProvider},Throbber:function(){return pe},WithTooltip:function(){return Te},YouTubeVideo:function(){return Se},api:function(){return q()},client:function(){return Le},config:function(){return i},getGlobalState:function(){return d.getGlobalState},getSsrContext:function(){return p},isomorphy:function(){return a},server:function(){return Ae},splitComponent:function(){return k},themed:function(){return C},time:function(){return m},useAsyncCollection:function(){return d.useAsyncCollection},useAsyncData:function(){return d.useAsyncData},useGlobalState:function(){return d.useGlobalState},webpack:function(){return n},withGlobalStateType:function(){return d.withGlobalStateType},withRetries:function(){return A}});var e=__webpack_require__(198),t=__webpack_require__.n(e),r=__webpack_require__(848),n=__webpack_require__(911);const o=(r.b?__webpack_require__(88).Z().CONFIG:(0,n.requireWeak)("config"))||{};if(r.b&&"undefined"!=typeof document){const e=__webpack_require__(489);o.CSRF=e.parse(document.cookie).csrfToken}var i=o,a=__webpack_require__(463),c=__webpack_require__(489),l=__webpack_require__(760),_=__webpack_require__.n(l),s=__webpack_require__(156),u=__webpack_require__(269),d=__webpack_require__(899);const{getSsrContext:p}=(0,d.withGlobalStateType)(),f={DAY_MS:u.DAY_MS,HOUR_MS:u.HOUR_MS,MIN_MS:u.MIN_MS,SEC_MS:u.SEC_MS,YEAR_MS:u.YEAR_MS,now:Date.now,timer:u.timer,useCurrent:function(){let{autorefresh:e=!1,globalStatePath:t="currentTime",precision:r=5*u.SEC_MS}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[n,o]=(0,d.useGlobalState)(t,Date.now);return(0,s.useEffect)((()=>{let t;const n=()=>{o((e=>{const t=Date.now();return Math.abs(t-e)>r?t:e})),e&&(t=setTimeout(n,r))};return n(),()=>{t&&clearTimeout(t)}}),[e,r,o]),n},useTimezoneOffset:function(){let{cookieName:e="timezoneOffset",globalStatePath:t="timezoneOffset"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=p(!1),[n,o]=(0,d.useGlobalState)(t,(()=>{var t;const n=e&&(null==r||null===(t=r.req)||void 0===t||null===(t=t.cookies)||void 0===t?void 0:t[e]);return n?parseInt(n,10):0}));return(0,s.useEffect)((()=>{const t=(new Date).getTimezoneOffset();o(t),e&&(document.cookie=c.serialize(e,t.toString(),{path:"/"}))}),[e,o]),n}};var m=Object.assign(_(),f),h=__webpack_require__(99),E=__webpack_require__.n(h),b=__webpack_require__(893);let w;a.IS_CLIENT_SIDE&&(w=__webpack_require__(88).Z().CHUNK_GROUPS||{});const g={};function v(){return(0,a.getBuildInfo)().publicPath}function y(e,t,r){let n;const o=`${v()}/${e}`,i=`${document.location.origin}${o}`;if(!t.has(i)){let e=document.querySelector(`link[href="${o}"]`);e||(e=document.createElement("link"),e.setAttribute("rel","stylesheet"),e.setAttribute("href",o),document.head.appendChild(e)),n=new u.Barrier,e.addEventListener("load",(()=>n.resolve())),e.addEventListener("error",(()=>n.resolve()))}if(r){const e=g[o]||0;g[o]=1+e}return n}function T(e,t){if(!t[e])throw Error(`Unknown chunk name "${e}"`)}function x(e,t,r){const n=[],o=t[e],i=function(){const e=new Set,{styleSheets:t}=document;for(let r=0;r<t.length;++r){const{href:n}=t[r];n&&e.add(n)}return e}();for(let e=0;e<o.length;++e){const t=o[e];if(t.endsWith(".css")){const e=y(t,i,r);e&&n.push(e)}}return n.length?Promise.allSettled(n).then():Promise.resolve()}const P=new Set;function k(e){let{chunkName:t,getComponent:r,placeholder:n}=e;if(a.IS_CLIENT_SIDE&&T(t,w),P.has(t))throw Error(`Repeated splitComponent() call for the chunk "${t}"`);P.add(t);const o=(0,s.lazy)((async()=>{const e=await r(),n="default"in e?e.default:e;a.IS_CLIENT_SIDE&&await x(t,w,!1);const o=(0,s.forwardRef)(((e,r)=>{let{children:o,...i}=e;if(a.IS_SERVER_SIDE){const{chunkGroups:e,chunks:r}=p();T(t,e),r.includes(t)||r.push(t)}return(0,s.useInsertionEffect)((()=>(x(t,w,!0),()=>function(e,t){const r=t[e];for(let e=0;e<r.length;++e){const t=r[e];if(t.endsWith(".css")){const e=`${v()}/${t}`;--g[e]<=0&&document.head.querySelector(`link[href="${e}"]`).remove()}}}(t,w))),[]),(0,b.jsx)(n,{ref:r,...i,children:o})}));return{default:o}})),i=e=>{let{children:t,...r}=e;return(0,b.jsx)(s.Suspense,{fallback:n,children:(0,b.jsx)(o,{...r,children:t})})};return i.propTypes={children:E().node},i.defaultProps={children:void 0},i}const C=t();let O;C.COMPOSE=e.COMPOSE,C.PRIORITY=e.PRIORITY;try{O=process.env.NODE_CONFIG_ENV}catch{}const S="production"!==(O||"production")?n.requireWeak("./jest","/"):null;async function A(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3;for(let n=1;;++n)try{return await e()}catch(e){if(!(n<t))throw e;await m.timer(r)}}var L=__webpack_require__(300),q=__webpack_require__.n(L),R=__webpack_require__(128);const N=e=>{let{children:t,className:r,disabled:n,enforceA:o,keepScrollPosition:i,onClick:a,onMouseDown:c,openNewTab:l,replace:_,routerLinkType:s,to:u,...d}=e;if(n||o||l||null!=u&&u.match(/^(#|(https?|mailto):)/))return(0,b.jsx)("a",{className:(r?r+" ":"")+"zH52sA",href:u,onClick:n?e=>e.preventDefault():a,onMouseDown:n?e=>e.preventDefault():c,rel:"noopener noreferrer",target:l?"_blank":"",children:t});const p=s;return(0,b.jsx)(p,{className:r,onMouseDown:c,replace:_,to:u,onClick:e=>{a&&a(e),i||window.scroll(0,0)},...d,children:t})};N.defaultProps={children:null,className:"",disabled:!1,enforceA:!1,keepScrollPosition:!1,onClick:void 0,onMouseDown:void 0,openNewTab:!1,replace:!1,to:""},N.propTypes={children:E().node,className:E().string,disabled:E().bool,enforceA:E().bool,keepScrollPosition:E().bool,onClick:E().func,onMouseDown:E().func,openNewTab:E().bool,replace:E().bool,routerLinkType:E().elementType.isRequired,to:E().oneOfType([E().object,E().string])};var M=N,D=e=>(0,b.jsx)(M,{...e,routerLinkType:R.Link});const j=e=>{let{active:t,children:r,disabled:n,enforceA:o,onClick:i,onMouseDown:a,openNewTab:c,replace:l,theme:_,to:s}=e,u=_.button;return t&&_.active&&(u+=` ${_.active}`),n?(_.disabled&&(u+=` ${_.disabled}`),(0,b.jsx)("div",{className:u,children:r})):s?(0,b.jsx)(D,{className:u,enforceA:o,onClick:i,onMouseDown:a,openNewTab:c,replace:l,to:s,children:r}):(0,b.jsx)("div",{className:u,onClick:i,onKeyDown:i&&(e=>{"Enter"===e.key&&i(e)}),onMouseDown:a,role:"button",tabIndex:0,children:r})},B=t()(j,"Button",["active","button","disabled"],{button:"E1FNQT",context:"KM0v4f",ad:"_3jm1-Q",hoc:"_0plpDL",active:"MAe9O6",disabled:"Br9IWV"});j.defaultProps={active:!1,children:void 0,disabled:!1,enforceA:!1,onClick:void 0,onMouseDown:void 0,openNewTab:!1,replace:!1,to:void 0},j.propTypes={active:E().bool,children:E().node,disabled:E().bool,enforceA:E().bool,onClick:E().func,onMouseDown:E().func,openNewTab:E().bool,replace:E().bool,theme:B.themeType.isRequired,to:E().oneOfType([E().object,E().string])};var I=B;const W=e=>{let{checked:t,label:r,onChange:n,theme:o}=e;return(0,b.jsxs)("div",{className:o.container,children:[void 0===r?null:(0,b.jsx)("p",{className:o.label,children:r}),(0,b.jsx)("input",{checked:t,className:o.checkbox,onChange:n,type:"checkbox"})]})},U=t()(W,"Checkbox",["checkbox","container","label"],{checkbox:"A-f8qJ",context:"dNQcC6",ad:"earXxa",hoc:"qAPfQ6",container:"Kr0g3M",label:"_3dML-O"});W.propTypes={checked:E().bool,label:E().string,onChange:E().func,theme:U.themeType.isRequired},W.defaultProps={checked:void 0,label:void 0,onChange:void 0};var X=U;const K=e=>{let{filter:t,label:r,onChange:n,options:o=[],theme:i,value:a}=e,c=!1;const l=[];for(let e=0;e<o.length;++e){const r=o[e];if(!t||t(r)){let e,t;"string"==typeof r?(t=r,e=r):(t=r.name||r.value,e=r.value),c||(c=e===a),l.push((0,b.jsx)("option",{className:i.option,value:e,children:t},e))}}const _=c?null:(0,b.jsx)("option",{disabled:!0,className:i.hiddenOption,value:a,children:a},"__reactUtilsHiddenOption");return(0,b.jsxs)("div",{className:i.container,children:[void 0===r?null:(0,b.jsx)("p",{className:i.label,children:r}),(0,b.jsxs)("select",{className:i.select,onChange:n,value:a,children:[_,l]}),(0,b.jsx)("div",{className:i.arrow,children:"▼"})]})},Y=t()(K,"Dropdown",["arrow","container","hiddenOption","label","option","select"],{arrow:"-zPK7Y",context:"haRIry",ad:"D4XHG2",hoc:"N3nd34",container:"_9CQpeA",label:"Gv0kyu",hiddenOption:"RdW3yR",select:"JXK1uw"});K.propTypes={filter:E().func,label:E().string,onChange:E().func,options:E().arrayOf(E().oneOfType([E().shape({name:E().string,value:E().string.isRequired}),E().string]).isRequired),theme:Y.themeType.isRequired,value:E().string},K.defaultProps={filter:void 0,label:void 0,onChange:void 0,options:[],value:""};var $=Y;const z=(0,s.forwardRef)(((e,t)=>{let{label:r,theme:n,...o}=e;return(0,b.jsxs)("span",{className:n.container,children:[void 0===r?null:(0,b.jsx)("p",{className:n.label,children:r}),(0,b.jsx)("input",{className:n.input,ref:t,...o})]})})),F=t()(z,"Input",["container","input","label"],{container:"Cxx397",context:"X5WszA",ad:"_8s7GCr",hoc:"TVlBYc",input:"M07d4s",label:"gfbdq-"});z.propTypes={label:E().string,theme:F.themeType.isRequired},z.defaultProps={label:void 0};var G=F;const H=e=>{let{children:t,leftSidePanelContent:r,rightSidePanelContent:n,theme:o}=e;return(0,b.jsxs)("div",{className:o.container,children:[(0,b.jsx)("div",{className:[o.sidePanel,o.leftSidePanel].join(" "),children:r}),(0,b.jsx)("div",{className:o.mainPanel,children:t}),(0,b.jsx)("div",{className:[o.sidePanel,o.rightSidePanel].join(" "),children:n})]})},V=t()(H,"PageLayout",["container","leftSidePanel","mainPanel","rightSidePanel","sidePanel"],{container:"T3cuHB",context:"m4mL-M",ad:"m3-mdC",hoc:"J15Z4H",mainPanel:"pPlQO2",sidePanel:"lqNh4h"});H.propTypes={children:E().node,leftSidePanelContent:E().node,rightSidePanelContent:E().node,theme:V.themeType.isRequired},H.defaultProps={children:null,leftSidePanelContent:null,rightSidePanelContent:null};var Z=V,J=__webpack_require__(383);const Q=(0,s.createContext)({description:"",title:""}),ee=e=>{let{children:t,description:r,image:n,siteName:o,socialDescription:i,socialTitle:a,title:c,url:l}=e;const _=a||c,u=i||r,d=(0,s.useMemo)((()=>({description:r,image:n,siteName:o,socialDescription:i,socialTitle:a,title:c,url:l})),[r,n,o,i,a,c,l]);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(J.Helmet,{children:[(0,b.jsx)("title",{children:c}),(0,b.jsx)("meta",{name:"description",content:r}),(0,b.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,b.jsx)("meta",{name:"twitter:title",content:_}),(0,b.jsx)("meta",{name:"twitter:description",content:u}),n?(0,b.jsx)("meta",{name:"twitter:image",content:n}):null,o?(0,b.jsx)("meta",{name:"twitter:site",content:`@${o}`}):null,(0,b.jsx)("meta",{name:"og:title",content:_}),n?(0,b.jsx)("meta",{name:"og:image",content:n}):null,n?(0,b.jsx)("meta",{name:"og:image:alt",content:_}):null,(0,b.jsx)("meta",{name:"og:description",content:u}),o?(0,b.jsx)("meta",{name:"og:sitename",content:o}):null,l?(0,b.jsx)("meta",{name:"og:url",content:l}):null]}),t?(0,b.jsx)(Q.Provider,{value:d,children:t}):null]})};ee.Context=Q,ee.defaultProps={children:null,image:"",siteName:"",socialDescription:"",socialTitle:"",url:""},ee.propTypes={children:E().node,description:E().string.isRequired,image:E().string,siteName:E().string,socialDescription:E().string,socialTitle:E().string,title:E().string.isRequired,url:E().string};var te=ee,re=__webpack_require__(467),ne=__webpack_require__(111),oe=__webpack_require__.n(ne);const ie=e=>{let{children:t,onCancel:r,theme:n}=e;const o=(0,s.useRef)(null),i=(0,s.useRef)(null),[a,c]=(0,s.useState)();(0,s.useEffect)((()=>{const e=document.createElement("div");return document.body.classList.add("scrolling-disabled-by-modal"),document.body.appendChild(e),c(e),()=>{document.body.classList.remove("scrolling-disabled-by-modal"),document.body.removeChild(e)}}),[]);const l=(0,s.useMemo)((()=>(0,b.jsx)("div",{onFocus:()=>{var e,t;const r=null===(e=o.current)||void 0===e?void 0:e.querySelectorAll("*");for(let e=r.length-1;e>=0;--e)if(r[e].focus(),document.activeElement===r[e])return;null===(t=i.current)||void 0===t||t.focus()},tabIndex:0})),[]);return a?oe().createPortal((0,b.jsxs)(b.Fragment,{children:[l,(0,b.jsx)("div",{"aria-label":"Cancel",className:n.overlay,onClick:()=>r&&r(),onKeyDown:e=>{"Escape"===e.key&&r&&r()},ref:e=>{e&&e!==i.current&&(i.current=e,e.focus())},role:"button",tabIndex:0}),(0,b.jsx)("div",{"aria-modal":"true",className:n.container,onWheel:e=>e.stopPropagation(),ref:o,role:"dialog",children:t}),(0,b.jsx)("div",{onFocus:()=>{var e;null===(e=i.current)||void 0===e||e.focus()},tabIndex:0}),l]}),a):null},ae=t()(ie,"Modal",["container","overlay"],{overlay:"ye2BZo",context:"Szmbbz",ad:"Ah-Nsc",hoc:"Wki41G",container:"gyZ4rc"});ie.propTypes={onCancel:E().func,children:E().node,theme:ae.themeType.isRequired},ie.defaultProps={onCancel:re.noop,children:null};var ce=ae,le=e=>(0,b.jsx)(M,{...e,routerLinkType:R.NavLink});const _e=e=>{let{children:t,className:r,ratio:n}=e;const o=n.split(":"),i=100*parseFloat(o[1])/parseFloat(o[0])+"%",a=(0,b.jsx)("div",{style:{paddingBottom:i},className:"EznFz3",children:(0,b.jsx)("div",{className:"_0vb7tq",children:t})});return r?(0,b.jsx)("div",{className:r,children:a}):a};_e.defaultProps={children:null,className:void 0,ratio:"1:1"},_e.propTypes={children:E().node,className:E().string,ratio:(e,t)=>{const r=e[t];return void 0===r?null:"string"!=typeof r?Error('"ratio" prop must be a string'):r.match(/\d+:\d+/)?null:Error('"ratio" prop must have "H:W" format')}};var se=_e;const ue=e=>{let{theme:t}=e;return(0,b.jsxs)("span",{className:t.container,children:[(0,b.jsx)("span",{className:t.circle}),(0,b.jsx)("span",{className:t.circle}),(0,b.jsx)("span",{className:t.circle})]})},de=t()(ue,"Throbber",["bouncing","circle","container"],{container:"_7zdld4",context:"uIObt7",ad:"XIxe9o",hoc:"YOyORH",circle:"dBrB4g",bouncing:"TJe-6j"});ue.propTypes={theme:de.themeType.isRequired};var pe=de;let fe=function(e){return e.ABOVE_CURSOR="ABOVE_CURSOR",e.ABOVE_ELEMENT="ABOVE_ELEMENT",e.BELOW_CURSOR="BELOW_CURSOR",e.BELOW_ELEMENT="BELOW_ELEMENT",e}({});const me=["border-bottom-color:transparent","border-left-color:transparent","border-right-color:transparent"].join(";"),he=["border-top-color:transparent","border-left-color:transparent","border-right-color:transparent"].join(";");function Ee(e,t,r,n,o){const i=function(e){return{arrow:e.arrow.getBoundingClientRect(),container:e.container.getBoundingClientRect()}}(o),a=function(){const{scrollX:e,scrollY:t}=window,{documentElement:{clientHeight:r,clientWidth:n}}=document;return{left:e,right:e+n,top:t,bottom:t+r}}(),c=function(e,t,r){const{arrow:n,container:o}=r;return{arrowX:.5*(o.width-n.width),arrowY:o.height,containerX:e-o.width/2,containerY:t-o.height-n.height/1.5,baseArrowStyle:me}}(e,t,i);if(c.containerX<a.left+6)c.containerX=a.left+6,c.arrowX=Math.max(6,e-c.containerX-i.arrow.width/2);else{const t=a.right-6-i.container.width;c.containerX>t&&(c.containerX=t,c.arrowX=Math.min(i.container.width-6,e-c.containerX-i.arrow.width/2))}c.containerY<a.top+6&&(c.containerY+=i.container.height+2*i.arrow.height,c.arrowY-=i.container.height+i.arrow.height,c.baseArrowStyle=he);const l=`left:${c.containerX}px;top:${c.containerY}px`;o.container.setAttribute("style",l);const _=`${c.baseArrowStyle};left:${c.arrowX}px;top:${c.arrowY}px`;o.arrow.setAttribute("style",_)}const be=(0,s.forwardRef)(((e,t)=>{let{children:r,theme:n}=e;const{current:o}=(0,s.useRef)({lastElement:void 0,lastPageX:0,lastPageY:0,lastPlacement:void 0}),[i,a]=(0,s.useState)(null),c=(e,t,r,n)=>{o.lastElement=n,o.lastPageX=e,o.lastPageY=t,o.lastPlacement=r,i&&Ee(e,t,0,0,i)};return(0,s.useImperativeHandle)(t,(()=>({pointTo:c}))),(0,s.useEffect)((()=>{const e=function(e){const t=document.createElement("div");e.arrow&&t.setAttribute("class",e.arrow);const r=document.createElement("div");e.content&&r.setAttribute("class",e.content);const n=document.createElement("div");return e.container&&n.setAttribute("class",e.container),n.appendChild(t),n.appendChild(r),document.body.appendChild(n),{container:n,arrow:t,content:r}}(n);return a(e),()=>{document.body.removeChild(e.container),a(null)}}),[n]),(0,s.useEffect)((()=>{i&&Ee(o.lastPageX,o.lastPageY,o.lastPlacement,o.lastElement,i)}),[i,o.lastPageX,o.lastPageY,o.lastPlacement,o.lastElement]),i?(0,ne.createPortal)(r,i.content):null}));be.propTypes={children:E().node,theme:E().shape({}).isRequired},be.defaultProps={children:null};var we=be;const ge=e=>{let{children:t,placement:r,tip:n,theme:o}=e;const{current:i}=(0,s.useRef)({lastCursorX:0,lastCursorY:0,triggeredByTouch:!1,timerId:void 0}),a=(0,s.useRef)(),c=(0,s.useRef)(null),[l,_]=(0,s.useState)(!1);return(0,s.useEffect)((()=>{if(l&&null!==n){a.current&&a.current.pointTo(i.lastCursorX+window.scrollX,i.lastCursorY+window.scrollY,r,c.current);const e=()=>_(!1);return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)}}),[i.lastCursorX,i.lastCursorY,r,l,n]),(0,b.jsxs)("div",{className:o.wrapper,onMouseLeave:()=>_(!1),onMouseMove:e=>((e,t)=>{if(l){const n=c.current.getBoundingClientRect();e<n.left||e>n.right||t<n.top||t>n.bottom?_(!1):a.current&&a.current.pointTo(e+window.scrollX,t+window.scrollY,r,c.current)}else i.lastCursorX=e,i.lastCursorY=t,i.triggeredByTouch?i.timerId||(i.timerId=setTimeout((()=>{i.triggeredByTouch=!1,i.timerId=void 0,_(!0)}),300)):_(!0)})(e.clientX,e.clientY),onClick:()=>{i.timerId&&(clearTimeout(i.timerId),i.timerId=void 0,i.triggeredByTouch=!1)},onTouchStart:()=>{i.triggeredByTouch=!0},ref:c,role:"presentation",children:[l&&null!==n?(0,b.jsx)(we,{ref:a,theme:o,children:n}):null,t]})},ve=t()(ge,"WithTooltip",["appearance","arrow","container","content","wrapper"],{arrow:"M9gywF",ad:"_4xT7zE",hoc:"zd-vnH",context:"GdZucr",container:"f9gY8K",appearance:"L4ubm-",wrapper:"_4qDBRM"}),ye=ve;ye.PLACEMENTS=fe,ge.propTypes={children:E().node,placement:E().oneOf(Object.values(fe)),theme:ve.themeType.isRequired,tip:E().node},ge.defaultProps={children:null,placement:fe.ABOVE_CURSOR,tip:null};var Te=ye,xe=__webpack_require__(656),Pe=__webpack_require__.n(xe),ke={container:"jTxmOX",context:"dzIcLh",ad:"_5a9XX1",hoc:"_7sH52O"};const Ce=e=>{var t;let{autoplay:r,src:n,theme:o,title:i}=e;const a=n.split("?");let c=a[0];const l=a[1],_=l?Pe().parse(l):{},s=_.v||(null===(t=c.match(/\/([a-zA-Z0-9-_]*)$/))||void 0===t?void 0:t[1]);return c=`https://www.youtube.com/embed/${s}`,delete _.v,_.autoplay=r?"1":"0",c+=`?${Pe().stringify(_)}`,(0,b.jsxs)(se,{className:o.container,ratio:"16:9",children:[(0,b.jsx)(pe,{theme:ke}),(0,b.jsx)("iframe",{allow:"autoplay",allowFullScreen:!0,className:o.video,src:c,title:i})]})},Oe=t()(Ce,"YouTubeVideo",["container","video"],{container:"sXHM81",context:"veKyYi",ad:"r3ABzd",hoc:"YKcPnR",video:"SlV2zw"});Ce.propTypes={autoplay:E().bool,src:E().string.isRequired,theme:Oe.themeType.isRequired,title:E().string},Ce.defaultProps={autoplay:!1,title:""};var Se=Oe;const Ae=n.requireWeak("./server","/"),Le=Ae?void 0:__webpack_require__(7).Z}(),__webpack_exports__}()}));
3
3
  //# sourceMappingURL=web.bundle.js.map