@dr.pogodin/react-utils 1.10.2 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/bin/build.js +1 -3
  2. package/bin/setup.js +2 -2
  3. package/build/development/client/index.js.map +1 -1
  4. package/build/development/index.js +0 -9
  5. package/build/development/index.js.map +1 -1
  6. package/build/development/server/index.js +9 -12
  7. package/build/development/server/index.js.map +1 -1
  8. package/build/development/server/renderer.js +13 -16
  9. package/build/development/server/renderer.js.map +1 -1
  10. package/build/development/shared/components/Button/index.js +6 -6
  11. package/build/development/shared/components/Checkbox/index.js +6 -6
  12. package/build/development/shared/components/CodeSplit/ServerSide.js +2 -3
  13. package/build/development/shared/components/CodeSplit/ServerSide.js.map +1 -1
  14. package/build/development/shared/components/Dropdown/index.js +9 -9
  15. package/build/development/shared/components/GenericLink/index.js +1 -1
  16. package/build/development/shared/components/Input/index.js +6 -6
  17. package/build/development/shared/components/MetaTags.js +10 -9
  18. package/build/development/shared/components/MetaTags.js.map +1 -1
  19. package/build/development/shared/components/Modal/index.js +5 -5
  20. package/build/development/shared/components/PageLayout/index.js +6 -6
  21. package/build/development/shared/components/ScalableRect/index.js +2 -2
  22. package/build/development/shared/components/Throbber/index.js +10 -10
  23. package/build/development/shared/components/WithTooltip/index.js +7 -7
  24. package/build/development/shared/components/YouTubeVideo/index.js +9 -9
  25. package/build/development/shared/utils/index.js +1 -5
  26. package/build/development/shared/utils/index.js.map +1 -1
  27. package/build/development/shared/utils/time.js +3 -1
  28. package/build/development/shared/utils/time.js.map +1 -1
  29. package/build/development/style.css +149 -149
  30. package/build/development/web.bundle.js +19 -29
  31. package/build/production/client/index.js.map +1 -1
  32. package/build/production/index.js +1 -1
  33. package/build/production/index.js.map +1 -1
  34. package/build/production/server/index.js +3 -3
  35. package/build/production/server/index.js.map +1 -1
  36. package/build/production/server/renderer.js +8 -7
  37. package/build/production/server/renderer.js.map +1 -1
  38. package/build/production/shared/components/Button/index.js +1 -1
  39. package/build/production/shared/components/Button/index.js.map +1 -1
  40. package/build/production/shared/components/Checkbox/index.js +1 -1
  41. package/build/production/shared/components/Checkbox/index.js.map +1 -1
  42. package/build/production/shared/components/CodeSplit/ServerSide.js +2 -2
  43. package/build/production/shared/components/CodeSplit/ServerSide.js.map +1 -1
  44. package/build/production/shared/components/Dropdown/index.js +1 -1
  45. package/build/production/shared/components/Dropdown/index.js.map +1 -1
  46. package/build/production/shared/components/GenericLink/index.js +1 -1
  47. package/build/production/shared/components/GenericLink/index.js.map +1 -1
  48. package/build/production/shared/components/Input/index.js +1 -1
  49. package/build/production/shared/components/Input/index.js.map +1 -1
  50. package/build/production/shared/components/MetaTags.js +1 -1
  51. package/build/production/shared/components/MetaTags.js.map +1 -1
  52. package/build/production/shared/components/Modal/index.js +1 -1
  53. package/build/production/shared/components/Modal/index.js.map +1 -1
  54. package/build/production/shared/components/PageLayout/index.js +1 -1
  55. package/build/production/shared/components/PageLayout/index.js.map +1 -1
  56. package/build/production/shared/components/ScalableRect/index.js +1 -1
  57. package/build/production/shared/components/ScalableRect/index.js.map +1 -1
  58. package/build/production/shared/components/Throbber/index.js +2 -2
  59. package/build/production/shared/components/Throbber/index.js.map +1 -1
  60. package/build/production/shared/components/WithTooltip/index.js +1 -1
  61. package/build/production/shared/components/WithTooltip/index.js.map +1 -1
  62. package/build/production/shared/components/YouTubeVideo/index.js +1 -1
  63. package/build/production/shared/components/YouTubeVideo/index.js.map +1 -1
  64. package/build/production/shared/utils/index.js +1 -1
  65. package/build/production/shared/utils/index.js.map +1 -1
  66. package/build/production/shared/utils/time.js +1 -1
  67. package/build/production/shared/utils/time.js.map +1 -1
  68. package/build/production/style.css +1 -1
  69. package/build/production/style.css.map +1 -1
  70. package/build/production/web.bundle.js +1 -1
  71. package/build/production/web.bundle.js.map +1 -1
  72. package/config/babel/node-ssr.js +3 -3
  73. package/config/babel/webpack.js +2 -2
  74. package/config/eslint/default.json +6 -1
  75. package/config/stylelint/default.js +1 -0
  76. package/config/webpack/app-base.js +10 -4
  77. package/config/webpack/app-development.js +2 -2
  78. package/package.json +30 -29
  79. package/build/development/shared/utils/url.js +0 -41
  80. package/build/development/shared/utils/url.js.map +0 -1
  81. package/build/production/shared/utils/url.js +0 -23
  82. package/build/production/shared/utils/url.js.map +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.BaseModal=BaseModal;exports.default=void 0;var _lodash=require("lodash");var _react=require("react");var _reactDom=_interopRequireDefault(require("react-dom"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactThemes=_interopRequireDefault(require("@dr.pogodin/react-themes"));var _jsxRuntime=require("react/jsx-runtime");/* global document */var baseTheme={"context":"_1ItZNx","ad":"_1uOejq","hoc":"_2XWVy4","overlay":"_3eQXFG","container":"S6eRC0"};/**
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.BaseModal=BaseModal;exports.default=void 0;var _lodash=require("lodash");var _react=require("react");var _reactDom=_interopRequireDefault(require("react-dom"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactThemes=_interopRequireDefault(require("@dr.pogodin/react-themes"));var _jsxRuntime=require("react/jsx-runtime");/* global document */var baseTheme={"context":"Szmbbz","ad":"Ah-Nsc","hoc":"Wki41G","overlay":"ye2BZo","container":"gyZ4rc"};/**
2
2
  * The `<Modal>` component implements a simple themeable modal window, wrapped
3
3
  * into the default theme. `<BaseModal>` exposes the base non-themed component.
4
4
  * **Children:** Component children are rendered as the modal content.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shared/components/Modal/index.jsx"],"names":["BaseModal","children","onCancel","theme","containerRef","overlayRef","portal","setPortal","p","document","createElement","body","classList","add","appendChild","remove","removeChild","focusLast","elems","current","querySelectorAll","i","length","focus","activeElement","ReactDom","createPortal","overlay","e","key","node","container","event","stopPropagation","ThemedModal","baseTheme","propTypes","PT","func","themeType","isRequired","defaultProps","noop"],"mappings":"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","sourcesContent":["/* global document */\n\nimport { noop } from 'lodash';\nimport {\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ReactDom from 'react-dom';\nimport PT from 'prop-types';\nimport themed from '@dr.pogodin/react-themes';\n\nimport baseTheme from './base-theme.scss';\nimport './styles.scss';\n\n/**\n * The `<Modal>` component implements a simple themeable modal window, wrapped\n * into the default theme. `<BaseModal>` exposes the base non-themed component.\n * **Children:** Component children are rendered as the modal content.\n * @param {object} props Component properties.\n * @param {function} [props.onCancel] The callback to trigger when user\n * clicks outside the modal, or presses Escape. It is expected to hide the\n * modal.\n * @param {ModalTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\nfunction BaseModal({\n children,\n onCancel,\n theme,\n}) {\n const containerRef = useRef();\n const overlayRef = useRef();\n const [portal, setPortal] = useState();\n\n useEffect(() => {\n const p = document.createElement('div');\n document.body.classList.add('scrolling-disabled-by-modal');\n document.body.appendChild(p);\n setPortal(p);\n return () => {\n document.body.classList.remove('scrolling-disabled-by-modal');\n document.body.removeChild(p);\n };\n }, []);\n\n const focusLast = useMemo(() => (\n <div\n onFocus={() => {\n const elems = containerRef.current.querySelectorAll('*');\n for (let i = elems.length - 1; i >= 0; --i) {\n elems[i].focus();\n if (document.activeElement === elems[i]) return;\n }\n overlayRef.current.focus();\n }}\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n tabIndex=\"0\"\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n />\n ), []);\n\n return portal ? ReactDom.createPortal(\n (\n <>\n {focusLast}\n <div\n aria-label=\"Cancel\"\n className={theme.overlay}\n onClick={() => onCancel()}\n onKeyDown={(e) => {\n if (e.key === 'Escape') onCancel();\n }}\n ref={(node) => {\n if (node && node !== overlayRef.current) {\n overlayRef.current = node;\n node.focus();\n }\n }}\n role=\"button\"\n tabIndex=\"0\"\n />\n <div\n aria-modal=\"true\"\n className={theme.container}\n onWheel={(event) => event.stopPropagation()}\n ref={containerRef}\n role=\"dialog\"\n >\n {children}\n </div>\n <div\n onFocus={() => {\n overlayRef.current.focus();\n }}\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n tabIndex=\"0\"\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n />\n {focusLast}\n </>\n ),\n portal,\n ) : null;\n}\n\nconst ThemedModal = themed(\n 'Modal',\n [\n 'container',\n 'overlay',\n ],\n baseTheme,\n)(BaseModal);\n\nBaseModal.propTypes = {\n onCancel: PT.func,\n children: PT.node,\n theme: ThemedModal.themeType.isRequired,\n};\n\nBaseModal.defaultProps = {\n onCancel: noop,\n children: null,\n};\n\nexport default ThemedModal;\n\n/* Non-themed version of the Modal. */\nexport { BaseModal };\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/shared/components/Modal/index.jsx"],"names":["BaseModal","children","onCancel","theme","containerRef","overlayRef","portal","setPortal","p","document","createElement","body","classList","add","appendChild","remove","removeChild","focusLast","elems","current","querySelectorAll","i","length","focus","activeElement","ReactDom","createPortal","overlay","e","key","node","container","event","stopPropagation","ThemedModal","baseTheme","propTypes","PT","func","themeType","isRequired","defaultProps","noop"],"mappings":"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","sourcesContent":["/* global document */\n\nimport { noop } from 'lodash';\nimport {\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ReactDom from 'react-dom';\nimport PT from 'prop-types';\nimport themed from '@dr.pogodin/react-themes';\n\nimport baseTheme from './base-theme.scss';\nimport './styles.scss';\n\n/**\n * The `<Modal>` component implements a simple themeable modal window, wrapped\n * into the default theme. `<BaseModal>` exposes the base non-themed component.\n * **Children:** Component children are rendered as the modal content.\n * @param {object} props Component properties.\n * @param {function} [props.onCancel] The callback to trigger when user\n * clicks outside the modal, or presses Escape. It is expected to hide the\n * modal.\n * @param {ModalTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\nfunction BaseModal({\n children,\n onCancel,\n theme,\n}) {\n const containerRef = useRef();\n const overlayRef = useRef();\n const [portal, setPortal] = useState();\n\n useEffect(() => {\n const p = document.createElement('div');\n document.body.classList.add('scrolling-disabled-by-modal');\n document.body.appendChild(p);\n setPortal(p);\n return () => {\n document.body.classList.remove('scrolling-disabled-by-modal');\n document.body.removeChild(p);\n };\n }, []);\n\n const focusLast = useMemo(() => (\n <div\n onFocus={() => {\n const elems = containerRef.current.querySelectorAll('*');\n for (let i = elems.length - 1; i >= 0; --i) {\n elems[i].focus();\n if (document.activeElement === elems[i]) return;\n }\n overlayRef.current.focus();\n }}\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n tabIndex=\"0\"\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n />\n ), []);\n\n return portal ? ReactDom.createPortal(\n (\n <>\n {focusLast}\n <div\n aria-label=\"Cancel\"\n className={theme.overlay}\n onClick={() => onCancel()}\n onKeyDown={(e) => {\n if (e.key === 'Escape') onCancel();\n }}\n ref={(node) => {\n if (node && node !== overlayRef.current) {\n overlayRef.current = node;\n node.focus();\n }\n }}\n role=\"button\"\n tabIndex=\"0\"\n />\n <div\n aria-modal=\"true\"\n className={theme.container}\n onWheel={(event) => event.stopPropagation()}\n ref={containerRef}\n role=\"dialog\"\n >\n {children}\n </div>\n <div\n onFocus={() => {\n overlayRef.current.focus();\n }}\n /* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n tabIndex=\"0\"\n /* eslint-enable jsx-a11y/no-noninteractive-tabindex */\n />\n {focusLast}\n </>\n ),\n portal,\n ) : null;\n}\n\nconst ThemedModal = themed(\n 'Modal',\n [\n 'container',\n 'overlay',\n ],\n baseTheme,\n)(BaseModal);\n\nBaseModal.propTypes = {\n onCancel: PT.func,\n children: PT.node,\n theme: ThemedModal.themeType.isRequired,\n};\n\nBaseModal.defaultProps = {\n onCancel: noop,\n children: null,\n};\n\nexport default ThemedModal;\n\n/* Non-themed version of the Modal. */\nexport { BaseModal };\n"],"file":"index.js"}
@@ -1,4 +1,4 @@
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"));var _utils=require("../../utils");var _jsxRuntime=require("react/jsx-runtime");var baseTheme={"context":"ct8AYv","ad":"_3ATReA","hoc":"_1-IZXw","container":"_1IWLUF","mainPanel":"rzMRqr","sidePanel":"_1LD0Kd"};/**
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"));var _utils=require("../../utils");var _jsxRuntime=require("react/jsx-runtime");var baseTheme={"context":"m4mL-M","ad":"m3-mdC","hoc":"J15Z4H","container":"T3cuHB","mainPanel":"pPlQO2","sidePanel":"lqNh4h"};/**
2
2
  * Simple and themeable page layout. It keeps the main content centered in
3
3
  * a column of limited width, which fills entire viewport on small screens
4
4
  * (under `$screen-md = 1024px` size). At larger screens the column keeps
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shared/components/PageLayout/index.jsx"],"names":["PageLayout","children","leftSidePanelContent","rightSidePanelContent","theme","container","sidePanel","leftSidePanel","join","mainPanel","rightSidePanel","ThemedPageLayout","baseTheme","propTypes","PT","node","themeType","isRequired","defaultProps"],"mappings":"gLAAA,6DAEA,kC,gLAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,QAASA,CAAAA,UAAT,CAAoB,CAClBC,QADkB,CAElBC,oBAFkB,CAGlBC,qBAHkB,CAIlBC,KAJkB,CAApB,CAKG,CACD,mBACE,4BAAK,SAAS,CAAEA,KAAK,CAACC,SAAtB,wBACE,2BAAK,SAAS,CAAE,CAACD,KAAK,CAACE,SAAP,CAAkBF,KAAK,CAACG,aAAxB,EAAuCC,IAAvC,CAA4C,GAA5C,CAAhB,UACGN,oBADH,EADF,cAIE,2BAAK,SAAS,CAAEE,KAAK,CAACK,SAAtB,UACGR,QADH,EAJF,cAOE,2BAAK,SAAS,CAAE,CAACG,KAAK,CAACE,SAAP,CAAkBF,KAAK,CAACM,cAAxB,EAAwCF,IAAxC,CAA6C,GAA7C,CAAhB,UACGL,qBADH,EAPF,GAYH,CAED,KAAMQ,CAAAA,gBAAgB,CAAG,kBAAO,YAAP,CAAqB,CAC5C,WAD4C,CAE5C,eAF4C,CAG5C,WAH4C,CAI5C,gBAJ4C,CAK5C,WAL4C,CAArB,CAMtBC,SANsB,EAMXZ,UANW,CAAzB,CAQAA,UAAU,CAACa,SAAX,CAAuB,CACrBZ,QAAQ,CAAEa,mBAAGC,IADQ,CAErBb,oBAAoB,CAAEY,mBAAGC,IAFJ,CAGrBZ,qBAAqB,CAAEW,mBAAGC,IAHL,CAIrBX,KAAK,CAAEO,gBAAgB,CAACK,SAAjB,CAA2BC,UAJb,CAAvB,CAOAjB,UAAU,CAACkB,YAAX,CAA0B,CACxBjB,QAAQ,CAAE,IADc,CAExBC,oBAAoB,CAAE,IAFE,CAGxBC,qBAAqB,CAAE,IAHC,CAA1B,C,aAMeQ,gB","sourcesContent":["import PT from 'prop-types';\n\nimport { themed } from 'utils';\n\nimport baseTheme from './base-theme.scss';\n\n/**\n * Simple and themeable page layout. It keeps the main content centered in\n * a column of limited width, which fills entire viewport on small screens\n * (under `$screen-md = 1024px` size). At larger screens the column keeps\n * `$screen-md` size, and it is centered at the page, surrounded by side\n * panels, where additional content can be displayed.\n *\n * **Children:** Component children are rendered as the content of main panel.\n * @param {object} [props] Component properties.\n * @param {Node} [props.leftSidePanelContent] The content for left side panel.\n * @param {Node} [props.rightSidePanelContent] The content for right side panel.\n * @param {PageLayoutTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\nfunction PageLayout({\n children,\n leftSidePanelContent,\n rightSidePanelContent,\n theme,\n}) {\n return (\n <div className={theme.container}>\n <div className={[theme.sidePanel, theme.leftSidePanel].join(' ')}>\n {leftSidePanelContent}\n </div>\n <div className={theme.mainPanel}>\n {children}\n </div>\n <div className={[theme.sidePanel, theme.rightSidePanel].join(' ')}>\n {rightSidePanelContent}\n </div>\n </div>\n );\n}\n\nconst ThemedPageLayout = themed('PageLayout', [\n 'container',\n 'leftSidePanel',\n 'mainPanel',\n 'rightSidePanel',\n 'sidePanel',\n], baseTheme)(PageLayout);\n\nPageLayout.propTypes = {\n children: PT.node,\n leftSidePanelContent: PT.node,\n rightSidePanelContent: PT.node,\n theme: ThemedPageLayout.themeType.isRequired,\n};\n\nPageLayout.defaultProps = {\n children: null,\n leftSidePanelContent: null,\n rightSidePanelContent: null,\n};\n\nexport default ThemedPageLayout;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/shared/components/PageLayout/index.jsx"],"names":["PageLayout","children","leftSidePanelContent","rightSidePanelContent","theme","container","sidePanel","leftSidePanel","join","mainPanel","rightSidePanel","ThemedPageLayout","baseTheme","propTypes","PT","node","themeType","isRequired","defaultProps"],"mappings":"gLAAA,6DAEA,kC,4KAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,QAASA,CAAAA,UAAT,CAAoB,CAClBC,QADkB,CAElBC,oBAFkB,CAGlBC,qBAHkB,CAIlBC,KAJkB,CAApB,CAKG,CACD,mBACE,4BAAK,SAAS,CAAEA,KAAK,CAACC,SAAtB,wBACE,2BAAK,SAAS,CAAE,CAACD,KAAK,CAACE,SAAP,CAAkBF,KAAK,CAACG,aAAxB,EAAuCC,IAAvC,CAA4C,GAA5C,CAAhB,UACGN,oBADH,EADF,cAIE,2BAAK,SAAS,CAAEE,KAAK,CAACK,SAAtB,UACGR,QADH,EAJF,cAOE,2BAAK,SAAS,CAAE,CAACG,KAAK,CAACE,SAAP,CAAkBF,KAAK,CAACM,cAAxB,EAAwCF,IAAxC,CAA6C,GAA7C,CAAhB,UACGL,qBADH,EAPF,GAYH,CAED,KAAMQ,CAAAA,gBAAgB,CAAG,kBAAO,YAAP,CAAqB,CAC5C,WAD4C,CAE5C,eAF4C,CAG5C,WAH4C,CAI5C,gBAJ4C,CAK5C,WAL4C,CAArB,CAMtBC,SANsB,EAMXZ,UANW,CAAzB,CAQAA,UAAU,CAACa,SAAX,CAAuB,CACrBZ,QAAQ,CAAEa,mBAAGC,IADQ,CAErBb,oBAAoB,CAAEY,mBAAGC,IAFJ,CAGrBZ,qBAAqB,CAAEW,mBAAGC,IAHL,CAIrBX,KAAK,CAAEO,gBAAgB,CAACK,SAAjB,CAA2BC,UAJb,CAAvB,CAOAjB,UAAU,CAACkB,YAAX,CAA0B,CACxBjB,QAAQ,CAAE,IADc,CAExBC,oBAAoB,CAAE,IAFE,CAGxBC,qBAAqB,CAAE,IAHC,CAA1B,C,aAMeQ,gB","sourcesContent":["import PT from 'prop-types';\n\nimport { themed } from 'utils';\n\nimport baseTheme from './base-theme.scss';\n\n/**\n * Simple and themeable page layout. It keeps the main content centered in\n * a column of limited width, which fills entire viewport on small screens\n * (under `$screen-md = 1024px` size). At larger screens the column keeps\n * `$screen-md` size, and it is centered at the page, surrounded by side\n * panels, where additional content can be displayed.\n *\n * **Children:** Component children are rendered as the content of main panel.\n * @param {object} [props] Component properties.\n * @param {Node} [props.leftSidePanelContent] The content for left side panel.\n * @param {Node} [props.rightSidePanelContent] The content for right side panel.\n * @param {PageLayoutTheme} [props.theme] _Ad hoc_ theme.\n * @param {...any} [props....]\n * [Other theming properties](https://www.npmjs.com/package/@dr.pogodin/react-themes#themed-component-properties)\n */\nfunction PageLayout({\n children,\n leftSidePanelContent,\n rightSidePanelContent,\n theme,\n}) {\n return (\n <div className={theme.container}>\n <div className={[theme.sidePanel, theme.leftSidePanel].join(' ')}>\n {leftSidePanelContent}\n </div>\n <div className={theme.mainPanel}>\n {children}\n </div>\n <div className={[theme.sidePanel, theme.rightSidePanel].join(' ')}>\n {rightSidePanelContent}\n </div>\n </div>\n );\n}\n\nconst ThemedPageLayout = themed('PageLayout', [\n 'container',\n 'leftSidePanel',\n 'mainPanel',\n 'rightSidePanel',\n 'sidePanel',\n], baseTheme)(PageLayout);\n\nPageLayout.propTypes = {\n children: PT.node,\n leftSidePanelContent: PT.node,\n rightSidePanelContent: PT.node,\n theme: ThemedPageLayout.themeType.isRequired,\n};\n\nPageLayout.defaultProps = {\n children: null,\n leftSidePanelContent: null,\n rightSidePanelContent: null,\n};\n\nexport default ThemedPageLayout;\n"],"file":"index.js"}
@@ -13,5 +13,5 @@
13
13
  * "className" by Babel just before being passed into this component), it
14
14
  * should not interfere with the sizing behavior, thus we need an extra <div>
15
15
  * level in this component; however, if user does not need a custom styling,
16
- * we can save one level of HTML code, so we do it. */const rect=/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{style:{paddingBottom},className:"_3XzGXs",children:/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:"_1vMblT",children:children})});return className?/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:className,children:rect}):rect}ScalableRect.defaultProps={children:null,className:null,ratio:"1:1"};ScalableRect.propTypes={children:_propTypes.default.node,className:_propTypes.default.string,ratio:_propTypes.default.string};
16
+ * we can save one level of HTML code, so we do it. */const rect=/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{style:{paddingBottom},className:"EznFz3",children:/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:"_0vb7tq",children:children})});return className?/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:className,children:rect}):rect}ScalableRect.defaultProps={children:null,className:null,ratio:"1:1"};ScalableRect.propTypes={children:_propTypes.default.node,className:_propTypes.default.string,ratio:_propTypes.default.string};
17
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shared/components/ScalableRect/index.jsx"],"names":["ScalableRect","children","className","ratio","aux","split","paddingBottom","rect","defaultProps","propTypes","PT","node","string"],"mappings":"sLAAA,6D,6CAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACe,QAASA,CAAAA,YAAT,CAAsB,CAAEC,QAAF,CAAYC,SAAZ,CAAuBC,KAAvB,CAAtB,CAAsD,CACnE,KAAMC,CAAAA,GAAG,CAAGD,KAAK,CAACE,KAAN,CAAY,GAAZ,CAAZ,CACA,KAAMC,CAAAA,aAAa,CAAI,GAAG,IAAMF,GAAG,CAAC,CAAD,CAAV,CAAiBA,GAAG,CAAC,CAAD,CAAI,GAAjD,CAEA;AACF;AACA;AACA;AACA;AACA;AACA,wDACE,KAAMG,CAAAA,IAAI,cACR,2BACE,KAAK,CAAE,CAAED,aAAF,CADT,CAEE,SAAS,CAAC,SAFZ,uBAIE,2BAAK,SAAS,CAAC,SAAf,UACGL,QADH,EAJF,EADF,CAUA,MAAOC,CAAAA,SAAS,cACd,2BAAK,SAAS,CAAEA,SAAhB,UACGK,IADH,EADc,CAIZA,IACL,CAEDP,YAAY,CAACQ,YAAb,CAA4B,CAC1BP,QAAQ,CAAE,IADgB,CAE1BC,SAAS,CAAE,IAFe,CAG1BC,KAAK,CAAE,KAHmB,CAA5B,CAMAH,YAAY,CAACS,SAAb,CAAyB,CACvBR,QAAQ,CAAES,mBAAGC,IADU,CAEvBT,SAAS,CAAEQ,mBAAGE,MAFS,CAGvBT,KAAK,CAAEO,mBAAGE,MAHa,CAAzB","sourcesContent":["import PT from 'prop-types';\n\nimport './style.scss';\n\n/**\n * The `<ScalableRect>` component implements container keeping given aspect\n * ratio, while its width is altered.\n *\n * **Children:** Component children are rendered as the component's content.\n * @param {object} props\n * @param {string} [props.className] CSS class for component container.\n * @param {string} [props.ratio=1:1] Ratio of the rendered rectangle sides,\n * in `W:H` form.\n */\nexport default function ScalableRect({ children, className, ratio }) {\n const aux = ratio.split(':');\n const paddingBottom = `${(100 * aux[1]) / aux[0]}%`;\n\n /* NOTE: In case the following code looks strange to you, mind that we want to\n * allow the user to set custom styles on this component. If user passes in a\n * \"className\" prop (possibly \"styleName\", but that one is converted to\n * \"className\" by Babel just before being passed into this component), it\n * should not interfere with the sizing behavior, thus we need an extra <div>\n * level in this component; however, if user does not need a custom styling,\n * we can save one level of HTML code, so we do it. */\n const rect = (\n <div\n style={{ paddingBottom }}\n styleName=\"container\"\n >\n <div styleName=\"wrapper\">\n {children}\n </div>\n </div>\n );\n return className ? (\n <div className={className}>\n {rect}\n </div>\n ) : rect;\n}\n\nScalableRect.defaultProps = {\n children: null,\n className: null,\n ratio: '1:1',\n};\n\nScalableRect.propTypes = {\n children: PT.node,\n className: PT.string,\n ratio: PT.string,\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/shared/components/ScalableRect/index.jsx"],"names":["ScalableRect","children","className","ratio","aux","split","paddingBottom","rect","defaultProps","propTypes","PT","node","string"],"mappings":"sLAAA,6D,6CAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACe,QAASA,CAAAA,YAAT,CAAsB,CAAEC,QAAF,CAAYC,SAAZ,CAAuBC,KAAvB,CAAtB,CAAsD,CACnE,KAAMC,CAAAA,GAAG,CAAGD,KAAK,CAACE,KAAN,CAAY,GAAZ,CAAZ,CACA,KAAMC,CAAAA,aAAa,CAAI,GAAG,IAAMF,GAAG,CAAC,CAAD,CAAV,CAAiBA,GAAG,CAAC,CAAD,CAAI,GAAjD,CAEA;AACF;AACA;AACA;AACA;AACA;AACA,wDACE,KAAMG,CAAAA,IAAI,cACR,2BACE,KAAK,CAAE,CAAED,aAAF,CADT,CAEE,SAAS,CAAC,QAFZ,uBAIE,2BAAK,SAAS,CAAC,SAAf,UACGL,QADH,EAJF,EADF,CAUA,MAAOC,CAAAA,SAAS,cACd,2BAAK,SAAS,CAAEA,SAAhB,UACGK,IADH,EADc,CAIZA,IACL,CAEDP,YAAY,CAACQ,YAAb,CAA4B,CAC1BP,QAAQ,CAAE,IADgB,CAE1BC,SAAS,CAAE,IAFe,CAG1BC,KAAK,CAAE,KAHmB,CAA5B,CAMAH,YAAY,CAACS,SAAb,CAAyB,CACvBR,QAAQ,CAAES,mBAAGC,IADU,CAEvBT,SAAS,CAAEQ,mBAAGE,MAFS,CAGvBT,KAAK,CAAEO,mBAAGE,MAHa,CAAzB","sourcesContent":["import PT from 'prop-types';\n\nimport './style.scss';\n\n/**\n * The `<ScalableRect>` component implements container keeping given aspect\n * ratio, while its width is altered.\n *\n * **Children:** Component children are rendered as the component's content.\n * @param {object} props\n * @param {string} [props.className] CSS class for component container.\n * @param {string} [props.ratio=1:1] Ratio of the rendered rectangle sides,\n * in `W:H` form.\n */\nexport default function ScalableRect({ children, className, ratio }) {\n const aux = ratio.split(':');\n const paddingBottom = `${(100 * aux[1]) / aux[0]}%`;\n\n /* NOTE: In case the following code looks strange to you, mind that we want to\n * allow the user to set custom styles on this component. If user passes in a\n * \"className\" prop (possibly \"styleName\", but that one is converted to\n * \"className\" by Babel just before being passed into this component), it\n * should not interfere with the sizing behavior, thus we need an extra <div>\n * level in this component; however, if user does not need a custom styling,\n * we can save one level of HTML code, so we do it. */\n const rect = (\n <div\n style={{ paddingBottom }}\n styleName=\"container\"\n >\n <div styleName=\"wrapper\">\n {children}\n </div>\n </div>\n );\n return className ? (\n <div className={className}>\n {rect}\n </div>\n ) : rect;\n}\n\nScalableRect.defaultProps = {\n children: null,\n className: null,\n ratio: '1:1',\n};\n\nScalableRect.propTypes = {\n children: PT.node,\n className: PT.string,\n ratio: PT.string,\n};\n"],"file":"index.js"}
@@ -1,4 +1,4 @@
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"));var _reactThemes=_interopRequireDefault(require("@dr.pogodin/react-themes"));var _jsxRuntime=require("react/jsx-runtime");var defaultTheme={"context":"_3F9X6R","ad":"_27RWOc","hoc":"_1mH4lL","bouncing":"_2Zvm3x","container":"YlvKSG","circle":"QhSt1A"};/**
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"));var _reactThemes=_interopRequireDefault(require("@dr.pogodin/react-themes"));var _jsxRuntime=require("react/jsx-runtime");var defaultTheme={"context":"uIObt7","ad":"XIxe9o","hoc":"YOyORH","bouncing":"TJe-6j","container":"_7zdld4","circle":"dBrB4g"};/**
2
2
  * Throbber is an "action in progress" indicator, which renders
3
3
  * three bouncing circles as a simple pending activity indicator,
4
4
  * and can be further themed to a certain degree.
@@ -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
- */function Throbber({theme}){return/*#__PURE__*/(0,_jsxRuntime.jsxs)("div",{className:(theme.container?theme.container+" ":"")+"YlvKSG",children:[/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:(theme.circle?theme.circle+" ":"")+"QhSt1A"}),/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:(theme.circle?theme.circle+" ":"")+"QhSt1A"}),/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:(theme.circle?theme.circle+" ":"")+"QhSt1A"})]})}Throbber.defaultProps={theme:{}};Throbber.propTypes={theme:_propTypes.default.shape({container:_propTypes.default.string,circle:_propTypes.default.string})};var _default=(0,_reactThemes.default)("Throbber",["circle","container"],defaultTheme)(Throbber);exports.default=_default;
9
+ */function Throbber({theme}){return/*#__PURE__*/(0,_jsxRuntime.jsxs)("div",{className:(theme.container?theme.container+" ":"")+"_7zdld4",children:[/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:(theme.circle?theme.circle+" ":"")+"dBrB4g"}),/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:(theme.circle?theme.circle+" ":"")+"dBrB4g"}),/*#__PURE__*/(0,_jsxRuntime.jsx)("div",{className:(theme.circle?theme.circle+" ":"")+"dBrB4g"})]})}Throbber.defaultProps={theme:{}};Throbber.propTypes={theme:_propTypes.default.shape({container:_propTypes.default.string,circle:_propTypes.default.string})};var _default=(0,_reactThemes.default)("Throbber",["circle","container"],defaultTheme)(Throbber);exports.default=_default;
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shared/components/Throbber/index.jsx"],"names":["Throbber","theme","container","circle","defaultProps","propTypes","PT","shape","string","defaultTheme"],"mappings":"gLAAA,6DACA,6E,+KAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,QAASA,CAAAA,QAAT,CAAkB,CAChBC,KADgB,CAAlB,CAEG,CACD,mBACE,4BAAK,SAAS,EAAEA,KAAK,CAACC,SAAR,CAAED,KAAK,CAACC,SAAR,iBAAd,wBACE,2BAAK,SAAS,EAAED,KAAK,CAACE,MAAR,CAAEF,KAAK,CAACE,MAAR,iBAAd,EADF,cAEE,2BAAK,SAAS,EAAEF,KAAK,CAACE,MAAR,CAAEF,KAAK,CAACE,MAAR,iBAAd,EAFF,cAGE,2BAAK,SAAS,EAAEF,KAAK,CAACE,MAAR,CAAEF,KAAK,CAACE,MAAR,iBAAd,EAHF,GAMH,CAEDH,QAAQ,CAACI,YAAT,CAAwB,CACtBH,KAAK,CAAE,EADe,CAAxB,CAIAD,QAAQ,CAACK,SAAT,CAAqB,CACnBJ,KAAK,CAAEK,mBAAGC,KAAH,CAAS,CACdL,SAAS,CAAEI,mBAAGE,MADA,CAEdL,MAAM,CAAEG,mBAAGE,MAFG,CAAT,CADY,CAArB,C,aAOe,yBAAO,UAAP,CAAmB,CAChC,QADgC,CAEhC,WAFgC,CAAnB,CAGZC,YAHY,EAGET,QAHF,C","sourcesContent":["import PT from 'prop-types';\nimport themed from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './theme.scss';\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 */\nfunction Throbber({\n theme,\n}) {\n return (\n <div className={theme.container} styleName=\"container\">\n <div className={theme.circle} styleName=\"circle\" />\n <div className={theme.circle} styleName=\"circle\" />\n <div className={theme.circle} styleName=\"circle\" />\n </div>\n );\n}\n\nThrobber.defaultProps = {\n theme: {},\n};\n\nThrobber.propTypes = {\n theme: PT.shape({\n container: PT.string,\n circle: PT.string,\n }),\n};\n\nexport default themed('Throbber', [\n 'circle',\n 'container',\n], defaultTheme)(Throbber);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/shared/components/Throbber/index.jsx"],"names":["Throbber","theme","container","circle","defaultProps","propTypes","PT","shape","string","defaultTheme"],"mappings":"gLAAA,6DACA,6E,4KAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,QAASA,CAAAA,QAAT,CAAkB,CAChBC,KADgB,CAAlB,CAEG,CACD,mBACE,4BAAK,SAAS,EAAEA,KAAK,CAACC,SAAR,CAAED,KAAK,CAACC,SAAR,kBAAd,wBACE,2BAAK,SAAS,EAAED,KAAK,CAACE,MAAR,CAAEF,KAAK,CAACE,MAAR,iBAAd,EADF,cAEE,2BAAK,SAAS,EAAEF,KAAK,CAACE,MAAR,CAAEF,KAAK,CAACE,MAAR,iBAAd,EAFF,cAGE,2BAAK,SAAS,EAAEF,KAAK,CAACE,MAAR,CAAEF,KAAK,CAACE,MAAR,iBAAd,EAHF,GAMH,CAEDH,QAAQ,CAACI,YAAT,CAAwB,CACtBH,KAAK,CAAE,EADe,CAAxB,CAIAD,QAAQ,CAACK,SAAT,CAAqB,CACnBJ,KAAK,CAAEK,mBAAGC,KAAH,CAAS,CACdL,SAAS,CAAEI,mBAAGE,MADA,CAEdL,MAAM,CAAEG,mBAAGE,MAFG,CAAT,CADY,CAArB,C,aAOe,yBAAO,UAAP,CAAmB,CAChC,QADgC,CAEhC,WAFgC,CAAnB,CAGZC,YAHY,EAGET,QAHF,C","sourcesContent":["import PT from 'prop-types';\nimport themed from '@dr.pogodin/react-themes';\n\nimport defaultTheme from './theme.scss';\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 */\nfunction Throbber({\n theme,\n}) {\n return (\n <div className={theme.container} styleName=\"container\">\n <div className={theme.circle} styleName=\"circle\" />\n <div className={theme.circle} styleName=\"circle\" />\n <div className={theme.circle} styleName=\"circle\" />\n </div>\n );\n}\n\nThrobber.defaultProps = {\n theme: {},\n};\n\nThrobber.propTypes = {\n theme: PT.shape({\n container: PT.string,\n circle: PT.string,\n }),\n};\n\nexport default themed('Throbber', [\n 'circle',\n 'container',\n], defaultTheme)(Throbber);\n"],"file":"index.js"}
@@ -1,4 +1,4 @@
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"));var _react=require("react");var _utils=require("../../utils");var _Tooltip=_interopRequireWildcard(require("./Tooltip"));var _jsxRuntime=require("react/jsx-runtime");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}/* global window */var defaultTheme={"ad":"_37hn-I","hoc":"_2CTWO-","context":"_1sPLIy","appearance":"_1_CLjK","arrow":"_1My0bf","container":"_1RivOp","wrapper":"_23r31M"};/**
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"));var _react=require("react");var _utils=require("../../utils");var _Tooltip=_interopRequireWildcard(require("./Tooltip"));var _jsxRuntime=require("react/jsx-runtime");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}/* global window */var defaultTheme={"ad":"_4xT7zE","hoc":"zd-vnH","context":"GdZucr","appearance":"L4ubm-","arrow":"M9gywF","container":"f9gY8K","wrapper":"_4qDBRM"};/**
2
2
  * Implements a simple to use and themeable tooltip component, _e.g._
3
3
  * ```js
4
4
  * <WithTooltip tip="This is example tooltip.">
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shared/components/WithTooltip/index.jsx"],"names":["Wrapper","children","placement","tip","theme","tooltipRef","wrapperRef","showTooltip","setShowTooltip","updatePortalPosition","cursorX","cursorY","wrapperRect","current","getBoundingClientRect","left","right","top","bottom","pointTo","window","pageXOffset","pageYOffset","listener","addEventListener","removeEventListener","undefined","wrapper","e","clientX","clientY","ThemedWrapper","defaultTheme","PLACEMENTS","propTypes","PT","node","oneOf","Object","values","themeType","isRequired","defaultProps","ABOVE_CURSOR"],"mappings":"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","sourcesContent":["/* global window */\n\nimport PT from 'prop-types';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { themed } from 'utils';\n\nimport Tooltip, { PLACEMENTS } from './Tooltip';\n\nimport defaultTheme from './default-theme.scss';\n\n/**\n * Implements a simple to use and themeable tooltip component, _e.g._\n * ```js\n * <WithTooltip tip=\"This is example tooltip.\">\n * <p>Hover to see the tooltip.</p>\n * </WithTooltip>\n * ```\n * **Children:** Children are rendered in the place of `<WithTooltip>`,\n * and when hovered the tooltip is shown. By default the wrapper itself is\n * `<div>` block with `display: inline-block`.\n * @param {object} props Component properties.\n * @param {React.node} props.tip &ndash; Anything React is able to render,\n * _e.g._ a tooltip text. This will be the tooltip content.\n * @param {WithTooltipTheme} props.theme _Ad hoc_ theme.\n */\nfunction Wrapper({\n children,\n placement,\n tip,\n theme,\n}) {\n const tooltipRef = useRef();\n const wrapperRef = useRef();\n const [showTooltip, setShowTooltip] = useState(false);\n\n const updatePortalPosition = (cursorX, cursorY) => {\n if (!showTooltip) setShowTooltip(true);\n else {\n const wrapperRect = wrapperRef.current.getBoundingClientRect();\n if (\n cursorX < wrapperRect.left\n || cursorX > wrapperRect.right\n || cursorY < wrapperRect.top\n || cursorY > wrapperRect.bottom\n ) {\n setShowTooltip(false);\n } else if (tooltipRef.current) {\n tooltipRef.current.pointTo(\n cursorX + window.pageXOffset,\n cursorY + window.pageYOffset,\n placement,\n wrapperRef.current,\n );\n }\n }\n };\n\n useEffect(() => {\n if (showTooltip && tip !== null) {\n const listener = () => setShowTooltip(false);\n window.addEventListener('scroll', listener);\n return () => window.removeEventListener('scroll', listener);\n }\n return undefined;\n }, [showTooltip, tip]);\n\n return (\n <div\n className={theme.wrapper}\n onMouseLeave={() => setShowTooltip(false)}\n onMouseMove={(e) => updatePortalPosition(e.clientX, e.clientY)}\n ref={wrapperRef}\n >\n {\n showTooltip && tip !== null ? (\n <Tooltip ref={tooltipRef} theme={theme}>{tip}</Tooltip>\n ) : null\n }\n {children}\n </div>\n );\n}\n\nconst ThemedWrapper = themed(\n 'WithTooltip',\n [\n 'appearance',\n 'arrow',\n 'container',\n 'content',\n 'wrapper',\n ],\n defaultTheme,\n)(Wrapper);\n\nThemedWrapper.PLACEMENTS = PLACEMENTS;\n\nWrapper.propTypes = {\n children: PT.node,\n placement: PT.oneOf(Object.values(PLACEMENTS)),\n theme: ThemedWrapper.themeType.isRequired,\n tip: PT.node,\n};\n\nWrapper.defaultProps = {\n children: null,\n placement: PLACEMENTS.ABOVE_CURSOR,\n tip: null,\n};\n\nexport default ThemedWrapper;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/shared/components/WithTooltip/index.jsx"],"names":["Wrapper","children","placement","tip","theme","tooltipRef","wrapperRef","showTooltip","setShowTooltip","updatePortalPosition","cursorX","cursorY","wrapperRect","current","getBoundingClientRect","left","right","top","bottom","pointTo","window","pageXOffset","pageYOffset","listener","addEventListener","removeEventListener","undefined","wrapper","e","clientX","clientY","ThemedWrapper","defaultTheme","PLACEMENTS","propTypes","PT","node","oneOf","Object","values","themeType","isRequired","defaultProps","ABOVE_CURSOR"],"mappings":"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","sourcesContent":["/* global window */\n\nimport PT from 'prop-types';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { themed } from 'utils';\n\nimport Tooltip, { PLACEMENTS } from './Tooltip';\n\nimport defaultTheme from './default-theme.scss';\n\n/**\n * Implements a simple to use and themeable tooltip component, _e.g._\n * ```js\n * <WithTooltip tip=\"This is example tooltip.\">\n * <p>Hover to see the tooltip.</p>\n * </WithTooltip>\n * ```\n * **Children:** Children are rendered in the place of `<WithTooltip>`,\n * and when hovered the tooltip is shown. By default the wrapper itself is\n * `<div>` block with `display: inline-block`.\n * @param {object} props Component properties.\n * @param {React.node} props.tip &ndash; Anything React is able to render,\n * _e.g._ a tooltip text. This will be the tooltip content.\n * @param {WithTooltipTheme} props.theme _Ad hoc_ theme.\n */\nfunction Wrapper({\n children,\n placement,\n tip,\n theme,\n}) {\n const tooltipRef = useRef();\n const wrapperRef = useRef();\n const [showTooltip, setShowTooltip] = useState(false);\n\n const updatePortalPosition = (cursorX, cursorY) => {\n if (!showTooltip) setShowTooltip(true);\n else {\n const wrapperRect = wrapperRef.current.getBoundingClientRect();\n if (\n cursorX < wrapperRect.left\n || cursorX > wrapperRect.right\n || cursorY < wrapperRect.top\n || cursorY > wrapperRect.bottom\n ) {\n setShowTooltip(false);\n } else if (tooltipRef.current) {\n tooltipRef.current.pointTo(\n cursorX + window.pageXOffset,\n cursorY + window.pageYOffset,\n placement,\n wrapperRef.current,\n );\n }\n }\n };\n\n useEffect(() => {\n if (showTooltip && tip !== null) {\n const listener = () => setShowTooltip(false);\n window.addEventListener('scroll', listener);\n return () => window.removeEventListener('scroll', listener);\n }\n return undefined;\n }, [showTooltip, tip]);\n\n return (\n <div\n className={theme.wrapper}\n onMouseLeave={() => setShowTooltip(false)}\n onMouseMove={(e) => updatePortalPosition(e.clientX, e.clientY)}\n ref={wrapperRef}\n >\n {\n showTooltip && tip !== null ? (\n <Tooltip ref={tooltipRef} theme={theme}>{tip}</Tooltip>\n ) : null\n }\n {children}\n </div>\n );\n}\n\nconst ThemedWrapper = themed(\n 'WithTooltip',\n [\n 'appearance',\n 'arrow',\n 'container',\n 'content',\n 'wrapper',\n ],\n defaultTheme,\n)(Wrapper);\n\nThemedWrapper.PLACEMENTS = PLACEMENTS;\n\nWrapper.propTypes = {\n children: PT.node,\n placement: PT.oneOf(Object.values(PLACEMENTS)),\n theme: ThemedWrapper.themeType.isRequired,\n tip: PT.node,\n};\n\nWrapper.defaultProps = {\n children: null,\n placement: PLACEMENTS.ABOVE_CURSOR,\n tip: null,\n};\n\nexport default ThemedWrapper;\n"],"file":"index.js"}
@@ -1,4 +1,4 @@
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"));var _qs=_interopRequireDefault(require("qs"));var _ScalableRect=_interopRequireDefault(require("../ScalableRect"));var _reactThemes=_interopRequireDefault(require("@dr.pogodin/react-themes"));var _Throbber=_interopRequireDefault(require("../Throbber"));var _jsxRuntime=require("react/jsx-runtime");var baseTheme={"context":"_2wWh54","ad":"ZI1L-P","hoc":"zCNKnQ","container":"_1-I6ek","video":"_2hd-z-"};var throbberTheme={"context":"_3R7Jzw","ad":"_2H1dS-","hoc":"_3U7SmJ","container":"_2O23yT"};/**
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"));var _qs=_interopRequireDefault(require("qs"));var _ScalableRect=_interopRequireDefault(require("../ScalableRect"));var _reactThemes=_interopRequireDefault(require("@dr.pogodin/react-themes"));var _Throbber=_interopRequireDefault(require("../Throbber"));var _jsxRuntime=require("react/jsx-runtime");var baseTheme={"context":"veKyYi","ad":"r3ABzd","hoc":"YKcPnR","container":"sXHM81","video":"SlV2zw"};var throbberTheme={"context":"dzIcLh","ad":"_5a9XX1","hoc":"_7sH52O","container":"jTxmOX"};/**
2
2
  * A component for embeding a YouTube video.
3
3
  * @param {object} [props] Component properties.
4
4
  * @param {boolean} [props.autoplay] If `true` the video will start to play
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shared/components/YouTubeVideo/index.jsx"],"names":["YouTubeVideo","autoplay","src","theme","title","url","query","split","qs","parse","videoId","v","match","stringify","container","throbberTheme","video","ThemedYouTubeVideo","baseTheme","propTypes","PT","bool","string","isRequired","themeType","defaultProps"],"mappings":"gLAAA,6DACA,8CACA,qEACA,6EACA,6D,mPAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,QAASA,CAAAA,YAAT,CAAsB,CACpBC,QADoB,CAEpBC,GAFoB,CAGpBC,KAHoB,CAIpBC,KAJoB,CAAtB,CAKG,CACD,GAAI,CAACC,GAAD,CAAMC,KAAN,EAAeJ,GAAG,CAACK,KAAJ,CAAU,GAAV,CAAnB,CACAD,KAAK,CAAGA,KAAK,CAAGE,YAAGC,KAAH,CAASH,KAAT,CAAH,CAAqB,EAAlC,CAEA,KAAMI,CAAAA,OAAO,CAAGJ,KAAK,CAACK,CAAN,EAAWN,GAAG,CAACO,KAAJ,CAAU,qBAAV,EAAiC,CAAjC,CAA3B,CACAP,GAAG,CAAI,iCAAgCK,OAAQ,EAA/C,CAEA,MAAOJ,CAAAA,KAAK,CAACK,CAAb,CACAL,KAAK,CAACL,QAAN,CAAiBA,QAAQ,CAAG,CAAH,CAAO,CAAhC,CACAI,GAAG,EAAK,IAAGG,YAAGK,SAAH,CAAaP,KAAb,CAAoB,EAA/B,CAEA;AACA;AAEA,mBACE,qBAAC,qBAAD,EAAc,SAAS,CAAEH,KAAK,CAACW,SAA/B,CAA0C,KAAK,CAAC,MAAhD,wBACE,oBAAC,iBAAD,EAAU,KAAK,CAAEC,aAAjB,EADF,cAEE,8BACE,KAAK,CAAC,UADR,CAEE,eAAe,KAFjB,CAGE,SAAS,CAAEZ,KAAK,CAACa,KAHnB,CAIE,GAAG,CAAEX,GAJP,CAKE,KAAK,CAAED,KALT,EAFF,GAWH,CAED,KAAMa,CAAAA,kBAAkB,CAAG,yBACzB,cADyB,CAEzB,CACE,WADF,CAEE,OAFF,CAFyB,CAMzBC,SANyB,EAOzBlB,YAPyB,CAA3B,CASAA,YAAY,CAACmB,SAAb,CAAyB,CACvBlB,QAAQ,CAAEmB,mBAAGC,IADU,CAEvBnB,GAAG,CAAEkB,mBAAGE,MAAH,CAAUC,UAFQ,CAGvBpB,KAAK,CAAEc,kBAAkB,CAACO,SAAnB,CAA6BD,UAHb,CAIvBnB,KAAK,CAAEgB,mBAAGE,MAJa,CAAzB,CAOAtB,YAAY,CAACyB,YAAb,CAA4B,CAC1BxB,QAAQ,CAAE,KADgB,CAE1BG,KAAK,CAAE,EAFmB,CAA5B,C,aAKea,kB","sourcesContent":["import PT from 'prop-types';\nimport qs from 'qs';\nimport ScalableRect from 'components/ScalableRect';\nimport themed from '@dr.pogodin/react-themes';\nimport Throbber from 'components/Throbber';\n\nimport baseTheme from './base.scss';\nimport throbberTheme from './throbber.scss';\n\n/**\n * A component for embeding a YouTube video.\n * @param {object} [props] Component properties.\n * @param {boolean} [props.autoplay] If `true` the video will start to play\n * automatically once loaded.\n * @param {string} [props.src] URL of the video to play. Can be in any of\n * the following formats, and keeps any additional query parameters understood\n * by the YouTube IFrame player:\n * - `https://www.youtube.com/watch?v=NdF6Rmt6Ado`\n * - `https://youtu.be/NdF6Rmt6Ado`\n * - `https://www.youtube.com/embed/NdF6Rmt6Ado`\n * @param {YouTubeVideoTheme} [props.theme] _Ad hoc_ theme.\n * @param {string} [props.title] The `title` attribute to add to the player\n * IFrame.\n */\nfunction YouTubeVideo({\n autoplay,\n src,\n theme,\n title,\n}) {\n let [url, query] = src.split('?');\n query = query ? qs.parse(query) : {};\n\n const videoId = query.v || url.match(/\\/([a-zA-Z0-9-_]*)$/)[1];\n url = `https://www.youtube.com/embed/${videoId}`;\n\n delete query.v;\n query.autoplay = autoplay ? 1 : 0;\n url += `?${qs.stringify(query)}`;\n\n // TODO: https://developers.google.com/youtube/player_parameters\n // More query parameters can be exposed via the component props.\n\n return (\n <ScalableRect className={theme.container} ratio=\"16:9\">\n <Throbber theme={throbberTheme} />\n <iframe\n allow=\"autoplay\"\n allowFullScreen\n className={theme.video}\n src={url}\n title={title}\n />\n </ScalableRect>\n );\n}\n\nconst ThemedYouTubeVideo = themed(\n 'YouTubeVideo',\n [\n 'container',\n 'video',\n ],\n baseTheme,\n)(YouTubeVideo);\n\nYouTubeVideo.propTypes = {\n autoplay: PT.bool,\n src: PT.string.isRequired,\n theme: ThemedYouTubeVideo.themeType.isRequired,\n title: PT.string,\n};\n\nYouTubeVideo.defaultProps = {\n autoplay: false,\n title: '',\n};\n\nexport default ThemedYouTubeVideo;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/shared/components/YouTubeVideo/index.jsx"],"names":["YouTubeVideo","autoplay","src","theme","title","url","query","split","qs","parse","videoId","v","match","stringify","container","throbberTheme","video","ThemedYouTubeVideo","baseTheme","propTypes","PT","bool","string","isRequired","themeType","defaultProps"],"mappings":"gLAAA,6DACA,8CACA,qEACA,6EACA,6D,8OAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,QAASA,CAAAA,YAAT,CAAsB,CACpBC,QADoB,CAEpBC,GAFoB,CAGpBC,KAHoB,CAIpBC,KAJoB,CAAtB,CAKG,CACD,GAAI,CAACC,GAAD,CAAMC,KAAN,EAAeJ,GAAG,CAACK,KAAJ,CAAU,GAAV,CAAnB,CACAD,KAAK,CAAGA,KAAK,CAAGE,YAAGC,KAAH,CAASH,KAAT,CAAH,CAAqB,EAAlC,CAEA,KAAMI,CAAAA,OAAO,CAAGJ,KAAK,CAACK,CAAN,EAAWN,GAAG,CAACO,KAAJ,CAAU,qBAAV,EAAiC,CAAjC,CAA3B,CACAP,GAAG,CAAI,iCAAgCK,OAAQ,EAA/C,CAEA,MAAOJ,CAAAA,KAAK,CAACK,CAAb,CACAL,KAAK,CAACL,QAAN,CAAiBA,QAAQ,CAAG,CAAH,CAAO,CAAhC,CACAI,GAAG,EAAK,IAAGG,YAAGK,SAAH,CAAaP,KAAb,CAAoB,EAA/B,CAEA;AACA;AAEA,mBACE,qBAAC,qBAAD,EAAc,SAAS,CAAEH,KAAK,CAACW,SAA/B,CAA0C,KAAK,CAAC,MAAhD,wBACE,oBAAC,iBAAD,EAAU,KAAK,CAAEC,aAAjB,EADF,cAEE,8BACE,KAAK,CAAC,UADR,CAEE,eAAe,KAFjB,CAGE,SAAS,CAAEZ,KAAK,CAACa,KAHnB,CAIE,GAAG,CAAEX,GAJP,CAKE,KAAK,CAAED,KALT,EAFF,GAWH,CAED,KAAMa,CAAAA,kBAAkB,CAAG,yBACzB,cADyB,CAEzB,CACE,WADF,CAEE,OAFF,CAFyB,CAMzBC,SANyB,EAOzBlB,YAPyB,CAA3B,CASAA,YAAY,CAACmB,SAAb,CAAyB,CACvBlB,QAAQ,CAAEmB,mBAAGC,IADU,CAEvBnB,GAAG,CAAEkB,mBAAGE,MAAH,CAAUC,UAFQ,CAGvBpB,KAAK,CAAEc,kBAAkB,CAACO,SAAnB,CAA6BD,UAHb,CAIvBnB,KAAK,CAAEgB,mBAAGE,MAJa,CAAzB,CAOAtB,YAAY,CAACyB,YAAb,CAA4B,CAC1BxB,QAAQ,CAAE,KADgB,CAE1BG,KAAK,CAAE,EAFmB,CAA5B,C,aAKea,kB","sourcesContent":["import PT from 'prop-types';\nimport qs from 'qs';\nimport ScalableRect from 'components/ScalableRect';\nimport themed from '@dr.pogodin/react-themes';\nimport Throbber from 'components/Throbber';\n\nimport baseTheme from './base.scss';\nimport throbberTheme from './throbber.scss';\n\n/**\n * A component for embeding a YouTube video.\n * @param {object} [props] Component properties.\n * @param {boolean} [props.autoplay] If `true` the video will start to play\n * automatically once loaded.\n * @param {string} [props.src] URL of the video to play. Can be in any of\n * the following formats, and keeps any additional query parameters understood\n * by the YouTube IFrame player:\n * - `https://www.youtube.com/watch?v=NdF6Rmt6Ado`\n * - `https://youtu.be/NdF6Rmt6Ado`\n * - `https://www.youtube.com/embed/NdF6Rmt6Ado`\n * @param {YouTubeVideoTheme} [props.theme] _Ad hoc_ theme.\n * @param {string} [props.title] The `title` attribute to add to the player\n * IFrame.\n */\nfunction YouTubeVideo({\n autoplay,\n src,\n theme,\n title,\n}) {\n let [url, query] = src.split('?');\n query = query ? qs.parse(query) : {};\n\n const videoId = query.v || url.match(/\\/([a-zA-Z0-9-_]*)$/)[1];\n url = `https://www.youtube.com/embed/${videoId}`;\n\n delete query.v;\n query.autoplay = autoplay ? 1 : 0;\n url += `?${qs.stringify(query)}`;\n\n // TODO: https://developers.google.com/youtube/player_parameters\n // More query parameters can be exposed via the component props.\n\n return (\n <ScalableRect className={theme.container} ratio=\"16:9\">\n <Throbber theme={throbberTheme} />\n <iframe\n allow=\"autoplay\"\n allowFullScreen\n className={theme.video}\n src={url}\n title={title}\n />\n </ScalableRect>\n );\n}\n\nconst ThemedYouTubeVideo = themed(\n 'YouTubeVideo',\n [\n 'container',\n 'video',\n ],\n baseTheme,\n)(YouTubeVideo);\n\nYouTubeVideo.propTypes = {\n autoplay: PT.bool,\n src: PT.string.isRequired,\n theme: ThemedYouTubeVideo.themeType.isRequired,\n title: PT.string,\n};\n\nYouTubeVideo.defaultProps = {\n autoplay: false,\n title: '',\n};\n\nexport default ThemedYouTubeVideo;\n"],"file":"index.js"}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.JU=void 0;Object.defineProperty(exports,"ThemeProvider",{enumerable:true,get:function(){return _reactThemes.ThemeProvider}});Object.defineProperty(exports,"config",{enumerable:true,get:function(){return _config.default}});exports.isomorphy=void 0;exports.newBarrier=newBarrier;Object.defineProperty(exports,"themed",{enumerable:true,get:function(){return _reactThemes.default}});Object.defineProperty(exports,"time",{enumerable:true,get:function(){return _time.default}});exports.webpack=exports.url=void 0;exports.withRetries=withRetries;var _reactThemes=_interopRequireWildcard(require("@dr.pogodin/react-themes"));var _config=_interopRequireDefault(require("./config"));var isomorphy=_interopRequireWildcard(require("./isomorphy"));exports.isomorphy=isomorphy;var _time=_interopRequireDefault(require("./time"));var url=_interopRequireWildcard(require("./url"));exports.url=url;var webpack=_interopRequireWildcard(require("./webpack"));exports.webpack=webpack;function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}_reactThemes.default.COMPOSE=_reactThemes.COMPOSE;_reactThemes.default.PRIORITY=_reactThemes.PRIORITY;let JU=null;// eslint-disable-line import/no-mutable-exports
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.JU=void 0;Object.defineProperty(exports,"ThemeProvider",{enumerable:true,get:function(){return _reactThemes.ThemeProvider}});Object.defineProperty(exports,"config",{enumerable:true,get:function(){return _config.default}});exports.isomorphy=void 0;exports.newBarrier=newBarrier;Object.defineProperty(exports,"themed",{enumerable:true,get:function(){return _reactThemes.default}});Object.defineProperty(exports,"time",{enumerable:true,get:function(){return _time.default}});exports.webpack=void 0;exports.withRetries=withRetries;var _reactThemes=_interopRequireWildcard(require("@dr.pogodin/react-themes"));var _config=_interopRequireDefault(require("./config"));var isomorphy=_interopRequireWildcard(require("./isomorphy"));exports.isomorphy=isomorphy;var _time=_interopRequireDefault(require("./time"));var webpack=_interopRequireWildcard(require("./webpack"));exports.webpack=webpack;function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}_reactThemes.default.COMPOSE=_reactThemes.COMPOSE;_reactThemes.default.PRIORITY=_reactThemes.PRIORITY;let JU=null;// eslint-disable-line import/no-mutable-exports
2
2
  exports.JU=JU;if(isomorphy.IS_SERVER_SIDE&&(process.env.NODE_CONFIG_ENV||process.env.NODE_ENV)!=="production"){/* eslint-disable global-require */const path=webpack.requireWeak("path");exports.JU=JU=webpack.requireWeak(path.resolve(__dirname,"./jest"));/* eslint-enable global-require */}/**
3
3
  * @category Utilities
4
4
  * @func newBarrier
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/shared/utils/index.js"],"names":["themed","COMPOSE","PRIORITY","JU","isomorphy","IS_SERVER_SIDE","process","env","NODE_CONFIG_ENV","NODE_ENV","path","webpack","requireWeak","resolve","__dirname","newBarrier","promise","Promise","res","withRetries","action","maxRetries","interval","n","error","time","timer"],"mappings":"4rBAAA,8EAMA,wDACA,8D,4BACA,oDACA,kD,gBACA,0D,4+BAEAA,qBAAOC,OAAP,CAAiBA,oBAAjB,CACAD,qBAAOE,QAAP,CAAkBA,qBAAlB,CAEA,GAAIC,CAAAA,EAAE,CAAG,IAAT,CAAe;cACf,GAAIC,SAAS,CAACC,cAAV,EACC,CAACC,OAAO,CAACC,GAAR,CAAYC,eAAZ,EAA+BF,OAAO,CAACC,GAAR,CAAYE,QAA5C,IAA0D,YAD/D,CAEE,CACA,mCACA,KAAMC,CAAAA,IAAI,CAAGC,OAAO,CAACC,WAAR,CAAoB,MAApB,CAAb,CACA,WAAAT,EAAE,CAAGQ,OAAO,CAACC,WAAR,CAAoBF,IAAI,CAACG,OAAL,CAAaC,SAAb,CAAwB,QAAxB,CAApB,CAAL,CACA,kCACD,CAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,QAASC,CAAAA,UAAT,EAAsB,CACpB,GAAIF,CAAAA,OAAJ,CACA,KAAMG,CAAAA,OAAO,CAAG,GAAIC,CAAAA,OAAJ,CAAaC,GAAD,EAAS,CAAEL,OAAO,CAAGK,GAAM,CAAvC,CAAhB,CACAF,OAAO,CAACH,OAAR,CAAkBA,OAAlB,CACA,MAAOG,CAAAA,OACR,CAED;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACO,cAAeG,CAAAA,WAAf,CAA2BC,MAA3B,CAAmCC,UAAU,CAAG,CAAhD,CAAmDC,QAAQ,CAAG,IAA9D,CAAoE,CACzE,qCACA,IAAK,GAAIC,CAAAA,CAAC,CAAG,CAAb,EAAkB,EAAEA,CAApB,CAAuB,CACrB,GAAI,CACF,MAAO,MAAMH,CAAAA,MAAM,EACpB,CAAC,MAAOI,KAAP,CAAc,CACd,GAAID,CAAC,CAAGF,UAAR,CAAoB,KAAMI,eAAKC,KAAL,CAAWJ,QAAX,CAAN,CAApB,IACK,MAAME,CAAAA,KACZ,CACF,CACD,oCACD","sourcesContent":["import themed, {\n COMPOSE,\n PRIORITY,\n ThemeProvider,\n} from '@dr.pogodin/react-themes';\n\nimport config from './config';\nimport * as isomorphy from './isomorphy';\nimport time from './time';\nimport * as url from './url';\nimport * as webpack from './webpack';\n\nthemed.COMPOSE = COMPOSE;\nthemed.PRIORITY = PRIORITY;\n\nlet JU = null; // eslint-disable-line import/no-mutable-exports\nif (isomorphy.IS_SERVER_SIDE\n && (process.env.NODE_CONFIG_ENV || process.env.NODE_ENV) !== 'production'\n) {\n /* eslint-disable global-require */\n const path = webpack.requireWeak('path');\n JU = webpack.requireWeak(path.resolve(__dirname, './jest'));\n /* eslint-enable global-require */\n}\n\n/**\n * @category Utilities\n * @func newBarrier\n * @global\n * @desc\n * ```js\n * import { newBarrier } from '@dr.pogodin/react-utils';\n * ```\n * Creates a new async barrier: a Promise instance with its resolve method\n * attached as `.resolve` field.\n * @return {Promise}\n * @example\n * import { newBarrier } from '@dr.pogodin/react-utils';\n * (async () => {\n * const barrier = newBarrier();\n * setTimeout(() => barrier.resolve(), 5000);\n * await barrier;\n * console.log('This will be printed only after the timeout fires.');\n * })();\n */\nfunction newBarrier() {\n let resolve;\n const promise = new Promise((res) => { resolve = res; });\n promise.resolve = resolve;\n return promise;\n}\n\n/**\n * @category Utilities\n * @global\n * @func withRetries\n * @desc\n * ```js\n * import { withRetries } from '@dr.pogodin/react-utils';\n * ```\n * Attempts to perform given asynchronous `action` up to `maxRetries` times,\n * with the given `interval` between attempts. If any attempt is successful,\n * the result is returned immediately, with no further attempts done;\n * otherwise, if all attempts fail, the result Promise rejects after the last\n * attempt.\n * @param {function} action\n * @param {number} [maxRetries=5] Optional. Maximum number of retries. Defaults\n * to 5 attempts.\n * @param {number} [interval=1000] Optional. Interval between retries [ms].\n * Defaults to 1 second.\n * @return {Promise} Resolves to the result of successful operation, or\n * rejects with the error from the latst failed attempt.\n * @example\n * import { withRetries } from '@dr.pogodin/react-utils';\n *\n * let firstCall = true;\n *\n * function sampleAction() {\n * if (!firstCall) return 'success';\n * firstCall = false;\n * throw Error('The first call to this method fails');\n * }\n *\n * withRetries(sampleAction).then(console.log);\n * // It will print 'success' after one second, once the second attempt\n * // is performed.\n */\nexport async function withRetries(action, maxRetries = 5, interval = 1000) {\n /* eslint-disable no-await-in-loop */\n for (let n = 1; ; ++n) {\n try {\n return await action();\n } catch (error) {\n if (n < maxRetries) await time.timer(interval);\n else throw error;\n }\n }\n /* eslint-enable no-await-in-loop */\n}\n\nexport {\n config,\n isomorphy,\n JU,\n newBarrier,\n themed,\n ThemeProvider,\n time,\n url,\n webpack,\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/shared/utils/index.js"],"names":["themed","COMPOSE","PRIORITY","JU","isomorphy","IS_SERVER_SIDE","process","env","NODE_CONFIG_ENV","NODE_ENV","path","webpack","requireWeak","resolve","__dirname","newBarrier","promise","Promise","res","withRetries","action","maxRetries","interval","n","error","time","timer"],"mappings":"grBAAA,8EAMA,wDACA,8D,4BACA,oDACA,0D,4+BAEAA,qBAAOC,OAAP,CAAiBA,oBAAjB,CACAD,qBAAOE,QAAP,CAAkBA,qBAAlB,CAEA,GAAIC,CAAAA,EAAE,CAAG,IAAT,CAAe;cACf,GAAIC,SAAS,CAACC,cAAV,EACC,CAACC,OAAO,CAACC,GAAR,CAAYC,eAAZ,EAA+BF,OAAO,CAACC,GAAR,CAAYE,QAA5C,IAA0D,YAD/D,CAEE,CACA,mCACA,KAAMC,CAAAA,IAAI,CAAGC,OAAO,CAACC,WAAR,CAAoB,MAApB,CAAb,CACA,WAAAT,EAAE,CAAGQ,OAAO,CAACC,WAAR,CAAoBF,IAAI,CAACG,OAAL,CAAaC,SAAb,CAAwB,QAAxB,CAApB,CAAL,CACA,kCACD,CAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,QAASC,CAAAA,UAAT,EAAsB,CACpB,GAAIF,CAAAA,OAAJ,CACA,KAAMG,CAAAA,OAAO,CAAG,GAAIC,CAAAA,OAAJ,CAAaC,GAAD,EAAS,CAAEL,OAAO,CAAGK,GAAM,CAAvC,CAAhB,CACAF,OAAO,CAACH,OAAR,CAAkBA,OAAlB,CACA,MAAOG,CAAAA,OACR,CAED;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACO,cAAeG,CAAAA,WAAf,CAA2BC,MAA3B,CAAmCC,UAAU,CAAG,CAAhD,CAAmDC,QAAQ,CAAG,IAA9D,CAAoE,CACzE,qCACA,IAAK,GAAIC,CAAAA,CAAC,CAAG,CAAb,EAAkB,EAAEA,CAApB,CAAuB,CACrB,GAAI,CACF,MAAO,MAAMH,CAAAA,MAAM,EACpB,CAAC,MAAOI,KAAP,CAAc,CACd,GAAID,CAAC,CAAGF,UAAR,CAAoB,KAAMI,eAAKC,KAAL,CAAWJ,QAAX,CAAN,CAApB,IACK,MAAME,CAAAA,KACZ,CACF,CACD,oCACD","sourcesContent":["import themed, {\n COMPOSE,\n PRIORITY,\n ThemeProvider,\n} from '@dr.pogodin/react-themes';\n\nimport config from './config';\nimport * as isomorphy from './isomorphy';\nimport time from './time';\nimport * as webpack from './webpack';\n\nthemed.COMPOSE = COMPOSE;\nthemed.PRIORITY = PRIORITY;\n\nlet JU = null; // eslint-disable-line import/no-mutable-exports\nif (isomorphy.IS_SERVER_SIDE\n && (process.env.NODE_CONFIG_ENV || process.env.NODE_ENV) !== 'production'\n) {\n /* eslint-disable global-require */\n const path = webpack.requireWeak('path');\n JU = webpack.requireWeak(path.resolve(__dirname, './jest'));\n /* eslint-enable global-require */\n}\n\n/**\n * @category Utilities\n * @func newBarrier\n * @global\n * @desc\n * ```js\n * import { newBarrier } from '@dr.pogodin/react-utils';\n * ```\n * Creates a new async barrier: a Promise instance with its resolve method\n * attached as `.resolve` field.\n * @return {Promise}\n * @example\n * import { newBarrier } from '@dr.pogodin/react-utils';\n * (async () => {\n * const barrier = newBarrier();\n * setTimeout(() => barrier.resolve(), 5000);\n * await barrier;\n * console.log('This will be printed only after the timeout fires.');\n * })();\n */\nfunction newBarrier() {\n let resolve;\n const promise = new Promise((res) => { resolve = res; });\n promise.resolve = resolve;\n return promise;\n}\n\n/**\n * @category Utilities\n * @global\n * @func withRetries\n * @desc\n * ```js\n * import { withRetries } from '@dr.pogodin/react-utils';\n * ```\n * Attempts to perform given asynchronous `action` up to `maxRetries` times,\n * with the given `interval` between attempts. If any attempt is successful,\n * the result is returned immediately, with no further attempts done;\n * otherwise, if all attempts fail, the result Promise rejects after the last\n * attempt.\n * @param {function} action\n * @param {number} [maxRetries=5] Optional. Maximum number of retries. Defaults\n * to 5 attempts.\n * @param {number} [interval=1000] Optional. Interval between retries [ms].\n * Defaults to 1 second.\n * @return {Promise} Resolves to the result of successful operation, or\n * rejects with the error from the latst failed attempt.\n * @example\n * import { withRetries } from '@dr.pogodin/react-utils';\n *\n * let firstCall = true;\n *\n * function sampleAction() {\n * if (!firstCall) return 'success';\n * firstCall = false;\n * throw Error('The first call to this method fails');\n * }\n *\n * withRetries(sampleAction).then(console.log);\n * // It will print 'success' after one second, once the second attempt\n * // is performed.\n */\nexport async function withRetries(action, maxRetries = 5, interval = 1000) {\n /* eslint-disable no-await-in-loop */\n for (let n = 1; ; ++n) {\n try {\n return await action();\n } catch (error) {\n if (n < maxRetries) await time.timer(interval);\n else throw error;\n }\n }\n /* eslint-enable no-await-in-loop */\n}\n\nexport {\n config,\n isomorphy,\n JU,\n newBarrier,\n themed,\n ThemeProvider,\n time,\n webpack,\n};\n"],"file":"index.js"}
@@ -62,5 +62,5 @@
62
62
  * @example
63
63
  * import { time } from '@dr.pogodin/react-utils';
64
64
  * time.timer(5000).then(() => console.log('5 seconds have passed'))
65
- */_dayjs.default.timer=async function timer(timeout){return new Promise(resolve=>setTimeout(resolve,timeout))};var _default=_dayjs.default;exports.default=_default;
65
+ */_dayjs.default.timer=async function timer(timeout){return new Promise(resolve=>{setTimeout(resolve,timeout)})};var _default=_dayjs.default;exports.default=_default;
66
66
  //# sourceMappingURL=time.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/shared/utils/time.js"],"names":["dayjs","SEC_MS","MIN_MS","HOUR_MS","DAY_MS","YEAR_MS","now","Date","timer","timeout","Promise","resolve","setTimeout"],"mappings":"gLAaA,oDAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G,CAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAA,eAAMC,MAAN,CAAe,IAAf,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAD,eAAME,MAAN,CAAe,GAAKF,eAAMC,MAA1B,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAD,eAAMG,OAAN,CAAgB,GAAKH,eAAME,MAA3B,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAF,eAAMI,MAAN,CAAe,GAAKJ,eAAMG,OAA1B,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAH,eAAMK,OAAN,CAAgB,IAAML,eAAMI,MAA5B,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAJ,eAAMM,GAAN,CAAYC,IAAI,CAACD,GAAjB,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAN,eAAMQ,KAAN,CAAc,cAAeA,CAAAA,KAAf,CAAqBC,OAArB,CAA8B,CAC1C,MAAO,IAAIC,CAAAA,OAAJ,CAAaC,OAAD,EAAaC,UAAU,CAACD,OAAD,CAAUF,OAAV,CAAnC,CACR,CAFD,C,aAIeT,c","sourcesContent":["/**\n * @category Utilities\n * @module time\n * @desc\n * ```js\n * import { time } from '@dr.pogodin/react-utils';\n * ```\n * Date & time utilities. The `time` export is a convenient alias for\n * [dayjs](https://day.js.org/en/) library, _i.e._ you can use `time`\n * in all ways you would use `dayjs`. It is further extended with\n * the following additional members.\n */\n\nimport dayjs from 'dayjs';\n\n/**\n * @static\n * @const SEC_MS\n * @desc One second, expressed in milliseconds (equals 1000 ms).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.SEC_MS); // Prints: 1000\n */\ndayjs.SEC_MS = 1000;\n\n/**\n * @static\n * @const MIN_MS\n * @desc One minute, expressed in milliseconds (equals 60 &times; `SEC_MS`).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.MIN_MS); // Prints: 60000\n */\ndayjs.MIN_MS = 60 * dayjs.SEC_MS;\n\n/**\n * @static\n * @const HOUR_MS\n * @desc One hour, expressed in milliseconds (equals 60 &times; `MIN_MS`).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.HOUR_MS); // Prints: 3600000\n */\ndayjs.HOUR_MS = 60 * dayjs.MIN_MS;\n\n/**\n * @static\n * @const DAY_MS\n * @desc One day, expressed in milliseconds (equals 24 &times; `HOUR_MS`).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.DAY_MS); // Prints: 86400000\n */\ndayjs.DAY_MS = 24 * dayjs.HOUR_MS;\n\n/**\n * @static\n * @const YEAR_MS\n * @desc One year, expressed in milliseconds (equals 365 &times; `DAY_MS`,\n * thus a normal, non-leap year).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.YEAR_MS); // Prints: 31536000000\n */\ndayjs.YEAR_MS = 365 * dayjs.DAY_MS;\n\n/**\n * @static\n * @func now\n * @desc Returns Unix timestamp [ms] (thus, it is just an alias for `Date.now`).\n * @return {number}\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.now()); // Prints the current timestamp, e.g. 1618608761000.\n */\ndayjs.now = Date.now;\n\n/**\n * @static\n * @func timer\n * @desc Creates a Promise, which resolves after the given timeout.\n * @param {number} timeout Timeout [ms].\n * @return {Promise} Resolves after the timeout.\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * time.timer(5000).then(() => console.log('5 seconds have passed'))\n */\ndayjs.timer = async function timer(timeout) {\n return new Promise((resolve) => setTimeout(resolve, timeout));\n};\n\nexport default dayjs;\n"],"file":"time.js"}
1
+ {"version":3,"sources":["../../../../src/shared/utils/time.js"],"names":["dayjs","SEC_MS","MIN_MS","HOUR_MS","DAY_MS","YEAR_MS","now","Date","timer","timeout","Promise","resolve","setTimeout"],"mappings":"gLAaA,oDAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G,CAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAA,eAAMC,MAAN,CAAe,IAAf,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAD,eAAME,MAAN,CAAe,GAAKF,eAAMC,MAA1B,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAD,eAAMG,OAAN,CAAgB,GAAKH,eAAME,MAA3B,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAF,eAAMI,MAAN,CAAe,GAAKJ,eAAMG,OAA1B,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAH,eAAMK,OAAN,CAAgB,IAAML,eAAMI,MAA5B,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAJ,eAAMM,GAAN,CAAYC,IAAI,CAACD,GAAjB,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACAN,eAAMQ,KAAN,CAAc,cAAeA,CAAAA,KAAf,CAAqBC,OAArB,CAA8B,CAC1C,MAAO,IAAIC,CAAAA,OAAJ,CAAaC,OAAD,EAAa,CAC9BC,UAAU,CAACD,OAAD,CAAUF,OAAV,CACX,CAFM,CAGR,CAJD,C,aAMeT,c","sourcesContent":["/**\n * @category Utilities\n * @module time\n * @desc\n * ```js\n * import { time } from '@dr.pogodin/react-utils';\n * ```\n * Date & time utilities. The `time` export is a convenient alias for\n * [dayjs](https://day.js.org/en/) library, _i.e._ you can use `time`\n * in all ways you would use `dayjs`. It is further extended with\n * the following additional members.\n */\n\nimport dayjs from 'dayjs';\n\n/**\n * @static\n * @const SEC_MS\n * @desc One second, expressed in milliseconds (equals 1000 ms).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.SEC_MS); // Prints: 1000\n */\ndayjs.SEC_MS = 1000;\n\n/**\n * @static\n * @const MIN_MS\n * @desc One minute, expressed in milliseconds (equals 60 &times; `SEC_MS`).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.MIN_MS); // Prints: 60000\n */\ndayjs.MIN_MS = 60 * dayjs.SEC_MS;\n\n/**\n * @static\n * @const HOUR_MS\n * @desc One hour, expressed in milliseconds (equals 60 &times; `MIN_MS`).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.HOUR_MS); // Prints: 3600000\n */\ndayjs.HOUR_MS = 60 * dayjs.MIN_MS;\n\n/**\n * @static\n * @const DAY_MS\n * @desc One day, expressed in milliseconds (equals 24 &times; `HOUR_MS`).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.DAY_MS); // Prints: 86400000\n */\ndayjs.DAY_MS = 24 * dayjs.HOUR_MS;\n\n/**\n * @static\n * @const YEAR_MS\n * @desc One year, expressed in milliseconds (equals 365 &times; `DAY_MS`,\n * thus a normal, non-leap year).\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.YEAR_MS); // Prints: 31536000000\n */\ndayjs.YEAR_MS = 365 * dayjs.DAY_MS;\n\n/**\n * @static\n * @func now\n * @desc Returns Unix timestamp [ms] (thus, it is just an alias for `Date.now`).\n * @return {number}\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * console.log(time.now()); // Prints the current timestamp, e.g. 1618608761000.\n */\ndayjs.now = Date.now;\n\n/**\n * @static\n * @func timer\n * @desc Creates a Promise, which resolves after the given timeout.\n * @param {number} timeout Timeout [ms].\n * @return {Promise} Resolves after the timeout.\n * @example\n * import { time } from '@dr.pogodin/react-utils';\n * time.timer(5000).then(() => console.log('5 seconds have passed'))\n */\ndayjs.timer = async function timer(timeout) {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout);\n });\n};\n\nexport default dayjs;\n"],"file":"time.js"}
@@ -1,2 +1,2 @@
1
- a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{text-rendering:auto}*{box-sizing:border-box}._2InLXV[disabled]{cursor:not-allowed}._33qmle._2629gm,._2629gm,.JqF7SX._6uVxU-._2629gm{background-image:linear-gradient(0deg,#d3d3d3,#fff 50%,#fff);border:1px solid gray;border-radius:.3em;color:inherit;cursor:pointer;display:inline-block;font:inherit;margin:.1em;padding:.3em 1.2em;text-align:center;text-decoration:none}._33qmle._2629gm:visited,._2629gm:visited,.JqF7SX._6uVxU-._2629gm:visited{color:inherit}._33qmle._2629gm:hover,._2629gm:hover,.JqF7SX._6uVxU-._2629gm:hover{border-color:gray;cursor:pointer}._33qmle._2629gm:focus,._2629gm:focus,.JqF7SX._6uVxU-._2629gm:focus{border-color:blue;box-shadow:0 0 3px 1px #add8e6;outline:none}._33qmle._2629gm._2qX90D,._33qmle._2629gm:active,._2629gm._2qX90D,._2629gm:active,.JqF7SX._6uVxU-._2629gm._2qX90D,.JqF7SX._6uVxU-._2629gm:active{background-image:linear-gradient(180deg,#d3d3d3,#fff 50%,#fff);border-color:gray;box-shadow:inset 0 1px 3px 0 #d3d3d3}._24vuTm,._33qmle._24vuTm,.JqF7SX._6uVxU-._24vuTm{cursor:not-allowed;opacity:33%}._1OUp4C,._3elv1W._1OUp4C,._38el0G._285jVN._1OUp4C{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:1px solid gray;border-radius:.3em;cursor:pointer;font:inherit;height:1.5em;margin:0;outline:none;width:1.5em}._1OUp4C:checked:after,._3elv1W._1OUp4C:checked:after,._38el0G._285jVN._1OUp4C:checked:after{background:#000;border-radius:.3em;content:"";display:block;height:1em;margin:.2em;width:1em}._1OUp4C:focus,._3elv1W._1OUp4C:focus,._38el0G._285jVN._1OUp4C:focus{border-color:blue;box-shadow:0 0 3px 1px #add8e6}._3elv1W._32kN_q,._32kN_q,._38el0G._285jVN._32kN_q{align-items:center;display:inline-flex;margin:.1em}._3elv1W._26M9Hw,._26M9Hw,._38el0G._285jVN._26M9Hw{margin:0 .6em 0 1.5em}._1Q72zU._3rmWiD,._3NkITs._2_yK-d._3rmWiD,._3rmWiD{background-image:linear-gradient(0deg,#d3d3d3,#fff 50%,#fff);border:1px solid gray;border-radius:0 .3em .3em 0;padding:.3em .6em;pointer-events:none;position:absolute;right:0}._1Q72zU._2boEEf,._2boEEf,._3NkITs._2_yK-d._2boEEf{align-items:center;display:inline-flex;margin:.1em;position:relative}:active+._1Q72zU._3rmWiD,:active+._3NkITs._2_yK-d._3rmWiD,:active+._3rmWiD{background-image:linear-gradient(180deg,#d3d3d3,#fff 50%,#fff);border-bottom-right-radius:0}:focus+._1Q72zU._3rmWiD,:focus+._3NkITs._2_yK-d._3rmWiD,:focus+._3rmWiD{border-color:blue blue blue gray}._1Q72zU.ViWitu,._3NkITs._2_yK-d.ViWitu,.ViWitu{margin:0 .6em 0 1.5em}._1Q72zU._2ydMjo,._2ydMjo,._3NkITs._2_yK-d._2ydMjo{display:none}._1Q72zU.sJDuEV,._3NkITs._2_yK-d.sJDuEV,.sJDuEV{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:1px solid gray;border-radius:.3em;color:inherit;cursor:pointer;display:inline-block;font:inherit;outline:none;padding:.3em 3.3em calc(.3em + 1px) 1.2em}._1Q72zU.sJDuEV:active,._3NkITs._2_yK-d.sJDuEV:active,.sJDuEV:active{background:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}._1Q72zU.sJDuEV:focus,._3NkITs._2_yK-d.sJDuEV:focus,.sJDuEV:focus{border-color:blue;box-shadow:0 0 3px 1px #add8e6}._3d60LR._5vaj2v,._5vaj2v,.SUBtES._11u5o6._5vaj2v{align-items:center;display:inline-flex;margin:.1em}._3bFnNS,._3d60LR._3bFnNS,.SUBtES._11u5o6._3bFnNS{border:1px solid gray;border-radius:.3em;cursor:text;font:inherit;outline:none;padding:.3em .3em calc(.3em + 1px)}._3bFnNS:focus,._3d60LR._3bFnNS:focus,.SUBtES._11u5o6._3bFnNS:focus{border-color:blue;box-shadow:0 0 3px 1px #add8e6}._1W8GIz,._3d60LR._1W8GIz,.SUBtES._11u5o6._1W8GIz{margin:0 .6em 0 1.5em}._1IWLUF,._3ATReA._1-IZXw._1IWLUF,.ct8AYv._1IWLUF{align-items:stretch;display:flex;min-height:100vh;overflow:hidden;width:100%}._3ATReA._1-IZXw.rzMRqr,.ct8AYv.rzMRqr,.rzMRqr{overflow:hidden;padding:1.2em;width:1024px}._1LD0Kd,._3ATReA._1-IZXw._1LD0Kd,.ct8AYv._1LD0Kd{overflow:hidden;width:calc(50% - 512px)}._1ItZNx._3eQXFG,._1uOejq._2XWVy4._3eQXFG,._3eQXFG{background:#eee;height:100%;left:0;opacity:80%;position:fixed;top:0;width:100%;z-index:998}._1ItZNx._3eQXFG:focus,._1uOejq._2XWVy4._3eQXFG:focus,._3eQXFG:focus{outline:none}._1ItZNx.S6eRC0,._1uOejq._2XWVy4.S6eRC0,.S6eRC0{background:#fff;border-radius:4;box-shadow:0 0 14px 1px rgba(38,38,40,.15);left:50%;max-height:95vh;max-width:1024px;overflow:hidden;padding:.6em 1.2em;position:fixed;top:50%;transform:translate(-50%,-50%);width:480px;z-index:999}@media(max-width:1280px){._1ItZNx.S6eRC0,._1uOejq._2XWVy4.S6eRC0,.S6eRC0{max-width:95vw}}body.scrolling-disabled-by-modal{overflow:hidden}._3XzGXs{position:relative;width:100%}._1vMblT{height:100%;position:absolute;width:100%}._3F9X6R.YlvKSG,._27RWOc._1mH4lL.YlvKSG,.YlvKSG{display:inline-block}._3F9X6R.QhSt1A,._27RWOc._1mH4lL.QhSt1A,.QhSt1A{-webkit-animation:_2Zvm3x .4s ease-in infinite alternate;animation:_2Zvm3x .4s ease-in infinite alternate;background:#000;border-radius:.3em;display:inline-block;height:.6em;margin:0 .1em;position:relative;width:.6em}@-webkit-keyframes _2Zvm3x{0%{top:-.3em}to{top:.3em}}@keyframes _2Zvm3x{0%{top:-.3em}to{top:.3em}}._3F9X6R.QhSt1A:first-child,._27RWOc._1mH4lL.QhSt1A:first-child,.QhSt1A:first-child{-webkit-animation-delay:-.2s;animation-delay:-.2s}._3F9X6R.QhSt1A:last-child,._27RWOc._1mH4lL.QhSt1A:last-child,.QhSt1A:last-child{-webkit-animation-delay:.2s;animation-delay:.2s}@-webkit-keyframes _1_CLjK{0%{opacity:0}to{opacity:100%}}@keyframes _1_CLjK{0%{opacity:0}to{opacity:100%}}._1My0bf,._1sPLIy._1My0bf,._37hn-I._2CTWO-._1My0bf{border:.6em solid gray;height:0;pointer-events:none;position:absolute;width:0}._1RivOp,._1sPLIy._1RivOp,._37hn-I._2CTWO-._1RivOp{-webkit-animation:_1_CLjK .6s;animation:_1_CLjK .6s;background:gray;border-radius:.3em;color:#fff;display:inline-block;left:0;padding:0 .3em;position:absolute;top:0}._1sPLIy._23r31M,._23r31M,._37hn-I._2CTWO-._23r31M{display:inline-block}* ._1-I6ek,._2wWh54 ._1-I6ek,.ZI1L-P.zCNKnQ ._1-I6ek{background:#f5f5f5}* ._2hd-z-,._2wWh54 ._2hd-z-,.ZI1L-P.zCNKnQ ._2hd-z-{height:100%;position:relative;width:100%}* ._2O23yT,._2H1dS-._3U7SmJ ._2O23yT,._3R7Jzw ._2O23yT{position:absolute;text-align:center;top:40%;transform:translateY(50%);width:100%}
1
+ a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{text-rendering:auto}*{box-sizing:border-box}.zH52sA[disabled]{cursor:not-allowed}._3jm1-Q._0plpDL.E1FNQT,.E1FNQT,.KM0v4f.E1FNQT{background-image:linear-gradient(0deg,#d3d3d3,#fff 50%,#fff);border:1px solid gray;border-radius:.3em;color:inherit;cursor:pointer;display:inline-block;font:inherit;margin:.1em;padding:.3em 1.2em;text-align:center;text-decoration:none}._3jm1-Q._0plpDL.E1FNQT:visited,.E1FNQT:visited,.KM0v4f.E1FNQT:visited{color:inherit}._3jm1-Q._0plpDL.E1FNQT:hover,.E1FNQT:hover,.KM0v4f.E1FNQT:hover{border-color:gray;cursor:pointer}._3jm1-Q._0plpDL.E1FNQT:focus,.E1FNQT:focus,.KM0v4f.E1FNQT:focus{border-color:blue;box-shadow:0 0 3px 1px #add8e6;outline:none}._3jm1-Q._0plpDL.E1FNQT.MAe9O6,._3jm1-Q._0plpDL.E1FNQT:active,.E1FNQT.MAe9O6,.E1FNQT:active,.KM0v4f.E1FNQT.MAe9O6,.KM0v4f.E1FNQT:active{background-image:linear-gradient(180deg,#d3d3d3,#fff 50%,#fff);border-color:gray;box-shadow:inset 0 1px 3px 0 #d3d3d3}._3jm1-Q._0plpDL.Br9IWV,.Br9IWV,.KM0v4f.Br9IWV{cursor:not-allowed;opacity:.33}.A-f8qJ,.dNQcC6.A-f8qJ,.earXxa.qAPfQ6.A-f8qJ{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:1px solid gray;border-radius:.3em;cursor:pointer;font:inherit;height:1.5em;margin:0;outline:none;width:1.5em}.A-f8qJ:checked:after,.dNQcC6.A-f8qJ:checked:after,.earXxa.qAPfQ6.A-f8qJ:checked:after{background:#000;border-radius:.3em;content:"";display:block;height:1em;margin:.2em;width:1em}.A-f8qJ:focus,.dNQcC6.A-f8qJ:focus,.earXxa.qAPfQ6.A-f8qJ:focus{border-color:blue;box-shadow:0 0 3px 1px #add8e6}.dNQcC6.Kr0g3M,.earXxa.qAPfQ6.Kr0g3M,.Kr0g3M{align-items:center;display:inline-flex;margin:.1em}._3dML-O,.dNQcC6._3dML-O,.earXxa.qAPfQ6._3dML-O{margin:0 .6em 0 1.5em}.-zPK7Y,.D4XHG2.N3nd34.-zPK7Y,.haRIry.-zPK7Y{background-image:linear-gradient(0deg,#d3d3d3,#fff 50%,#fff);border:1px solid gray;border-radius:0 .3em .3em 0;padding:.3em .6em;pointer-events:none;position:absolute;right:0}._9CQpeA,.D4XHG2.N3nd34._9CQpeA,.haRIry._9CQpeA{align-items:center;display:inline-flex;margin:.1em;position:relative}:active+.-zPK7Y,:active+.D4XHG2.N3nd34.-zPK7Y,:active+.haRIry.-zPK7Y{background-image:linear-gradient(180deg,#d3d3d3,#fff 50%,#fff);border-bottom-right-radius:0}:focus+.-zPK7Y,:focus+.D4XHG2.N3nd34.-zPK7Y,:focus+.haRIry.-zPK7Y{border-color:blue blue blue gray}.D4XHG2.N3nd34.Gv0kyu,.Gv0kyu,.haRIry.Gv0kyu{margin:0 .6em 0 1.5em}.D4XHG2.N3nd34.RdW3yR,.haRIry.RdW3yR,.RdW3yR{display:none}.D4XHG2.N3nd34.JXK1uw,.haRIry.JXK1uw,.JXK1uw{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:1px solid gray;border-radius:.3em;color:inherit;cursor:pointer;display:inline-block;font:inherit;outline:none;padding:.3em 3.3em calc(.3em + 1px) 1.2em}.D4XHG2.N3nd34.JXK1uw:active,.haRIry.JXK1uw:active,.JXK1uw:active{background:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.D4XHG2.N3nd34.JXK1uw:focus,.haRIry.JXK1uw:focus,.JXK1uw:focus{border-color:blue;box-shadow:0 0 3px 1px #add8e6}._8s7GCr.TVlBYc.Cxx397,.Cxx397,.X5WszA.Cxx397{align-items:center;display:inline-flex;margin:.1em}._8s7GCr.TVlBYc.M07d4s,.M07d4s,.X5WszA.M07d4s{border:1px solid gray;border-radius:.3em;cursor:text;font:inherit;outline:none;padding:.3em .3em calc(.3em + 1px)}._8s7GCr.TVlBYc.M07d4s:focus,.M07d4s:focus,.X5WszA.M07d4s:focus{border-color:blue;box-shadow:0 0 3px 1px #add8e6}._8s7GCr.TVlBYc.gfbdq-,.gfbdq-,.X5WszA.gfbdq-{margin:0 .6em 0 1.5em}.m3-mdC.J15Z4H.T3cuHB,.m4mL-M.T3cuHB,.T3cuHB{align-items:stretch;display:flex;min-height:100vh;overflow:hidden;width:100%}.m3-mdC.J15Z4H.pPlQO2,.m4mL-M.pPlQO2,.pPlQO2{overflow:hidden;padding:1.2em;width:1024px}.lqNh4h,.m3-mdC.J15Z4H.lqNh4h,.m4mL-M.lqNh4h{overflow:hidden;width:calc(50% - 512px)}.Ah-Nsc.Wki41G.ye2BZo,.Szmbbz.ye2BZo,.ye2BZo{background:#eee;height:100%;left:0;opacity:.8;position:fixed;top:0;width:100%;z-index:998}.Ah-Nsc.Wki41G.ye2BZo:focus,.Szmbbz.ye2BZo:focus,.ye2BZo:focus{outline:none}.Ah-Nsc.Wki41G.gyZ4rc,.gyZ4rc,.Szmbbz.gyZ4rc{background:#fff;border-radius:4;box-shadow:0 0 14px 1px rgba(38,38,40,.15);left:50%;max-height:95vh;max-width:1024px;overflow:hidden;padding:.6em 1.2em;position:fixed;top:50%;transform:translate(-50%,-50%);width:480px;z-index:999}@media(max-width:1280px){.Ah-Nsc.Wki41G.gyZ4rc,.gyZ4rc,.Szmbbz.gyZ4rc{max-width:95vw}}body.scrolling-disabled-by-modal{overflow:hidden}.EznFz3{position:relative;width:100%}._0vb7tq{height:100%;position:absolute;width:100%}._7zdld4,.uIObt7._7zdld4,.XIxe9o.YOyORH._7zdld4{display:inline-block}.dBrB4g,.uIObt7.dBrB4g,.XIxe9o.YOyORH.dBrB4g{-webkit-animation:TJe-6j .4s ease-in infinite alternate;animation:TJe-6j .4s ease-in infinite alternate;background:#000;border-radius:.3em;display:inline-block;height:.6em;margin:0 .1em;position:relative;width:.6em}@-webkit-keyframes TJe-6j{0%{top:-.3em}to{top:.3em}}@keyframes TJe-6j{0%{top:-.3em}to{top:.3em}}.dBrB4g:first-child,.uIObt7.dBrB4g:first-child,.XIxe9o.YOyORH.dBrB4g:first-child{-webkit-animation-delay:-.2s;animation-delay:-.2s}.dBrB4g:last-child,.uIObt7.dBrB4g:last-child,.XIxe9o.YOyORH.dBrB4g:last-child{-webkit-animation-delay:.2s;animation-delay:.2s}@-webkit-keyframes L4ubm-{0%{opacity:0}to{opacity:1}}@keyframes L4ubm-{0%{opacity:0}to{opacity:1}}._4xT7zE.zd-vnH.M9gywF,.GdZucr.M9gywF,.M9gywF{border:.6em solid gray;height:0;pointer-events:none;position:absolute;width:0}._4xT7zE.zd-vnH.f9gY8K,.f9gY8K,.GdZucr.f9gY8K{-webkit-animation:L4ubm- .6s;animation:L4ubm- .6s;background:gray;border-radius:.3em;color:#fff;display:inline-block;left:0;padding:0 .3em;position:absolute;top:0}._4qDBRM,._4xT7zE.zd-vnH._4qDBRM,.GdZucr._4qDBRM{display:inline-block}* .sXHM81,.r3ABzd.YKcPnR .sXHM81,.veKyYi .sXHM81{background:#f5f5f5}* .SlV2zw,.r3ABzd.YKcPnR .SlV2zw,.veKyYi .SlV2zw{height:100%;position:relative;width:100%}* .jTxmOX,._5a9XX1._7sH52O .jTxmOX,.dzIcLh .jTxmOX{position:absolute;text-align:center;top:40%;transform:translateY(50%);width:100%}
2
2
  /*# sourceMappingURL=style.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"style.css","mappings":"AAUA,2ZASE,SACA,aACA,eAJA,SACA,UAIA,wBAIF,8EAEE,cAGF,KACE,cAGF,MACE,gBAGF,aACE,YAGF,oDACE,WACA,aAGF,MACE,yBACA,iBC9CF,KACE,oBAGF,EACE,sBCTF,mBACE,mBCMA,kDACE,6DACA,sBACA,mBACA,cACA,eACA,qBACA,aACA,YACA,mBACA,kBACA,qBAEA,0EACE,cAGF,oEACE,kBACA,eAGF,oEAEE,kBADA,+BAEA,aAGF,iJAEE,+DAEA,kBADA,oCACA,CAKJ,kDACE,mBACA,YC3CF,mDACE,6DACA,gBACA,sBACA,mBACA,eACA,aACA,aAEA,SADA,aAEA,YAGE,6FACE,gBACA,mBACA,WACA,cACA,WACA,YACA,UAIJ,qEACE,kBACA,+BAIJ,mDACE,mBACA,oBACA,YAGF,mDACE,sBCnCF,mDACE,6DACA,sBACA,4BACA,kBACA,oBACA,kBACA,QAGF,mDACE,mBACA,oBACA,YACA,kBAGF,2EACE,+DACA,6BAGF,wEAEE,iCAGF,gDACE,sBAIF,gEAEA,gDACE,6DACA,gBACA,sBACA,mBACA,cACA,eACA,qBACA,aACA,aACA,0CAEA,qEACE,gBACA,4BACA,6BAGF,kEACE,kBACA,+BCxDJ,kDACE,mBACA,oBACA,YAGF,kDACE,sBACA,mBACA,YACA,aACA,aACA,mCAEA,oEACE,kBACA,+BAIJ,kDACE,sBCZF,kDACE,oBACA,aACA,iBACA,gBACA,WAGF,+CACE,gBACA,cACA,YCPQ,CDUV,kDACE,gBACA,wBEvBF,mDACE,gBACA,YACA,OACA,YACA,eACA,MACA,WACA,YAEA,kFAGF,gDACE,gBAEA,gBADA,2CASA,SAPA,gBACA,gBDPQ,CCQR,gBACA,mBAEA,eACA,QAEA,+BAJA,YAKA,YDeF,yBC5BA,gDAgBI,gBCjCJ,iCACE,gBCFJ,SACE,kBACA,WAGF,SACE,YACA,kBACA,WCLA,gDACE,qBAGF,gDAME,0GACA,gBACA,mBACA,qBACA,YACA,cACA,kBACA,WAZA,2BACE,aACA,aAFF,mBACE,aACA,aAYF,sIACA,iICvBJ,2BACE,aACA,iBAFF,mBACE,aACA,iBAMA,mDACE,uBAIA,QAAO,CAHP,oBACA,kBACA,OACA,CAOF,mDASE,oDARA,gBACA,mBACA,WACA,qBAIA,OAHA,eACA,kBACA,KAEA,CAGF,mDACE,qBC9BF,qDACE,mBAGF,qDACE,YACA,kBACA,WCPF,uDACE,kBACA,kBACA,QACA,0BACA","sources":["webpack://@dr.pogodin/react-utils/./src/styles/_global/reset.css","webpack://@dr.pogodin/react-utils/./src/styles/global.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/GenericLink/style.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Button/style.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Checkbox/theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Dropdown/theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Input/theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/PageLayout/base-theme.scss","webpack://@dr.pogodin/react-utils/./src/styles/_mixins/media.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Modal/base-theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Modal/styles.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/ScalableRect/style.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Throbber/theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/WithTooltip/default-theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/YouTubeVideo/base.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/YouTubeVideo/throbber.scss"],"sourcesContent":["/* Eric Meyer's \"Reset CSS\" 2.0 */\n\n/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\n/* Having all selectors at individual lines is unreadable in the case of this\n * style reset sheet. */\n/* stylelint-disable selector-list-comma-newline-after */\na, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote,\nbody, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt,\nem, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6,\nheader, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu,\nnav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span,\nstrike, strong,sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr,\ntt, u, ul, var, video {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav,\nsection {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote::before, blockquote::after, q::before, q::after {\n content: \"\";\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n","/* Global styles. */\n\n@import \"_global/reset\";\n\nbody {\n text-rendering: auto;\n}\n\n* {\n box-sizing: border-box;\n}\n",".link[disabled] {\n cursor: not-allowed;\n}\n","/**\n * The default button theme.\n */\n\n*,\n.context,\n.ad.hoc {\n &.button {\n background-image: linear-gradient(to top, lightgray, white 50%, white);\n border: solid 1px gray;\n border-radius: 0.3em;\n color: inherit;\n cursor: pointer;\n display: inline-block;\n font: inherit;\n margin: 0.1em;\n padding: 0.3em 1.2em;\n text-align: center;\n text-decoration: none;\n\n &:visited {\n color: inherit;\n }\n\n &:hover {\n border-color: gray;\n cursor: pointer;\n }\n\n &:focus {\n box-shadow: 0 0 3px 1px lightblue;\n border-color: blue;\n outline: none;\n }\n\n &.active,\n &:active {\n background-image: linear-gradient(to bottom, lightgray, white 50%, white);\n box-shadow: inset 0 1px 3px 0 lightgray;\n border-color: gray;\n }\n }\n\n /* Additional styling of disabled buttons. */\n &.disabled {\n cursor: not-allowed;\n opacity: 33%;\n }\n}\n","*,\n.context,\n.ad.hoc {\n &.checkbox {\n appearance: none;\n background: white;\n border: 1px solid gray;\n border-radius: 0.3em;\n cursor: pointer;\n font: inherit;\n height: 1.5em;\n outline: none;\n margin: 0;\n width: 1.5em;\n\n &:checked {\n &::after {\n background: black;\n border-radius: 0.3em;\n content: \"\";\n display: block;\n height: 1em;\n margin: 0.2em;\n width: 1em;\n }\n }\n\n &:focus {\n border-color: blue;\n box-shadow: 0 0 3px 1px lightblue;\n }\n }\n\n &.container {\n align-items: center;\n display: inline-flex;\n margin: 0.1em;\n }\n\n &.label {\n margin: 0 0.6em 0 1.5em;\n }\n}\n","@import \"styles/mixins\";\n\n*,\n.context,\n.ad.hoc {\n &.arrow {\n background-image: linear-gradient(to top, lightgray, white 50%, white);\n border: 1px solid gray;\n border-radius: 0 0.3em 0.3em 0;\n padding: 0.3em 0.6em;\n pointer-events: none;\n position: absolute;\n right: 0;\n }\n\n &.container {\n align-items: center;\n display: inline-flex;\n margin: 0.1em;\n position: relative;\n }\n\n :active + &.arrow {\n background-image: linear-gradient(to bottom, lightgray, white 50%, white);\n border-bottom-right-radius: 0;\n }\n\n :focus + &.arrow {\n border-color: blue;\n border-left-color: gray;\n }\n\n &.label {\n margin: 0 0.6em 0 1.5em;\n }\n\n &.option { /* Empty style */ }\n &.hiddenOption { display: none; }\n\n &.select {\n appearance: none;\n background: white;\n border: 1px solid gray;\n border-radius: 0.3em;\n color: inherit;\n cursor: pointer;\n display: inline-block;\n font: inherit;\n outline: none;\n padding: 0.3em 3.3em calc(0.3em + 1px) 1.2em;\n\n &:active {\n background: white;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:focus {\n border-color: blue;\n box-shadow: 0 0 3px 1px lightblue;\n }\n }\n}\n","*,\n.context,\n.ad.hoc {\n &.container {\n align-items: center;\n display: inline-flex;\n margin: 0.1em;\n }\n\n &.input {\n border: 1px solid gray;\n border-radius: 0.3em;\n cursor: text;\n font: inherit;\n outline: none;\n padding: 0.3em 0.3em calc(0.3em + 1px);\n\n &:focus {\n border-color: blue;\n box-shadow: 0 0 3px 1px lightblue;\n }\n }\n\n &.label {\n margin: 0 0.6em 0 1.5em;\n }\n}\n","/**\n * Base theme: symmetric 3-columns layout, with the center column occupying all\n * screen up to mid screen size. For larger screen sizes the main column is\n * limited by the mid screen size, and the free space is filled with side\n * columns on left and right.\n */\n\n@import \"styles/mixins\";\n\n*,\n.context,\n.ad.hoc {\n &.container {\n align-items: stretch;\n display: flex;\n min-height: 100vh;\n overflow: hidden;\n width: 100%;\n }\n\n &.mainPanel {\n overflow: hidden;\n padding: 1.2em;\n width: $screen-md;\n }\n\n &.sidePanel {\n overflow: hidden;\n width: calc((100% - #{$screen-md}) / 2);\n }\n}\n","/**\n * Mixins for different layout sizes: xs, sm, md, lg.\n * Breaking points are defined in _variables.scss\n * The range mixins A-to-B all means \"for the sizes from A to B, both\n * inclusive\", in particular it means that mixin A-to-lg is equivalent to\n * all sizes from A (inclusive) and larger.\n *\n * NOTE: For convenience, these mixins are sorted not alphabetically, but,\n * first, by increase of the first size; second, by increase of the second size.\n */\n\n/* Break points. */\n\n$screen-xs: 320px !default;\n$screen-sm: 495px !default;\n$screen-mm: 768px !default;\n$screen-md: 1024px !default;\n$screen-lg: 1280px !default;\n\n/* XS */\n\n@mixin xs {\n @media (max-width: #{$screen-xs}) {\n @content;\n }\n}\n\n@mixin xs-to-sm {\n @media (max-width: #{$screen-sm}) {\n @content;\n }\n}\n\n@mixin xs-to-mm {\n @media (max-width: #{$screen-mm}) {\n @content;\n }\n}\n\n@mixin xs-to-md {\n @media (max-width: #{$screen-md}) {\n @content;\n }\n}\n\n@mixin xs-to-lg {\n @media (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n/* SM */\n\n@mixin sm {\n @media (min-width: #{$screen-xs + 1px}) and (max-width: #{$screen-sm}) {\n @content;\n }\n}\n\n@mixin sm-to-mm {\n @media (min-width: #{$screen-xs + 1px}) and (max-width: #{$screen-mm}) {\n @content;\n }\n}\n\n@mixin sm-to-md {\n @media (min-width: #{$screen-xs + 1px}) and (max-width: #{$screen-md}) {\n @content;\n }\n}\n\n@mixin sm-to-lg {\n @media (min-width: #{$screen-xs + 1px}) and (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n@mixin sm-to-xl {\n @media (min-width: #{$screen-xs + 1px}) {\n @content;\n }\n}\n\n/* MM */\n\n@mixin mm {\n @media (min-width: #{$screen-sm + 1px}) and (max-width: #{$screen-mm}) {\n @content;\n }\n}\n\n@mixin mm-to-md {\n @media (min-width: #{$screen-sm + 1px}) and (max-width: #{$screen-md}) {\n @content;\n }\n}\n\n@mixin mm-to-lg {\n @media (min-width: #{$screen-sm + 1px}) and (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n@mixin mm-to-xl {\n @media (min-width: #{$screen-sm + 1px}) {\n @content;\n }\n}\n\n/* MD */\n\n@mixin md {\n @media (min-width: #{$screen-mm + 1px}) and (max-width: #{$screen-md}) {\n @content;\n }\n}\n\n@mixin md-to-lg {\n @media (min-width: #{$screen-mm + 1px}) and (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n@mixin md-to-xl {\n @media (min-width: #{$screen-mm + 1px}) {\n @content;\n }\n}\n\n/* LG */\n\n@mixin lg {\n @media (min-width: #{$screen-md + 1px}) and (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n@mixin lg-to-xl {\n @media (min-width: #{$screen-md + 1px}) {\n @content;\n }\n}\n\n/* XL */\n\n@mixin xl {\n @media (min-width: #{$screen-lg + 1px}) {\n @content;\n }\n}\n","@import \"styles/mixins\";\n\n*,\n.context,\n.ad.hoc {\n &.overlay {\n background: #eee;\n height: 100%;\n left: 0;\n opacity: 80%;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 998;\n\n &:focus { outline: none; }\n }\n\n &.container {\n background: #fff;\n box-shadow: 0 0 14px 1px rgba(38 38 40 / 15%);\n border-radius: 4;\n max-height: 95vh;\n max-width: $screen-md;\n overflow: hidden;\n padding: 0.6em 1.2em;\n width: 480px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 999;\n\n @include xs-to-lg {\n max-width: 95vw;\n }\n }\n}\n",":global {\n body.scrolling-disabled-by-modal {\n overflow: hidden;\n }\n}\n",".container {\n position: relative;\n width: 100%;\n}\n\n.wrapper {\n height: 100%;\n position: absolute;\n width: 100%;\n}\n","*,\n.context,\n.ad.hoc {\n &.container {\n display: inline-block;\n }\n\n &.circle {\n @keyframes bouncing {\n from { top: -0.3em; }\n to { top: 0.3em; }\n }\n\n animation: bouncing 0.4s ease-in infinite alternate;\n background: black;\n border-radius: 0.3em;\n display: inline-block;\n height: 0.6em;\n margin: 0 0.1em;\n position: relative;\n width: 0.6em;\n\n &:first-child { animation-delay: -0.2s; }\n &:last-child { animation-delay: 0.2s; }\n }\n}\n","@keyframes appearance {\n from { opacity: 0%; }\n to { opacity: 100%; }\n}\n\n*,\n.ad.hoc,\n.context {\n &.arrow {\n border: 0.6em solid grey;\n pointer-events: none;\n position: absolute;\n width: 0;\n height: 0;\n }\n\n /*\n &.content { }\n */\n\n &.container {\n background: grey;\n border-radius: 0.3em;\n color: white;\n display: inline-block;\n padding: 0 0.3em;\n position: absolute;\n top: 0;\n left: 0;\n animation: appearance 0.6s;\n }\n\n &.wrapper {\n display: inline-block;\n }\n}\n","*,\n.context,\n.ad.hoc {\n .container {\n background: whitesmoke;\n }\n\n .video {\n height: 100%;\n position: relative;\n width: 100%;\n }\n}\n","*,\n.context,\n.ad.hoc {\n .container {\n position: absolute;\n text-align: center;\n top: 40%;\n transform: translateY(50%);\n width: 100%;\n }\n}\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"style.css","mappings":"AAUA,2ZASE,SACA,aACA,eAJA,SACA,UAIA,wBAIF,8EAEE,cAGF,KACE,cAGF,MACE,gBAGF,aACE,YAGF,oDACE,WACA,aAGF,MACE,yBACA,iBC9CF,KACE,oBAGF,EACE,sBCTF,kBACE,mBCMA,+CACE,6DACA,sBACA,mBACA,cACA,eACA,qBACA,aACA,YACA,mBACA,kBACA,qBAEA,uEACE,cAGF,iEACE,kBACA,eAGF,iEAEE,kBADA,+BAEA,aAGF,wIAEE,+DAEA,kBADA,oCACA,CAKJ,+CACE,mBACA,YC3CF,6CACE,6DACA,gBACA,sBACA,mBACA,eACA,aACA,aAEA,SADA,aAEA,YAGE,uFACE,gBACA,mBACA,WACA,cACA,WACA,YACA,UAIJ,+DACE,kBACA,+BAIJ,6CACE,mBACA,oBACA,YAGF,gDACE,sBCnCF,6CACE,6DACA,sBACA,4BACA,kBACA,oBACA,kBACA,QAGF,gDACE,mBACA,oBACA,YACA,kBAGF,qEACE,+DACA,6BAGF,kEAEE,iCAGF,6CACE,sBAIF,0DAEA,6CACE,6DACA,gBACA,sBACA,mBACA,cACA,eACA,qBACA,aACA,aACA,0CAEA,kEACE,gBACA,4BACA,6BAGF,+DACE,kBACA,+BCxDJ,8CACE,mBACA,oBACA,YAGF,8CACE,sBACA,mBACA,YACA,aACA,aACA,mCAEA,gEACE,kBACA,+BAIJ,8CACE,sBCZF,6CACE,oBACA,aACA,iBACA,gBACA,WAGF,6CACE,gBACA,cACA,YCPQ,CDUV,6CACE,gBACA,wBEvBF,6CACE,gBACA,YACA,OACA,WACA,eACA,MACA,WACA,YAEA,4EAGF,6CACE,gBAEA,gBADA,2CASA,SAPA,gBACA,gBDPQ,CCQR,gBACA,mBAEA,eACA,QAEA,+BAJA,YAKA,YDeF,yBC5BA,6CAgBI,gBCjCJ,iCACE,gBCFJ,QACE,kBACA,WAGF,SACE,YACA,kBACA,WCLA,gDACE,qBAGF,6CAME,wGACA,gBACA,mBACA,qBACA,YACA,cACA,kBACA,WAZA,0BACE,aACA,aAFF,kBACE,aACA,aAYF,mIACA,8HCvBJ,0BACE,aACA,cAFF,kBACE,aACA,cAMA,8CACE,uBAIA,QAAO,CAHP,oBACA,kBACA,OACA,CAOF,8CASE,kDARA,gBACA,mBACA,WACA,qBAIA,OAHA,eACA,kBACA,KAEA,CAGF,iDACE,qBC9BF,iDACE,mBAGF,iDACE,YACA,kBACA,WCPF,mDACE,kBACA,kBACA,QACA,0BACA","sources":["webpack://@dr.pogodin/react-utils/./src/styles/_global/reset.css","webpack://@dr.pogodin/react-utils/./src/styles/global.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/GenericLink/style.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Button/style.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Checkbox/theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Dropdown/theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Input/theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/PageLayout/base-theme.scss","webpack://@dr.pogodin/react-utils/./src/styles/_mixins/media.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Modal/base-theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Modal/styles.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/ScalableRect/style.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/Throbber/theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/WithTooltip/default-theme.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/YouTubeVideo/base.scss","webpack://@dr.pogodin/react-utils/./src/shared/components/YouTubeVideo/throbber.scss"],"sourcesContent":["/* Eric Meyer's \"Reset CSS\" 2.0 */\n\n/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\n/* Having all selectors at individual lines is unreadable in the case of this\n * style reset sheet. */\n/* stylelint-disable selector-list-comma-newline-after */\na, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote,\nbody, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt,\nem, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6,\nheader, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu,\nnav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span,\nstrike, strong,sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr,\ntt, u, ul, var, video {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav,\nsection {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote::before, blockquote::after, q::before, q::after {\n content: \"\";\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n","/* Global styles. */\n\n@import \"_global/reset\";\n\nbody {\n text-rendering: auto;\n}\n\n* {\n box-sizing: border-box;\n}\n",".link[disabled] {\n cursor: not-allowed;\n}\n","/**\n * The default button theme.\n */\n\n*,\n.context,\n.ad.hoc {\n &.button {\n background-image: linear-gradient(to top, lightgray, white 50%, white);\n border: solid 1px gray;\n border-radius: 0.3em;\n color: inherit;\n cursor: pointer;\n display: inline-block;\n font: inherit;\n margin: 0.1em;\n padding: 0.3em 1.2em;\n text-align: center;\n text-decoration: none;\n\n &:visited {\n color: inherit;\n }\n\n &:hover {\n border-color: gray;\n cursor: pointer;\n }\n\n &:focus {\n box-shadow: 0 0 3px 1px lightblue;\n border-color: blue;\n outline: none;\n }\n\n &.active,\n &:active {\n background-image: linear-gradient(to bottom, lightgray, white 50%, white);\n box-shadow: inset 0 1px 3px 0 lightgray;\n border-color: gray;\n }\n }\n\n /* Additional styling of disabled buttons. */\n &.disabled {\n cursor: not-allowed;\n opacity: 0.33;\n }\n}\n","*,\n.context,\n.ad.hoc {\n &.checkbox {\n appearance: none;\n background: white;\n border: 1px solid gray;\n border-radius: 0.3em;\n cursor: pointer;\n font: inherit;\n height: 1.5em;\n outline: none;\n margin: 0;\n width: 1.5em;\n\n &:checked {\n &::after {\n background: black;\n border-radius: 0.3em;\n content: \"\";\n display: block;\n height: 1em;\n margin: 0.2em;\n width: 1em;\n }\n }\n\n &:focus {\n border-color: blue;\n box-shadow: 0 0 3px 1px lightblue;\n }\n }\n\n &.container {\n align-items: center;\n display: inline-flex;\n margin: 0.1em;\n }\n\n &.label {\n margin: 0 0.6em 0 1.5em;\n }\n}\n","@import \"styles/mixins\";\n\n*,\n.context,\n.ad.hoc {\n &.arrow {\n background-image: linear-gradient(to top, lightgray, white 50%, white);\n border: 1px solid gray;\n border-radius: 0 0.3em 0.3em 0;\n padding: 0.3em 0.6em;\n pointer-events: none;\n position: absolute;\n right: 0;\n }\n\n &.container {\n align-items: center;\n display: inline-flex;\n margin: 0.1em;\n position: relative;\n }\n\n :active + &.arrow {\n background-image: linear-gradient(to bottom, lightgray, white 50%, white);\n border-bottom-right-radius: 0;\n }\n\n :focus + &.arrow {\n border-color: blue;\n border-left-color: gray;\n }\n\n &.label {\n margin: 0 0.6em 0 1.5em;\n }\n\n &.option { /* Empty style */ }\n &.hiddenOption { display: none; }\n\n &.select {\n appearance: none;\n background: white;\n border: 1px solid gray;\n border-radius: 0.3em;\n color: inherit;\n cursor: pointer;\n display: inline-block;\n font: inherit;\n outline: none;\n padding: 0.3em 3.3em calc(0.3em + 1px) 1.2em;\n\n &:active {\n background: white;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:focus {\n border-color: blue;\n box-shadow: 0 0 3px 1px lightblue;\n }\n }\n}\n","*,\n.context,\n.ad.hoc {\n &.container {\n align-items: center;\n display: inline-flex;\n margin: 0.1em;\n }\n\n &.input {\n border: 1px solid gray;\n border-radius: 0.3em;\n cursor: text;\n font: inherit;\n outline: none;\n padding: 0.3em 0.3em calc(0.3em + 1px);\n\n &:focus {\n border-color: blue;\n box-shadow: 0 0 3px 1px lightblue;\n }\n }\n\n &.label {\n margin: 0 0.6em 0 1.5em;\n }\n}\n","/**\n * Base theme: symmetric 3-columns layout, with the center column occupying all\n * screen up to mid screen size. For larger screen sizes the main column is\n * limited by the mid screen size, and the free space is filled with side\n * columns on left and right.\n */\n\n@import \"styles/mixins\";\n\n*,\n.context,\n.ad.hoc {\n &.container {\n align-items: stretch;\n display: flex;\n min-height: 100vh;\n overflow: hidden;\n width: 100%;\n }\n\n &.mainPanel {\n overflow: hidden;\n padding: 1.2em;\n width: $screen-md;\n }\n\n &.sidePanel {\n overflow: hidden;\n width: calc((100% - #{$screen-md}) / 2);\n }\n}\n","/**\n * Mixins for different layout sizes: xs, sm, md, lg.\n * Breaking points are defined in _variables.scss\n * The range mixins A-to-B all means \"for the sizes from A to B, both\n * inclusive\", in particular it means that mixin A-to-lg is equivalent to\n * all sizes from A (inclusive) and larger.\n *\n * NOTE: For convenience, these mixins are sorted not alphabetically, but,\n * first, by increase of the first size; second, by increase of the second size.\n */\n\n/* Break points. */\n\n$screen-xs: 320px !default;\n$screen-sm: 495px !default;\n$screen-mm: 768px !default;\n$screen-md: 1024px !default;\n$screen-lg: 1280px !default;\n\n/* XS */\n\n@mixin xs {\n @media (max-width: #{$screen-xs}) {\n @content;\n }\n}\n\n@mixin xs-to-sm {\n @media (max-width: #{$screen-sm}) {\n @content;\n }\n}\n\n@mixin xs-to-mm {\n @media (max-width: #{$screen-mm}) {\n @content;\n }\n}\n\n@mixin xs-to-md {\n @media (max-width: #{$screen-md}) {\n @content;\n }\n}\n\n@mixin xs-to-lg {\n @media (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n/* SM */\n\n@mixin sm {\n @media (min-width: #{$screen-xs + 1px}) and (max-width: #{$screen-sm}) {\n @content;\n }\n}\n\n@mixin sm-to-mm {\n @media (min-width: #{$screen-xs + 1px}) and (max-width: #{$screen-mm}) {\n @content;\n }\n}\n\n@mixin sm-to-md {\n @media (min-width: #{$screen-xs + 1px}) and (max-width: #{$screen-md}) {\n @content;\n }\n}\n\n@mixin sm-to-lg {\n @media (min-width: #{$screen-xs + 1px}) and (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n@mixin sm-to-xl {\n @media (min-width: #{$screen-xs + 1px}) {\n @content;\n }\n}\n\n/* MM */\n\n@mixin mm {\n @media (min-width: #{$screen-sm + 1px}) and (max-width: #{$screen-mm}) {\n @content;\n }\n}\n\n@mixin mm-to-md {\n @media (min-width: #{$screen-sm + 1px}) and (max-width: #{$screen-md}) {\n @content;\n }\n}\n\n@mixin mm-to-lg {\n @media (min-width: #{$screen-sm + 1px}) and (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n@mixin mm-to-xl {\n @media (min-width: #{$screen-sm + 1px}) {\n @content;\n }\n}\n\n/* MD */\n\n@mixin md {\n @media (min-width: #{$screen-mm + 1px}) and (max-width: #{$screen-md}) {\n @content;\n }\n}\n\n@mixin md-to-lg {\n @media (min-width: #{$screen-mm + 1px}) and (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n@mixin md-to-xl {\n @media (min-width: #{$screen-mm + 1px}) {\n @content;\n }\n}\n\n/* LG */\n\n@mixin lg {\n @media (min-width: #{$screen-md + 1px}) and (max-width: #{$screen-lg}) {\n @content;\n }\n}\n\n@mixin lg-to-xl {\n @media (min-width: #{$screen-md + 1px}) {\n @content;\n }\n}\n\n/* XL */\n\n@mixin xl {\n @media (min-width: #{$screen-lg + 1px}) {\n @content;\n }\n}\n","@import \"styles/mixins\";\n\n*,\n.context,\n.ad.hoc {\n &.overlay {\n background: #eee;\n height: 100%;\n left: 0;\n opacity: 0.8;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 998;\n\n &:focus { outline: none; }\n }\n\n &.container {\n background: #fff;\n box-shadow: 0 0 14px 1px rgba(38 38 40 / 15%);\n border-radius: 4;\n max-height: 95vh;\n max-width: $screen-md;\n overflow: hidden;\n padding: 0.6em 1.2em;\n width: 480px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 999;\n\n @include xs-to-lg {\n max-width: 95vw;\n }\n }\n}\n",":global {\n body.scrolling-disabled-by-modal {\n overflow: hidden;\n }\n}\n",".container {\n position: relative;\n width: 100%;\n}\n\n.wrapper {\n height: 100%;\n position: absolute;\n width: 100%;\n}\n","*,\n.context,\n.ad.hoc {\n &.container {\n display: inline-block;\n }\n\n &.circle {\n @keyframes bouncing {\n from { top: -0.3em; }\n to { top: 0.3em; }\n }\n\n animation: bouncing 0.4s ease-in infinite alternate;\n background: black;\n border-radius: 0.3em;\n display: inline-block;\n height: 0.6em;\n margin: 0 0.1em;\n position: relative;\n width: 0.6em;\n\n &:first-child { animation-delay: -0.2s; }\n &:last-child { animation-delay: 0.2s; }\n }\n}\n","@keyframes appearance {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n*,\n.ad.hoc,\n.context {\n &.arrow {\n border: 0.6em solid grey;\n pointer-events: none;\n position: absolute;\n width: 0;\n height: 0;\n }\n\n /*\n &.content { }\n */\n\n &.container {\n background: grey;\n border-radius: 0.3em;\n color: white;\n display: inline-block;\n padding: 0 0.3em;\n position: absolute;\n top: 0;\n left: 0;\n animation: appearance 0.6s;\n }\n\n &.wrapper {\n display: inline-block;\n }\n}\n","*,\n.context,\n.ad.hoc {\n .container {\n background: whitesmoke;\n }\n\n .video {\n height: 100%;\n position: relative;\n width: 100%;\n }\n}\n","*,\n.context,\n.ad.hoc {\n .container {\n position: absolute;\n text-align: center;\n top: 40%;\n transform: translateY(50%);\n width: 100%;\n }\n}\n"],"names":[],"sourceRoot":""}