{"version":3,"file":"EnrichedTextFragment-bT2deUB5.js","sources":["../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js","../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js","../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js","../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js","../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js","../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js","../../node_modules/.pnpm/@emotion+memoize@0.9.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../node_modules/.pnpm/@emotion+cache@11.13.1/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/.pnpm/@emotion+utils@1.4.1/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../node_modules/.pnpm/@emotion+hash@0.9.2/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../node_modules/.pnpm/@emotion+unitless@0.10.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../node_modules/.pnpm/@emotion+serialize@1.3.2/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.1.0_react@18.3.1/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../node_modules/.pnpm/@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1/node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","../../node_modules/.pnpm/@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/colors/common.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/colors/red.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/colors/purple.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/colors/blue.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/colors/lightBlue.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/colors/green.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/colors/orange.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/colors/grey.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/identifier.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/.pnpm/@emotion+is-prop-valid@1.3.1/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../node_modules/.pnpm/@emotion+styled@11.13.0_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@types+react@18.3.12_react@18.3.1/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../../node_modules/.pnpm/@emotion+styled@11.13.0_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@types+react@18.3.12_react@18.3.1/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../../node_modules/.pnpm/@mui+styled-engine@5.16.6_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+_moja2fh6et5ho4wyuq7nizwpla/node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../../node_modules/.pnpm/@mui+styled-engine@5.16.6_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+_moja2fh6et5ho4wyuq7nizwpla/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../../node_modules/.pnpm/@mui+styled-engine@5.16.6_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+_moja2fh6et5ho4wyuq7nizwpla/node_modules/@mui/styled-engine/index.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/createTheme/shape.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/merge.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/breakpoints.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/capitalize/capitalize.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/style.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/memoize.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/spacing.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/createTheme/createSpacing.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/compose.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/borders.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/cssGrid.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/palette.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/sizing.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/createTheme/applyStyles.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/createTheme/createTheme.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../../node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/index.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/clamp/clamp.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/debounce/debounce.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/deprecatedPropType/deprecatedPropType.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/requirePropFactory/requirePropFactory.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/setRef/setRef.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useId/useId.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/unsupportedProp/unsupportedProp.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useControlled/useControlled.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../../node_modules/.pnpm/@mui+utils@5.16.6_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/createMixins.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/colorManipulator.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/createPalette.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/createTypography.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/shadows.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/createTransitions.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/zIndex.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/createTheme.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/defaultTheme.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/extends.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../node_modules/.pnpm/@mui+system@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+styled@_vd4rnbgc5ozuq2bmebxfpeinju/node_modules/@mui/system/createStyled.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/slotShouldForwardProp.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/rootShouldForwardProp.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/styles/styled.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/SvgIcon/svgIconClasses.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/SvgIcon/SvgIcon.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/utils/createSvgIcon.js","../../node_modules/.pnpm/@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_react@18.3.1__@emotion+style_5fmx4zgukdrr7c4hrz6h7clcfi/node_modules/@mui/material/utils/index.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/.pnpm/@mui+icons-material@5.16.7_@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_r_sz3xjl6epxjvur64gkafmrxxze/node_modules/@mui/icons-material/utils/createSvgIcon.js","../../node_modules/.pnpm/is-in-browser@1.1.3/node_modules/is-in-browser/dist/module.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/createClass.js","../../node_modules/.pnpm/jss@10.10.0/node_modules/jss/dist/jss.esm.js","../../node_modules/.pnpm/jss-plugin-rule-value-function@10.10.0/node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../../node_modules/.pnpm/symbol-observable@1.2.0/node_modules/symbol-observable/es/ponyfill.js","../../node_modules/.pnpm/symbol-observable@1.2.0/node_modules/symbol-observable/es/index.js","../../node_modules/.pnpm/jss-plugin-rule-value-observable@10.10.0/node_modules/jss-plugin-rule-value-observable/dist/jss-plugin-rule-value-observable.esm.js","../../node_modules/.pnpm/jss-plugin-template@10.10.0/node_modules/jss-plugin-template/dist/jss-plugin-template.esm.js","../../node_modules/.pnpm/jss-plugin-global@10.10.0/node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../../node_modules/.pnpm/jss-plugin-extend@10.10.0/node_modules/jss-plugin-extend/dist/jss-plugin-extend.esm.js","../../node_modules/.pnpm/jss-plugin-nested@10.10.0/node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../../node_modules/.pnpm/jss-plugin-compose@10.10.0/node_modules/jss-plugin-compose/dist/jss-plugin-compose.esm.js","../../node_modules/.pnpm/hyphenate-style-name@1.1.0/node_modules/hyphenate-style-name/index.js","../../node_modules/.pnpm/jss-plugin-camel-case@10.10.0/node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../../node_modules/.pnpm/jss-plugin-default-unit@10.10.0/node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../../node_modules/.pnpm/jss-plugin-expand@10.10.0/node_modules/jss-plugin-expand/dist/jss-plugin-expand.esm.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/.pnpm/css-vendor@2.0.8/node_modules/css-vendor/dist/css-vendor.esm.js","../../node_modules/.pnpm/jss-plugin-vendor-prefixer@10.10.0/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../../node_modules/.pnpm/jss-plugin-props-sort@10.10.0/node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../../node_modules/.pnpm/jss-preset-default@10.10.0/node_modules/jss-preset-default/dist/jss-preset-default.esm.js","../../node_modules/.pnpm/@mui+icons-material@5.16.7_@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_r_sz3xjl6epxjvur64gkafmrxxze/node_modules/@mui/icons-material/Check.js","../../node_modules/.pnpm/@mui+icons-material@5.16.7_@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_r_sz3xjl6epxjvur64gkafmrxxze/node_modules/@mui/icons-material/SentimentSatisfied.js","../../node_modules/.pnpm/@mui+icons-material@5.16.7_@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_r_sz3xjl6epxjvur64gkafmrxxze/node_modules/@mui/icons-material/SentimentVeryDissatisfied.js","../../node_modules/.pnpm/@mui+icons-material@5.16.7_@mui+material@5.16.7_@emotion+react@11.13.3_@types+react@18.3.12_r_sz3xjl6epxjvur64gkafmrxxze/node_modules/@mui/icons-material/SentimentVerySatisfied.js","../../src/workers/rxdb/Schema.ts","../../src/components/Common.tsx","../../src/lib/dictionary.ts","../../src/lib/componentMethods.ts","../../node_modules/.pnpm/inferno@8.2.3/node_modules/inferno/dist/index.esm.js","../../node_modules/.pnpm/hoist-non-inferno-statics@1.1.3/node_modules/hoist-non-inferno-statics/index.js","../../node_modules/.pnpm/inferno-redux@8.2.3_redux@5.0.1/node_modules/inferno-redux/dist/index.esm.js","../../src/components/content/etf/Entry.ts","../../node_modules/.pnpm/js-levenshtein-esm@1.2.0/node_modules/js-levenshtein-esm/esm/index.js","../../src/lib/stats.ts","../../src/components/content/etf/EnrichedTextFragment.ts"],"sourcesContent":["var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node\n /*: HTMLStyleElement */\n ) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n /* : Node */\n\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node\n /*: HTMLStyleElement */\n ) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n /*: (\n selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache\n /*: EmotionCache */\n = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n }\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\n/* import { type EmotionCache } from '@emotion/utils' */\nvar EmotionCacheContext\n/*: React.Context */\n= /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache()\n/*: EmotionCache | null*/\n{\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache\n/* > */\n(func\n/*: (props: Props, cache: EmotionCache, ref: Ref) => React.Node */\n)\n/*: React.AbstractComponent */\n{\n return /*#__PURE__*/forwardRef(function (props\n /*: Props */\n , ref\n /*: Ref */\n ) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme\n/*: Object */\n, theme\n/*: Object | (Object => Object) */\n) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\n/*\ntype ThemeProviderProps = {\n theme: Object | (Object => Object),\n children: React.Node\n}\n*/\n\nvar ThemeProvider = function ThemeProvider(props\n/*: ThemeProviderProps */\n) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme\n/* */\n(Component\n/*: React.AbstractComponent */\n)\n/*: React.AbstractComponent<$Diff> */\n{\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n };\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n\n var newProps\n /*: any */\n = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(\n/* */\nfunction (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (!isDevelopment )) {\n newProps[key] = props[key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-5486c51c.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-5486c51c.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx\n/*: typeof React.createElement */\n= function jsx\n/*: typeof React.createElement */\n(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global\n/*: React.AbstractComponent<\nGlobalProps\n> */\n= /* #__PURE__ */withEmotionCache(function (props\n/*: GlobalProps */\n, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node\n /*: HTMLStyleElement | null*/\n = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\n/* import type { Interpolation, SerializedStyles } from '@emotion/utils' */\n\nfunction css()\n/*: SerializedStyles */\n{\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\n/*\ntype Keyframes = {|\n name: string,\n styles: string,\n anim: 1,\n toString: () => string\n|} & string\n*/\n\nvar keyframes = function\n /*: Keyframes */\nkeyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\n/*\ntype ClassNameArg =\n | string\n | boolean\n | { [key: string]: boolean }\n | Array\n | null\n | void\n*/\n\nvar classnames = function\n /*: string */\nclassnames(args\n/*: Array */\n) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered\n/*: Object */\n, css\n/*: (...args: Array) => string */\n, className\n/*: string */\n) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n/*\ntype Props = {\n children: ({\n css: (...args: any) => string,\n cx: (...args: Array) => string,\n theme: Object\n }) => React.Node\n} */\n\n\nvar ClassNames\n/*: React.AbstractComponent*/\n= /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","export default '$$material';","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\n/* import type {\n ElementType,\n StatelessFunctionalComponent,\n AbstractComponent\n} from 'react' */\n/*\nexport type Interpolations = Array\n\nexport type StyledElementType =\n | string\n | AbstractComponent<{ ...Props, className: string }, mixed>\n\nexport type StyledOptions = {\n label?: string,\n shouldForwardProp?: string => boolean,\n target?: string\n}\n\nexport type StyledComponent = StatelessFunctionalComponent & {\n defaultProps: any,\n toString: () => string,\n withComponent: (\n nextTag: StyledElementType,\n nextOptions?: StyledOptions\n ) => StyledComponent\n}\n\nexport type PrivateStyledComponent = StyledComponent & {\n __emotion_real: StyledComponent,\n __emotion_base: any,\n __emotion_styles: any,\n __emotion_forwardProp: any\n}\n*/\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key\n/*: string */\n) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag\n/*: ElementType */\n) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag\n/*: PrivateStyledComponent */\n, options\n/*: StyledOptions | void */\n, isReal\n/*: boolean */\n) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName\n /*: string */\n ) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n/*\nexport type CreateStyledComponent = (\n ...args: Interpolations\n) => StyledComponent\n\nexport type CreateStyled = {\n (\n tag: StyledElementType,\n options?: StyledOptions\n ): (...args: Interpolations) => StyledComponent,\n [key: string]: CreateStyledComponent,\n bind: () => CreateStyled\n}\n*/\n\nvar isDevelopment = false;\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled\n/*: CreateStyled */\n= function createStyled\n/*: CreateStyled */\n(tag\n/*: any */\n, options\n/* ?: StyledOptions */\n) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n /* return function(): PrivateStyledComponent { */\n\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], args[0][i]);\n }\n }\n\n var Styled\n /*: PrivateStyledComponent */\n = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag\n /*: StyledElementType */\n , nextOptions\n /* ?: StyledOptions */\n ) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nlet cache;\nif (typeof document === 'object') {\n cache = createCache({\n key: 'css',\n prepend: true\n });\n}\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n children\n } = props;\n return injectFirst && cache ? /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n }) : children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.16.6\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n var _muiName, _element$type;\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from '../ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useLazyRef(sortColumns, columns)\n */\nexport default function useLazyRef(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport default function useOnMount(fn) {\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return (0, _clamp.default)(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nfunction hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : (0, _formatMuiErrorMessage2.default)(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : (0, _formatMuiErrorMessage2.default)(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nconst colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexports.colorChannel = colorChannel;\nconst private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nfunction getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nfunction getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nfunction private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","import slotShouldForwardProp from './slotShouldForwardProp';\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nimport rootShouldForwardProp from './rootShouldForwardProp';\nexport { default as slotShouldForwardProp } from './slotShouldForwardProp';\nexport { default as rootShouldForwardProp } from './rootShouldForwardProp';\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n // the will define the property that has `currentColor`\n // for example heroicons uses fill=\"none\" and stroke=\"currentColor\"\n fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox,\n hasSvgAsChild\n });\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, hasSvgAsChild && children.props, {\n ownerState: ownerState,\n children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","'use client';\n\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/utils';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nvar toCssValue = function toCssValue(value) {\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n\nfunction getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n };\n }\n\n return {\n linebreak: '\\n',\n space: ' '\n };\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n\n if (options.format === false) {\n indent = -Infinity;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak,\n space = _getWhitespaceSymbols.space;\n\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += linebreak;\n result += indentStr(prop + \":\" + space + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += linebreak;\n result += indentStr(_prop + \":\" + space + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += linebreak;\n result += indentStr(_prop2 + \":\" + space + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\" + linebreak + result + linebreak;\n return indentStr(\"\" + selector + space + \"{\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(key, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.isProcessed = false;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\" + linebreak + children + linebreak + \"}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@container|@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.isProcessed = false;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\" + linebreak + children + linebreak;\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar pluginKeyframesRule = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n return _BaseStyleRule.apply(this, arguments) || this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += linebreak;\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.isProcessed = false;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */\n ;\n\n _proto.replace = function replace(name, decl, ruleOptions) {\n var oldRule = this.get(name);\n var oldIndex = this.index.indexOf(oldRule);\n\n if (oldRule) {\n this.remove(oldRule);\n }\n\n var options = ruleOptions;\n if (oldIndex !== -1) options = _extends({}, ruleOptions, {\n index: oldIndex\n });\n return this.add(name, decl, options);\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.get = function get(nameOrSelector) {\n return this.map[nameOrSelector];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0];\n data = arguments.length <= 1 ? undefined : arguments[1];\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0];\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.get(name), data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var style = rule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.\n\n for (var prop in rule.style) {\n var nextValue = rule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = rule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n rule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += linebreak;\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Replace a rule in the current stylesheet.\n */\n ;\n\n _proto.replaceRule = function replaceRule(nameOrSelector, decl, options) {\n var oldRule = this.rules.get(nameOrSelector);\n if (!oldRule) return this.addRule(nameOrSelector, decl, options);\n var newRule = this.rules.replace(nameOrSelector, decl, options);\n\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule);\n }\n\n if (this.attached) {\n if (!this.deployed) return newRule; // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule);\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule);\n }\n }\n\n return newRule;\n } // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return newRule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.getRule = function getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = {};\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access all instances in one place.\n */\n\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += linebreak;\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\n\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n\n return generateId;\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value);\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n var indexOfImportantFlag = cssValue ? cssValue.indexOf('!important') : -1;\n var cssValueWithoutImportantFlag = indexOfImportantFlag > -1 ? cssValue.substr(0, indexOfImportantFlag - 1) : cssValue;\n cssRule.style.setProperty(prop, cssValueWithoutImportantFlag, indexOfImportantFlag > -1 ? 'important' : '');\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n/**\n * Remove a style property.\n */\n\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\n\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules.splice(index, 0, cssRule);\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.10.0\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\nvar createJss = function createJss(options) {\n return new Jss(options);\n};\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\n\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n* Export a constant indicating if this browser has CSSTOM support.\n* https://developers.google.com/web/updates/2018/03/cssom\n*/\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nvar index = createJss();\n\nexport default index;\nexport { RuleList, SheetsManager, SheetsRegistry, createJss as create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, sheets, toCssValue };\n","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n }\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n }\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\n\nexport default functionPlugin;\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import $$observable from 'symbol-observable';\nimport { createRule } from 'jss';\n\nvar isObservable = function isObservable(value) {\n return value && value[$$observable] && value === value[$$observable]();\n};\n\nvar observablePlugin = function observablePlugin(updateOptions) {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (!isObservable(decl)) return null;\n var style$ = decl;\n var rule = createRule(name, {}, options); // TODO\n // Call `stream.subscribe()` returns a subscription, which should be explicitly\n // unsubscribed from when we know this sheet is no longer needed.\n\n style$.subscribe(function (style) {\n for (var prop in style) {\n rule.prop(prop, style[prop], updateOptions);\n }\n });\n return rule;\n },\n onProcessRule: function onProcessRule(rule) {\n if (rule && rule.type !== 'style') return;\n var styleRule = rule;\n var style = styleRule.style;\n\n var _loop = function _loop(prop) {\n var value = style[prop];\n if (!isObservable(value)) return \"continue\";\n delete style[prop];\n value.subscribe({\n next: function next(nextValue) {\n styleRule.prop(prop, nextValue, updateOptions);\n }\n });\n };\n\n for (var prop in style) {\n var _ret = _loop(prop);\n\n if (_ret === \"continue\") continue;\n }\n }\n };\n};\n\nexport default observablePlugin;\n","import warning from 'tiny-warning';\n\nvar semiWithNl = /;\\n/;\n/**\n * Naive CSS parser.\n * - Supports only rule body (no selectors)\n * - Requires semicolon and new line after the value (except of last line)\n * - No nested rules support\n */\n\nvar parse = function parse(cssText) {\n var style = {};\n var split = cssText.split(semiWithNl);\n\n for (var i = 0; i < split.length; i++) {\n var decl = (split[i] || '').trim();\n if (!decl) continue;\n var colonIndex = decl.indexOf(':');\n\n if (colonIndex === -1) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Malformed CSS string \\\"\" + decl + \"\\\"\") : void 0;\n continue;\n }\n\n var prop = decl.substr(0, colonIndex).trim();\n var value = decl.substr(colonIndex + 1).trim();\n style[prop] = value;\n }\n\n return style;\n};\n\nvar onProcessRule = function onProcessRule(rule) {\n if (typeof rule.style === 'string') {\n rule.style = parse(rule.style);\n }\n};\n\nfunction templatePlugin() {\n return {\n onProcessRule: onProcessRule\n };\n}\n\nexport default templatePlugin;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (!options.selector && options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexport default jssGlobal;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar isObject = function isObject(obj) {\n return obj && typeof obj === 'object' && !Array.isArray(obj);\n};\n\nvar valueNs = \"extendCurrValue\" + Date.now();\n\nfunction mergeExtend(style, rule, sheet, newStyle) {\n var extendType = typeof style.extend; // Extend using a rule name.\n\n if (extendType === 'string') {\n if (!sheet) return;\n var refRule = sheet.getRule(style.extend);\n if (!refRule) return;\n\n if (refRule === rule) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] A rule tries to extend itself \\n\" + rule.toString()) : void 0;\n return;\n }\n\n var parent = refRule.options.parent;\n\n if (parent) {\n var originalStyle = parent.rules.raw[style.extend];\n extend(originalStyle, rule, sheet, newStyle);\n }\n\n return;\n } // Extend using an array.\n\n\n if (Array.isArray(style.extend)) {\n for (var index = 0; index < style.extend.length; index++) {\n var singleExtend = style.extend[index];\n var singleStyle = typeof singleExtend === 'string' ? _extends({}, style, {\n extend: singleExtend\n }) : style.extend[index];\n extend(singleStyle, rule, sheet, newStyle);\n }\n\n return;\n } // Extend is a style object.\n\n\n for (var prop in style.extend) {\n if (prop === 'extend') {\n extend(style.extend.extend, rule, sheet, newStyle);\n continue;\n }\n\n if (isObject(style.extend[prop])) {\n if (!(prop in newStyle)) newStyle[prop] = {};\n extend(style.extend[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n\n newStyle[prop] = style.extend[prop];\n }\n}\n\nfunction mergeRest(style, rule, sheet, newStyle) {\n // Copy base style.\n for (var prop in style) {\n if (prop === 'extend') continue;\n\n if (isObject(newStyle[prop]) && isObject(style[prop])) {\n extend(style[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n\n if (isObject(style[prop])) {\n newStyle[prop] = extend(style[prop], rule, sheet);\n continue;\n }\n\n newStyle[prop] = style[prop];\n }\n}\n/**\n * Recursively extend styles.\n */\n\n\nfunction extend(style, rule, sheet, newStyle) {\n if (newStyle === void 0) {\n newStyle = {};\n }\n\n mergeExtend(style, rule, sheet, newStyle);\n mergeRest(style, rule, sheet, newStyle);\n return newStyle;\n}\n/**\n * Handle `extend` property.\n */\n\n\nfunction jssExtend() {\n function onProcessStyle(style, rule, sheet) {\n if ('extend' in style) return extend(style, rule, sheet);\n return style;\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop !== 'extend') return value; // Value is empty, remove properties set previously.\n\n if (value == null || value === false) {\n for (var key in rule[valueNs]) {\n rule.prop(key, null);\n }\n\n rule[valueNs] = null;\n return null;\n }\n\n if (typeof value === 'object') {\n for (var _key in value) {\n rule.prop(_key, value[_key]);\n }\n\n rule[valueNs] = value;\n } // Make sure we don't set the value in the core.\n\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssExtend;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n var name = styleRule.key + \"-\" + prop;\n\n if ('replaceRule' in container) {\n // for backward compatibility\n container.replaceRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else {\n container.addRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n }\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options).addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;\n","import warning from 'tiny-warning';\n\n/**\n * Set selector.\n *\n * @param original rule\n * @param className class string\n * @return flag indicating function was successfull or not\n */\n\nfunction registerClass(rule, className) {\n // Skip falsy values\n if (!className) return true; // Support array of class names `{composes: ['foo', 'bar']}`\n\n if (Array.isArray(className)) {\n for (var index = 0; index < className.length; index++) {\n var isSetted = registerClass(rule, className[index]);\n if (!isSetted) return false;\n }\n\n return true;\n } // Support space separated class names `{composes: 'foo bar'}`\n\n\n if (className.indexOf(' ') > -1) {\n return registerClass(rule, className.split(' '));\n }\n\n var parent = rule.options.parent; // It is a ref to a local rule.\n\n if (className[0] === '$') {\n var refRule = parent.getRule(className.substr(1));\n\n if (!refRule) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced rule is not defined. \\n\" + rule.toString()) : void 0;\n return false;\n }\n\n if (refRule === rule) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Cyclic composition detected. \\n\" + rule.toString()) : void 0;\n return false;\n }\n\n parent.classes[rule.key] += \" \" + parent.classes[refRule.key];\n return true;\n }\n\n parent.classes[rule.key] += \" \" + className;\n return true;\n}\n/**\n * Convert compose property to additional class, remove property from original styles.\n */\n\n\nfunction jssCompose() {\n function onProcessStyle(style, rule) {\n if (!('composes' in style)) return style;\n registerClass(rule, style.composes); // Remove composes property to prevent infinite loop.\n\n delete style.composes;\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssCompose;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import hyphenate from 'hyphenate-style-name';\n\n/**\n * Convert camel cased property names to dash separated.\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default camelCase;\n","import { hasCSSTOMSupport } from 'jss';\n\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var key in obj) {\n newObj[key] = obj[key];\n newObj[key.replace(regExp, replace)] = obj[key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default defaultUnit;\n","/**\n * A scheme for converting properties from array to regular style.\n * All properties listed below will be transformed to a string separated by space.\n */\nvar propArray = {\n 'background-size': true,\n 'background-position': true,\n border: true,\n 'border-bottom': true,\n 'border-left': true,\n 'border-top': true,\n 'border-right': true,\n 'border-radius': true,\n 'border-image': true,\n 'border-width': true,\n 'border-style': true,\n 'border-color': true,\n 'box-shadow': true,\n flex: true,\n margin: true,\n padding: true,\n outline: true,\n 'transform-origin': true,\n transform: true,\n transition: true\n /**\n * A scheme for converting arrays to regular styles inside of objects.\n * For e.g.: \"{position: [0, 0]}\" => \"background-position: 0 0;\".\n */\n\n};\nvar propArrayInObj = {\n position: true,\n // background-position\n size: true // background-size\n\n /**\n * A scheme for parsing and building correct styles from passed objects.\n */\n\n};\nvar propObj = {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n margin: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n background: {\n attachment: null,\n color: null,\n image: null,\n position: null,\n repeat: null\n },\n border: {\n width: null,\n style: null,\n color: null\n },\n 'border-top': {\n width: null,\n style: null,\n color: null\n },\n 'border-right': {\n width: null,\n style: null,\n color: null\n },\n 'border-bottom': {\n width: null,\n style: null,\n color: null\n },\n 'border-left': {\n width: null,\n style: null,\n color: null\n },\n outline: {\n width: null,\n style: null,\n color: null\n },\n 'list-style': {\n type: null,\n position: null,\n image: null\n },\n transition: {\n property: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null,\n // Needed for avoiding comilation issues with jss-plugin-camel-case\n delay: null\n },\n animation: {\n name: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n delay: null,\n 'iteration-count': null,\n iterationCount: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n direction: null,\n 'fill-mode': null,\n fillMode: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n 'play-state': null,\n playState: null // Needed to avoid compilation issues with jss-plugin-camel-case\n\n },\n 'box-shadow': {\n x: 0,\n y: 0,\n blur: 0,\n spread: 0,\n color: null,\n inset: null\n },\n 'text-shadow': {\n x: 0,\n y: 0,\n blur: null,\n color: null\n }\n /**\n * A scheme for converting non-standart properties inside object.\n * For e.g.: include 'border-radius' property inside 'border' object.\n */\n\n};\nvar customPropObj = {\n border: {\n radius: 'border-radius',\n image: 'border-image',\n width: 'border-width',\n style: 'border-style',\n color: 'border-color'\n },\n 'border-bottom': {\n width: 'border-bottom-width',\n style: 'border-bottom-style',\n color: 'border-bottom-color'\n },\n 'border-top': {\n width: 'border-top-width',\n style: 'border-top-style',\n color: 'border-top-color'\n },\n 'border-left': {\n width: 'border-left-width',\n style: 'border-left-style',\n color: 'border-left-color'\n },\n 'border-right': {\n width: 'border-right-width',\n style: 'border-right-style',\n color: 'border-right-color'\n },\n background: {\n size: 'background-size',\n image: 'background-image'\n },\n font: {\n style: 'font-style',\n variant: 'font-variant',\n weight: 'font-weight',\n stretch: 'font-stretch',\n size: 'font-size',\n family: 'font-family',\n lineHeight: 'line-height',\n // Needed to avoid compilation issues with jss-plugin-camel-case\n 'line-height': 'line-height'\n },\n flex: {\n grow: 'flex-grow',\n basis: 'flex-basis',\n direction: 'flex-direction',\n wrap: 'flex-wrap',\n flow: 'flex-flow',\n shrink: 'flex-shrink'\n },\n align: {\n self: 'align-self',\n items: 'align-items',\n content: 'align-content'\n },\n grid: {\n 'template-columns': 'grid-template-columns',\n templateColumns: 'grid-template-columns',\n 'template-rows': 'grid-template-rows',\n templateRows: 'grid-template-rows',\n 'template-areas': 'grid-template-areas',\n templateAreas: 'grid-template-areas',\n template: 'grid-template',\n 'auto-columns': 'grid-auto-columns',\n autoColumns: 'grid-auto-columns',\n 'auto-rows': 'grid-auto-rows',\n autoRows: 'grid-auto-rows',\n 'auto-flow': 'grid-auto-flow',\n autoFlow: 'grid-auto-flow',\n row: 'grid-row',\n column: 'grid-column',\n 'row-start': 'grid-row-start',\n rowStart: 'grid-row-start',\n 'row-end': 'grid-row-end',\n rowEnd: 'grid-row-end',\n 'column-start': 'grid-column-start',\n columnStart: 'grid-column-start',\n 'column-end': 'grid-column-end',\n columnEnd: 'grid-column-end',\n area: 'grid-area',\n gap: 'grid-gap',\n 'row-gap': 'grid-row-gap',\n rowGap: 'grid-row-gap',\n 'column-gap': 'grid-column-gap',\n columnGap: 'grid-column-gap'\n }\n};\n\n/* eslint-disable no-use-before-define */\n/**\n * Map values by given prop.\n *\n * @param {Array} array of values\n * @param {String} original property\n * @param {String} original rule\n * @return {String} mapped values\n */\n\nfunction mapValuesByProp(value, prop, rule) {\n return value.map(function (item) {\n return objectToArray(item, prop, rule, false, true);\n });\n}\n/**\n * Convert array to nested array, if needed\n */\n\n\nfunction processArray(value, prop, scheme, rule) {\n if (scheme[prop] == null) return value;\n if (value.length === 0) return [];\n if (Array.isArray(value[0])) return processArray(value[0], prop, scheme, rule);\n\n if (typeof value[0] === 'object') {\n return mapValuesByProp(value, prop, rule);\n }\n\n return [value];\n}\n/**\n * Convert object to array.\n */\n\n\nfunction objectToArray(value, prop, rule, isFallback, isInArray) {\n if (!(propObj[prop] || customPropObj[prop])) return [];\n var result = []; // Check if exists any non-standard property\n\n if (customPropObj[prop]) {\n // eslint-disable-next-line no-param-reassign\n value = customPropsToStyle(value, rule, customPropObj[prop], isFallback);\n } // Pass throught all standart props\n\n\n if (Object.keys(value).length) {\n for (var baseProp in propObj[prop]) {\n if (value[baseProp]) {\n if (Array.isArray(value[baseProp])) {\n result.push(propArrayInObj[baseProp] === null ? value[baseProp] : value[baseProp].join(' '));\n } else result.push(value[baseProp]);\n\n continue;\n } // Add default value from props config.\n\n\n if (propObj[prop][baseProp] != null) {\n result.push(propObj[prop][baseProp]);\n }\n }\n }\n\n if (!result.length || isInArray) return result;\n return [result];\n}\n/**\n * Convert custom properties values to styles adding them to rule directly\n */\n\n\nfunction customPropsToStyle(value, rule, customProps, isFallback) {\n for (var prop in customProps) {\n var propName = customProps[prop]; // If current property doesn't exist already in rule - add new one\n\n if (typeof value[prop] !== 'undefined' && (isFallback || !rule.prop(propName))) {\n var _styleDetector;\n\n var appendedValue = styleDetector((_styleDetector = {}, _styleDetector[propName] = value[prop], _styleDetector), rule)[propName]; // Add style directly in rule\n\n if (isFallback) rule.style.fallbacks[propName] = appendedValue;else rule.style[propName] = appendedValue;\n } // Delete converted property to avoid double converting\n\n\n delete value[prop];\n }\n\n return value;\n}\n/**\n * Detect if a style needs to be converted.\n */\n\n\nfunction styleDetector(style, rule, isFallback) {\n for (var prop in style) {\n var value = style[prop];\n\n if (Array.isArray(value)) {\n // Check double arrays to avoid recursion.\n if (!Array.isArray(value[0])) {\n if (prop === 'fallbacks') {\n for (var index = 0; index < style.fallbacks.length; index++) {\n style.fallbacks[index] = styleDetector(style.fallbacks[index], rule, true);\n }\n\n continue;\n }\n\n style[prop] = processArray(value, prop, propArray, rule); // Avoid creating properties with empty values\n\n if (!style[prop].length) delete style[prop];\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n style.fallbacks = styleDetector(style.fallbacks, rule, true);\n continue;\n }\n\n style[prop] = objectToArray(value, prop, rule, isFallback); // Avoid creating properties with empty values\n\n if (!style[prop].length) delete style[prop];\n } // Maybe a computed value resulting in an empty string\n else if (style[prop] === '') delete style[prop];\n }\n\n return style;\n}\n/**\n * Adds possibility to write expanded styles.\n */\n\n\nfunction jssExpand() {\n function onProcessStyle(style, rule) {\n if (!style || rule.type !== 'style') return style;\n\n if (Array.isArray(style)) {\n // Pass rules one by one and reformat them\n for (var index = 0; index < style.length; index++) {\n style[index] = styleDetector(style[index], rule);\n }\n\n return style;\n }\n\n return styleDetector(style, rule);\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssExpand;\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };\n","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n\n/**\n * Add vendor prefix to a property name when needed.\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssVendorPrefixer;\n","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexport default jssPropsSort;\n","import functions from 'jss-plugin-rule-value-function';\nimport observable from 'jss-plugin-rule-value-observable';\nimport template from 'jss-plugin-template';\nimport global from 'jss-plugin-global';\nimport extend from 'jss-plugin-extend';\nimport nested from 'jss-plugin-nested';\nimport compose from 'jss-plugin-compose';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport expand from 'jss-plugin-expand';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort';\n\nvar create = function create(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n plugins: [functions(), observable(options.observable), template(), global(), extend(), nested(), compose(), camelCase(), defaultUnit(options.defaultUnit), expand(), vendorPrefixer(), propsSort()]\n };\n};\n\nexport default create;\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\n}), 'Check');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)([/*#__PURE__*/(0, _jsxRuntime.jsx)(\"circle\", {\n cx: \"15.5\",\n cy: \"9.5\",\n r: \"1.5\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"circle\", {\n cx: \"8.5\",\n cy: \"9.5\",\n r: \"1.5\"\n}, \"1\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8m0-4c-.73 0-1.38-.18-1.96-.52-.12.14-.86.98-1.01 1.15.86.55 1.87.87 2.97.87 1.11 0 2.12-.33 2.98-.88-.97-1.09-.01-.02-1.01-1.15-.59.35-1.24.53-1.97.53\"\n}, \"2\")], 'SentimentSatisfied');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)([/*#__PURE__*/(0, _jsxRuntime.jsx)(\"circle\", {\n cx: \"15.5\",\n cy: \"9.5\",\n r: \"1.5\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"circle\", {\n cx: \"8.5\",\n cy: \"9.5\",\n r: \"1.5\"\n}, \"1\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8m0-6c-2.33 0-4.32 1.45-5.12 3.5h1.67c.69-1.19 1.97-2 3.45-2s2.75.81 3.45 2h1.67c-.8-2.05-2.79-3.5-5.12-3.5\"\n}, \"2\")], 'SentimentVeryDissatisfied');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)([/*#__PURE__*/(0, _jsxRuntime.jsx)(\"circle\", {\n cx: \"15.5\",\n cy: \"9.5\",\n r: \"1.5\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"circle\", {\n cx: \"8.5\",\n cy: \"9.5\",\n r: \"1.5\"\n}, \"1\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8m-5-6c.78 2.34 2.72 4 5 4s4.22-1.66 5-4z\"\n}, \"2\")], 'SentimentVerySatisfied');","import { RxCollection, RxDatabase, RxDocument, RxJsonSchema } from \"rxdb\";\nimport {\n CardType,\n Content,\n Goal,\n Import,\n KnownWords,\n LanguageClassType,\n PROCESSING,\n PROCESS_TYPE,\n QuestionAnswer,\n RecentSentencesStoredType,\n RequestQueueType,\n SessionType,\n StudentRegistrationType,\n SurveyType,\n TeacherRegistrationType,\n UserActivityType,\n UserDictionary,\n UserList,\n UserSurvey,\n} from \"../../lib/types\";\n\nconst CACHE_NAME = \"v1\";\nconst INITIALISATION_CACHE_NAME = `${CACHE_NAME}.initialisation`;\nconst LIVE_INTERVAL = 300;\nconst LIVE_INTERVAL_WITH_SUBSCRIPTION = 600;\n// FIXME: these are large because they should work at this size and it isn't certain batches work in\n// all cases\nconst BATCH_SIZE_PULL = 1000000;\nconst BATCH_SIZE_PUSH = 20000; // 1000000 means pgsql can't handle everything\n\nconst TIMESTAMP = { type: \"number\", minimum: 1000000000, maximum: 9000000000, multipleOf: \"0.0000001\" };\nconst RXPROCESSING = { type: \"number\", default: PROCESSING.REQUESTED, minimum: 0, maximum: 5, multipleOf: 1 };\n\nconst COMMON_INFO = {\n id: { type: \"string\", maxLength: 36 },\n title: { type: \"string\", maxLength: 255 },\n description: { type: [\"string\", \"null\"] },\n createdBy: { type: \"string\" },\n createdAt: TIMESTAMP,\n updatedBy: { type: [\"string\", \"null\"] },\n updatedAt: TIMESTAMP,\n status: { type: \"number\" },\n activateDate: { type: \"number\" },\n deactivateDate: { type: \"number\" },\n};\n\nexport type Globals = {\n tcb: Promise | null;\n needsReload: boolean;\n dayCardWords: KnownWords | null;\n};\n\nexport const reloadRequired = new Set();\n\nfunction getWordId(card: CardType | string): string {\n if (typeof card === \"string\") {\n return card.split(CARD_ID_SEPARATOR)[0];\n } else {\n return card.id.split(CARD_ID_SEPARATOR)[0];\n }\n}\n\nfunction getCardTypeAsInt(card: string | CardType): number {\n return parseInt(getCardType(card));\n}\n\nfunction getCardType(card: string | CardType): string {\n return (typeof card === \"string\" ? card : card.id).split(CARD_ID_SEPARATOR)[1];\n}\n\nfunction getCardId(wordId: string | number, cardType: string | number): string {\n return `${wordId}${CARD_ID_SEPARATOR}${cardType}`;\n}\n\ntype QuestionAnswerDocument = RxDocument;\ntype QuestionAnswerCollection = RxCollection;\nconst QUESTION_ANSWER_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n properties: {\n id: { type: \"string\", maxLength: 36 },\n questionId: { type: \"string\", maxLength: 36 },\n studentAnswer: { type: \"string\" },\n feedback: { type: [\"string\", \"null\"] },\n isCorrect: { type: \"boolean\", default: false },\n // @ts-ignore\n createdAt: TIMESTAMP,\n // @ts-ignore\n updatedAt: TIMESTAMP,\n },\n indexes: [\"questionId\", \"updatedAt\"],\n};\n\ntype UserDictionaryDocument = RxDocument;\ntype UserDictionaryCollection = RxCollection;\nconst USER_DICTIONARIES_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: {\n ...COMMON_INFO,\n ...{\n processing: { type: \"number\", default: PROCESSING.REQUESTED },\n lzContent: { type: \"string\" },\n fromLang: { type: \"string\" },\n toLang: { type: \"string\" },\n shared: { type: \"boolean\", default: false },\n },\n },\n indexes: [\"title\", \"updatedAt\"],\n};\n\ntype ActivityQueueDocument = RxDocument;\ntype ActivityQueueCollection = RxCollection;\nconst ACTIVITY_QUEUE_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n properties: {\n id: { type: \"string\", maxLength: 36 },\n asessionId: { type: \"string\" },\n activityType: { type: \"string\" },\n activitySource: { type: \"string\" },\n url: { type: \"string\" },\n timestamp: { type: \"integer\" },\n },\n};\n\ntype RequestQueueDocument = RxDocument;\ntype RequestQueueCollection = RxCollection;\nconst REQUEST_QUEUE_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n properties: {\n id: { type: \"string\", maxLength: 36 },\n type: { type: \"string\" },\n endpoint: { type: \"string\" },\n requestString: { type: \"string\" },\n },\n};\n\ntype SessionDocument = RxDocument;\ntype SessionCollection = RxCollection;\nconst SESSION_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n properties: {\n id: { type: \"string\", maxLength: 36 },\n timestamp: { type: \"integer\" },\n },\n};\n\ntype LanguageClassDocument = RxDocument;\ntype LanguageClassCollection = RxCollection;\nconst LANGUAGECLASSES_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: COMMON_INFO,\n indexes: [\"updatedAt\", \"title\"],\n};\n\ntype TeacherRegistrationDocument = RxDocument;\ntype TeacherRegistrationCollection = RxCollection;\nconst TEACHERREGISTRATIONS_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: {\n ...COMMON_INFO,\n ...{\n classId: { type: \"string\", maxLength: 255 },\n userId: { type: \"string\", maxLength: 36 },\n },\n },\n indexes: [\"updatedAt\"],\n};\n\ntype StudentRegistrationDocument = RxDocument;\ntype StudentRegistrationCollection = RxCollection;\nconst STUDENTREGISTRATIONS_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: {\n ...COMMON_INFO,\n ...{\n classId: { type: \"string\", maxLength: 255 },\n userId: { type: \"string\", maxLength: 36 },\n },\n },\n indexes: [\"updatedAt\"],\n};\n\n// type PersonDocument = RxDocument;\n// type PersonCollection = RxCollection;\n// const PERSONS_SCHEMA: RxJsonSchema = {\n// version: 0,\n// required: [\"id\"],\n// primaryKey: \"id\",\n// type: \"object\",\n// properties: {\n// id: { type: \"string\", maxLength: 36 },\n// fullName: { type: \"string\", maxLength: 255 },\n// email: { type: \"string\", maxLength: 255 },\n// config: { type: \"string\" },\n// // @ts-ignore\n// updatedAt: TIMESTAMP,\n// },\n// indexes: [\"updatedAt\"],\n// };\n\nconst CARD_ID_SEPARATOR = \"-\";\nconst EFACTOR_DEFAULT = 2.5;\nconst INTERVAL_DEFAULT = 0;\nconst REPETITION_DEFAULT = 0;\nconst NO_LIMIT = -1;\nconst KNOWLEDGE_UNSET = 0;\nenum GRADE {\n UNKNOWN = 2,\n HARD = 3,\n GOOD = 4,\n KNOWN = 5,\n // gradeName : function(grade) {\n // const name = Object.entries(this).find(i => i[1].toString() === grade.toString())\n // return name ? name[0].toLowerCase() : undefined;\n // },\n}\nconst DEFAULT_BAD_REVIEW_WAIT_SECS = 600;\n\nenum CARD_TYPES {\n GRAPH = 1,\n SOUND = 2,\n MEANING = 3,\n PHRASE = 4,\n}\n\ntype CardDocumentMethodsType = {\n wordId: () => string;\n cardType: () => string;\n};\n\nconst CardDocumentMethods: CardDocumentMethodsType = {\n wordId: function (): string {\n return getWordId(this as unknown as CardType);\n },\n cardType: function (): string {\n return getCardType(this as unknown as CardType);\n },\n};\n\ntype CardDocument = RxDocument;\ntype CardCollection = RxCollection;\nconst CARDS_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n type: \"object\",\n primaryKey: \"id\",\n properties: {\n // \"{word_id}-{card_type}\" - card_type: 1 = L2 written form, 2 = L2 sound representation, 3 = L1 definition\n id: { type: \"string\", maxLength: 36 },\n dueDate: { type: \"number\" },\n interval: { type: \"integer\", default: INTERVAL_DEFAULT },\n repetition: { type: \"integer\", default: REPETITION_DEFAULT },\n efactor: { type: \"number\", default: EFACTOR_DEFAULT },\n // manual personalised card front, i.e, not just default generated from the dict\n front: { type: [\"string\", \"null\"] },\n // manual personalised card back, i.e, not just default generated from the dict\n back: { type: [\"string\", \"null\"] },\n suspended: { type: \"boolean\", default: false },\n known: { type: \"boolean\", default: false },\n firstRevisionDate: { type: \"number\", default: 0 },\n lastRevisionDate: { type: \"number\", default: 0 },\n firstSuccessDate: { type: \"number\", default: 0 },\n updatedAt: { type: \"number\" },\n },\n};\n\ntype RecentSentencesDocument = RxDocument;\ntype RecentSentencesCollection = RxCollection;\nconst RECENTSENTENCES_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n properties: {\n id: { type: \"string\", maxLength: 36 },\n lzContent: { type: \"string\" },\n // @ts-ignore\n updatedAt: TIMESTAMP,\n },\n indexes: [\"updatedAt\"],\n};\n\ntype SurveyDocument = RxDocument;\ntype SurveyCollection = RxCollection;\nconst SURVEYS_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: {\n ...COMMON_INFO,\n ...{\n surveyJson: { type: \"string\" },\n isObligatory: { type: \"boolean\", default: false },\n },\n },\n};\n\ntype ImportDocument = RxDocument;\ntype ImportCollection = RxCollection;\nconst IMPORTS_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: {\n ...COMMON_INFO,\n ...{\n processing: RXPROCESSING,\n processType: { type: \"number\", default: PROCESS_TYPE.VOCABULARY_ONLY, minimum: 1, maximum: 3, multipleOf: 1 },\n importFile: { type: \"string\" },\n // analysis: { type: [\"string\", \"null\"] },\n shared: { type: \"boolean\", default: false },\n sourceUrl: { type: [\"string\", \"null\"] },\n extraData: { type: [\"string\", \"null\"] },\n },\n },\n indexes: [\"title\", \"processing\", \"processType\", \"createdAt\"],\n};\n\ntype ContentDocument = RxDocument;\ntype ContentCollection = RxCollection;\nconst CONTENTS_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\", \"theImport\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: {\n ...COMMON_INFO,\n ...{\n processing: { ...RXPROCESSING, default: PROCESSING.NONE },\n theImport: { type: \"string\" },\n contentType: { type: \"number\", minimum: 1, maximum: 5, multipleOf: 1 }, // currently max 2 but leaving some fat\n author: { type: [\"string\", \"null\"] },\n cover: { type: [\"string\", \"null\"] },\n lang: { type: [\"string\", \"null\"] },\n shared: { type: \"boolean\", default: false },\n sourceUrl: { type: [\"string\", \"null\"] },\n extraData: { type: [\"string\", \"null\"] },\n },\n },\n indexes: [\"title\", \"processing\", \"contentType\", \"createdAt\"],\n};\n\ntype UserListDocument = RxDocument;\ntype UserListCollection = RxCollection;\nconst USERLISTS_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\", \"theImport\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: {\n ...COMMON_INFO,\n ...{\n processing: RXPROCESSING,\n shared: { type: \"boolean\", default: false },\n onlyDictionaryWords: { type: \"boolean\", default: false },\n wordsAreKnown: { type: \"boolean\", default: false },\n wordKnowledge: { type: \"number\", default: KNOWLEDGE_UNSET },\n nbToTake: { type: \"number\", default: NO_LIMIT },\n theImport: { type: \"string\", maxLength: 36 },\n orderBy: { type: \"number\", default: 0 },\n minimumDocFrequency: { type: \"number\", default: NO_LIMIT },\n minimumAbsFrequency: { type: \"number\", default: NO_LIMIT },\n },\n },\n indexes: [\"title\", \"processing\", \"theImport\", \"createdAt\"],\n};\n\ntype UserSurveyDocument = RxDocument;\ntype UserSurveyCollection = RxCollection;\nconst USERSURVEYS_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\", \"surveyId\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: {\n ...COMMON_INFO,\n ...{\n surveyId: { type: \"string\", maxLength: 36 }, // think about using a proper foreign ref\n data: { type: [\"string\", \"null\"] },\n },\n },\n indexes: [\"surveyId\", \"createdAt\"],\n};\n\ntype GoalDocument = RxDocument;\ntype GoalCollection = RxCollection;\nconst GOALS_SCHEMA: RxJsonSchema = {\n version: 0,\n required: [\"id\", \"userList\"],\n primaryKey: \"id\",\n type: \"object\",\n // @ts-ignore\n properties: {\n ...COMMON_INFO,\n ...{\n parent: { type: [\"string\", \"null\"] },\n userList: { type: \"string\", maxLength: 36 }, // think about using a proper foreign ref\n priority: { type: \"number\", default: 5, minimum: 1, maximum: 10, multipleOf: 1 },\n },\n },\n indexes: [\"title\", \"userList\", \"priority\", \"createdAt\"],\n};\n\nconst DBPullCollections = {\n surveys: {\n schema: SURVEYS_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: false,\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n};\ntype DBPullCollectionsType = typeof DBPullCollections;\ntype DBPullCollectionKeys = keyof DBPullCollectionsType;\n\nconst DBTwoWayCollections = {\n goals: {\n schema: GOALS_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n imports: {\n schema: IMPORTS_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n contents: {\n schema: CONTENTS_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n questionanswers: {\n schema: QUESTION_ANSWER_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n userlists: {\n schema: USERLISTS_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n usersurveys: {\n schema: USERSURVEYS_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n recentsentences: {\n schema: RECENTSENTENCES_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n cards: {\n schema: CARDS_SCHEMA,\n methods: CardDocumentMethods,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n userdictionaries: {\n schema: USER_DICTIONARIES_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n languageclasses: {\n schema: LANGUAGECLASSES_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n teacherregistrations: {\n schema: TEACHERREGISTRATIONS_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n studentregistrations: {\n schema: STUDENTREGISTRATIONS_SCHEMA,\n feedKeys: [\"id\", \"updatedAt\"],\n deletedField: \"deleted\",\n subscription: true,\n subscriptionParams: {\n token: \"String!\",\n },\n checkpointFields: [\"id\", \"updatedAt\"],\n headerFields: [\"Authorization\"],\n },\n};\n\ntype DBTwoWayCollectionsType = typeof DBTwoWayCollections;\ntype DBTwoWayCollectionKeys = keyof typeof DBTwoWayCollections;\n\nconst DBTeacherTwoWayCollections = {};\n\ntype DBTeacherTwoWayCollectionsType = typeof DBTeacherTwoWayCollections;\ntype DBTeacherTwoWayCollectionKeys = keyof typeof DBTeacherTwoWayCollections;\n\nconst DBLocalCollections = {\n requestqueue: { schema: REQUEST_QUEUE_SCHEMA, subscription: false },\n activityqueue: { schema: ACTIVITY_QUEUE_SCHEMA, subscription: false },\n sessions: { schema: SESSION_SCHEMA, subscription: false },\n};\ntype DBLocalCollectionKeys = keyof typeof DBLocalCollections;\ntype DBLocalCollectionsType = typeof DBLocalCollections;\n\nconst DBCollections = {\n ...DBTwoWayCollections,\n ...DBPullCollections,\n ...DBLocalCollections,\n ...DBTeacherTwoWayCollections,\n};\n\nconst DBSyncCollection = {\n ...DBTwoWayCollections,\n ...DBPullCollections,\n ...DBTeacherTwoWayCollections,\n};\n\ntype DBSyncCollectionKeys = DBTwoWayCollectionKeys | DBPullCollectionKeys | DBTeacherTwoWayCollectionKeys;\ntype DBCollectionsType = typeof DBCollections;\ntype DBCollectionKeys = keyof DBCollectionsType;\n\ntype TranscrobesCollections = {\n goals: GoalCollection;\n imports: ImportCollection;\n contents: ContentCollection;\n questionanswers: QuestionAnswerCollection;\n userlists: UserListCollection;\n usersurveys: UserSurveyCollection;\n recentsentences: RecentSentencesCollection;\n cards: CardCollection;\n teacherregistrations: TeacherRegistrationCollection;\n studentregistrations: StudentRegistrationCollection;\n requestqueue: RequestQueueCollection;\n activityqueue: ActivityQueueCollection;\n userdictionaries: UserDictionaryCollection;\n languageclasses: LanguageClassCollection;\n sessions: SessionCollection;\n surveys: SurveyCollection;\n};\ntype TranscrobesCollectionsKeys = keyof TranscrobesCollections;\ntype TranscrobesDatabase = RxDatabase;\n\ntype TranscrobesDocumentTypes =\n | QuestionAnswerDocument\n | RequestQueueDocument\n | ActivityQueueDocument\n | SurveyDocument\n | TeacherRegistrationDocument\n | StudentRegistrationDocument\n | CardDocument\n | ImportDocument\n | ContentDocument\n | UserListDocument\n | UserSurveyDocument\n | GoalDocument\n | RecentSentencesDocument\n | UserDictionaryDocument\n | LanguageClassDocument;\n\nexport {\n BATCH_SIZE_PULL,\n BATCH_SIZE_PUSH,\n CACHE_NAME,\n CARD_TYPES,\n DBCollections,\n DBLocalCollections,\n DBPullCollections,\n DBSyncCollection,\n DBTeacherTwoWayCollections,\n DBTwoWayCollections,\n DEFAULT_BAD_REVIEW_WAIT_SECS,\n EFACTOR_DEFAULT,\n GRADE,\n INITIALISATION_CACHE_NAME,\n KNOWLEDGE_UNSET,\n LIVE_INTERVAL,\n LIVE_INTERVAL_WITH_SUBSCRIPTION,\n getCardId,\n getCardType,\n getCardTypeAsInt,\n getWordId,\n};\n\nexport type {\n ActivityQueueDocument,\n CardDocument,\n ContentDocument,\n DBCollectionKeys,\n DBCollectionsType,\n DBLocalCollectionKeys,\n DBLocalCollectionsType,\n DBPullCollectionKeys,\n DBPullCollectionsType,\n DBSyncCollectionKeys,\n DBTeacherTwoWayCollectionKeys,\n DBTeacherTwoWayCollectionsType,\n DBTwoWayCollectionKeys,\n DBTwoWayCollectionsType,\n GoalDocument,\n ImportDocument,\n LanguageClassDocument,\n RecentSentencesDocument,\n SurveyDocument,\n TranscrobesCollections,\n TranscrobesCollectionsKeys,\n TranscrobesDatabase,\n TranscrobesDocumentTypes,\n UserListDocument,\n UserSurveyDocument,\n};\n","import { styled } from \"@mui/material\";\nimport { WithStylesProps } from \"react-jss\";\nimport { hslToHex } from \"../lib/funclib\";\nimport { LanguagedReaderState, ReaderState, SEGMENTED_BASE_PADDING, UNSURE_ATTRIBUTE } from \"../lib/types\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport SentimentSatisfiedIcon from \"@mui/icons-material/SentimentSatisfied\";\nimport SentimentVeryDissatisfiedIcon from \"@mui/icons-material/SentimentVeryDissatisfied\";\nimport SentimentVerySatisfiedIcon from \"@mui/icons-material/SentimentVerySatisfied\";\nimport { GRADE } from \"../workers/rxdb/Schema\";\nimport { GradesType } from \"../lib/types\";\n\nexport const DEFAULT_FONT_COLOUR = { h: 0, s: 0, l: 0 };\nexport const DEFAULT_GLOSS_BACKGROUND_COLOUR = { h: 0, s: 0, l: 93 };\n\nexport const InfoBox = styled(\"div\")(() => ({\n margin: \"0.7em\",\n}));\n\nexport const ThinHR = styled(\"hr\")(() => ({\n margin: \"0.7em\",\n}));\n\nexport const Conftainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: \"0.3em\",\n width: \"100%\",\n}));\n\nconst textShadow = ({ fontTextShadow }: ReaderState) =>\n fontTextShadow !== \"none\"\n ? `-1px -1px 0 ${fontTextShadow}, 1px -1px 0 ${fontTextShadow}, -1px 1px 0 ${fontTextShadow},\n 1px 1px 0 ${fontTextShadow}, -2px 0 0 ${fontTextShadow}, 2px 0 0 ${fontTextShadow}, 0 2px 0 ${fontTextShadow},\n 0 -2px 0 ${fontTextShadow}`\n : undefined;\n\nconst fontStuff = {\n fontFamily: ({ fontFamilyMain }: ReaderState) =>\n fontFamilyMain && fontFamilyMain !== \"Original\" ? fontFamilyMain : \"inherit\",\n fontSize: ({ fontSize }: ReaderState) => `${fontSize * 100}%`,\n textShadow,\n};\n\nexport const ETFStyles = {\n entry: {\n flexDirection: ({ glossPosition }: ReaderState) => glossPosition,\n alignItems: \"center\",\n display: \"inline-flex\",\n position: \"relative\",\n // cursor: ({ clickable }: ReaderState) => (clickable ? \"pointer\" : \"auto\"),\n cursor: \"pointer\",\n textIndent: 0,\n paddingLeft: (props: LanguagedReaderState) =>\n props.scriptioContinuo && props.segmentation ? (SEGMENTED_BASE_PADDING * props.fontSize * 100) / 100 + \"px\" : \"\",\n },\n word: {\n ...fontStuff,\n color: ({ fontColour }: ReaderState) =>\n fontColour && fontColour !== \"tones\" ? [hslToHex(fontColour), \"!important\"] : \"inherit\",\n },\n wordPinyinColours: fontStuff,\n gloss: {\n [`&[${UNSURE_ATTRIBUTE}]`]: {\n backgroundColor: ({ glossUnsureBackgroundColour }: ReaderState) =>\n glossUnsureBackgroundColour ? [hslToHex(glossUnsureBackgroundColour), \"!important\"] : \"inherit\",\n },\n color: ({ glossFontColour }: ReaderState) =>\n glossFontColour ? [hslToHex(glossFontColour), \"!important\"] : \"inherit\",\n fontFamily: ({ fontFamilyGloss }: ReaderState) =>\n fontFamilyGloss && fontFamilyGloss !== \"Original\" ? fontFamilyGloss : \"inherit\",\n fontSize: ({ glossFontSize, fontSize }: ReaderState) => `${glossFontSize * fontSize * 100}%`,\n verticalAlign: ({ glossFontSize }: ReaderState) => `${(100 - glossFontSize * 100) / 2}%`,\n textShadow,\n },\n};\nexport type ETFStylesType = typeof ETFStyles;\n\nexport interface ETFStylesProps extends WithStylesProps {\n children: React.ReactNode;\n}\n\nconst hard = { id: GRADE.HARD.toString(), content: \"widgets.grades.hard\", icon: };\nconst unknown = {\n id: GRADE.UNKNOWN.toString(),\n content: \"widgets.grades.unknown\",\n icon: ,\n};\nconst good = { id: GRADE.GOOD.toString(), content: \"widgets.grades.good\", icon: };\nconst known = { id: GRADE.KNOWN.toString(), content: \"widgets.grades.known\", icon: };\nexport const GRADES: GradesType[] = [hard, unknown, good, known];\nexport const BASIC_GRADES: GradesType[] = [good, unknown];\n","import { AdminStore } from \"../app/createStore\";\nimport type { DataManager } from \"../data/types\";\nimport { addDefinitions } from \"../features/definition/definitionsSlice\";\nimport { addDictionaryProviders } from \"../features/dictionary/dictionarySlice\";\nimport { getDefaultLanguageDictionaries } from \"./libMethods\";\nimport { DefinitionState, STATUS, SystemLanguage } from \"./types\";\n\nexport async function ensureDefinitionsLoaded(proxy: DataManager, uniqueIds: string[], store: AdminStore) {\n if (uniqueIds.length === 0) return;\n const potentialUserDefinitionGraphs: string[] = [];\n const newDefinitions = await proxy.getDefinitions({ column: \"id\", values: uniqueIds });\n const defStates = new Map();\n const l = newDefinitions.length;\n for (let i = 0; i < l; i++) {\n potentialUserDefinitionGraphs.push(newDefinitions[i].graph);\n defStates.set(newDefinitions[i].graph, newDefinitions[i]);\n }\n\n store.dispatch(addDefinitions([...defStates.values()]));\n}\n\nexport async function refreshDictionaries(store: AdminStore, proxy: DataManager, fromLang: SystemLanguage) {\n const dictionaries = await proxy.getAllFromDB({\n collection: \"userdictionaries\",\n queryObj: {\n selector: { status: { $eq: STATUS.ACTIVE } },\n },\n });\n store.dispatch(\n addDictionaryProviders({\n ...getDefaultLanguageDictionaries(fromLang),\n ...dictionaries.reduce((acc, dico) => {\n return { ...acc, [dico.id]: dico.title };\n }, {} as Record),\n }),\n );\n}\n","import _ from \"lodash\";\nimport { platformHelper } from \"../app/createStore\";\nimport { DataManager } from \"../data/types\";\nimport type { BackgroundWorkerManager } from \"../extension/backgroundfn\";\nimport { soundWithSeparators } from \"./funclib\";\nimport { affixCleaned, bestGuess, cleanedSound, filterKnown, isFakeL1, toSimplePos } from \"./libMethods\";\nimport {\n ACTIVITY_DEBOUNCE,\n ActivitySource,\n ActivityType,\n AnyTreebankPosType,\n BOOCROBES_HEADER_HEIGHT,\n DEFINITION_LOADING,\n DefinitionsState,\n DefinitionState,\n DefinitionType,\n EventCoordinates,\n InputLanguage,\n KnownLanguage,\n KnownWords,\n PopupPosition,\n ReaderState,\n RecentSentencesType,\n REMOVABLE_ADVERB_SUFFIXES,\n REMOVABLE_NOUN_SUFFIXES,\n REMOVABLE_VERB_COMPLEMENTS,\n SentenceType,\n SerialisableStringSet,\n StreamDetails,\n STREAMER_DETAILS,\n Subtitle,\n SupportedStreamer,\n SystemLanguage,\n TokenType,\n USER_STATS_MODE,\n} from \"./types\";\n\nconst NUMBER_POS = new Set([\"OD\", \"NT\", \"CD\"]);\n\nexport async function getNetflixData(proxy: BackgroundWorkerManager, fromLang: InputLanguage, url: string) {\n const urlMatch = url.match(STREAMER_DETAILS.netflix.ui);\n const streamerId = parseInt(urlMatch?.[2] || \"\");\n const canonicalUrl = \"https://\" + urlMatch?.[1]!;\n if (!streamerId) return { error: \"screens.extension.streamer.no_id\" };\n // TODO: the following URL seems to regularly change...\n // See https://greasyfork.org/en/scripts/26654-netflix-subtitle-downloader\n // for inspiration if/when it stops working again.\n const dataUrl = `https://www.netflix.com/nq/website/memberapi/release/metadata?movieid=${streamerId}&_=${Date.now()}`;\n const dataResp = await fetch(dataUrl, { credentials: \"include\" }); // does need credentials\n if (!dataResp.ok) {\n console.warn(\"Bad dataResp\", dataResp);\n return { error: \"screens.extension.streamer.no_data\" };\n }\n\n const netflix = await dataResp.json();\n const { data: nfData } = await proxy.getNetflixData();\n if (!nfData.subs?.[streamerId]) {\n console.warn(\"Bad subsUrl\", nfData);\n return { error: \"screens.extension.streamer.no_available_subs\" };\n }\n const subtitles = await Promise.all(\n nfData.subs[streamerId].map((subsUrl) =>\n fetch(subsUrl.url)\n .then((x) => {\n if (x.ok) {\n return x.text();\n }\n return \"\";\n })\n .then((content) => {\n return { lang: fromLang, url: subsUrl.url, content } as Subtitle;\n }),\n ),\n );\n const showTitle = netflix.video?.title?.toString();\n const showId = netflix.video?.id?.toString();\n let curEpisode: any = null;\n let curSeason: any = null;\n let firstSeason: any = null;\n const availableSeasons = netflix.video?.seasons || [];\n for (const season of availableSeasons) {\n if (season.seq === 1) {\n firstSeason = season;\n }\n for (const episode of season.episodes) {\n if (episode.id === streamerId) {\n curEpisode = episode;\n curSeason = season;\n }\n }\n }\n\n const duration = parseInt(curEpisode?.runtime || netflix.video?.runtime || \"0\");\n const year = firstSeason?.year || netflix.video?.year || 0;\n const episode = parseInt(curEpisode?.seq?.toString() || \"0\") || undefined;\n const episodeTitle = curEpisode?.title?.toString();\n const category = netflix.video.type === \"show\" ? \"series\" : netflix.video.type === \"movie\" ? \"movie\" : \"unknown\";\n const streamDets: StreamDetails = {\n streamer: \"netflix\",\n streamerId: streamerId.toString(),\n canonicalUrl,\n duration,\n seasonTitle: curSeason?.longName || curSeason?.shortName,\n seasonShortName: curSeason?.shortName,\n seasonId: curSeason?.id?.toString(),\n streamType: \"full\", // can this be something else?\n episode,\n episodeTitle,\n seasonNumber: curSeason?.seq,\n seasonYear: curSeason?.year,\n category,\n showTitle,\n showId,\n // country,\n language: nfData.language,\n year,\n // showGenre,\n subtitles,\n };\n return { data: streamDets };\n}\n\nexport async function getWord(lemma: string): Promise {\n return await platformHelper.getWordFromDBs(lemma);\n}\n\nexport async function syncDefs(baseUrl: string): Promise {\n platformHelper.forceDefinitionsSync(baseUrl);\n}\n\nexport function getStreamerVideoElement(document: Document, streamer: SupportedStreamer) {\n let wrapper: HTMLDivElement | undefined = undefined;\n switch (streamer) {\n case \"youku\":\n wrapper = document.getElementById(\"ykPlayer\") as HTMLDivElement;\n break;\n case \"netflix\":\n // there might be a better div, like
0 ? defs.filter((x) => !!x) : [];\n}\n\nexport async function getDefinitionsForToken(\n token: TokenType,\n definitions: DefinitionsState,\n): Promise {\n const defs = getDefinitionsForTokenByIds(token, definitions);\n return (defs.length > 0 ? defs : [await getWord(token.l)]).filter((x) => !!x);\n}\n\nexport async function getL1(\n token: TokenType,\n definitions: DefinitionsState,\n fromLang: InputLanguage,\n toLang: KnownLanguage,\n readerConfig: ReaderState,\n defaultL1: string,\n): Promise {\n // FIXME: the following used to just rely on something provided in the model for best guess, if present. That is fast\n // but means the gen should be done in the python... But it's almost certainly better done here, and as we *are* doing\n // modifying anyway, so let's no longer use the python, unless there is nothing else!\n\n // // FIXME: just doing affixCleaned here is a bit of a hack. It would probably be better to not put rubbish in the\n // // first place... so do this in the Python...\n // if (\n // defaultL1 &&\n // !readerConfig.strictProviderOrdering &&\n // affixCleaned(defaultL1) === defaultL1 &&\n // !(\n // token.id &&\n // token.id in definitions &&\n // isFakeL1(cleanedSound(definitions[token.id], fromLang), defaultL1, fromLang, false)\n // )\n // ) {\n // return defaultL1;\n // }\n let gloss = defaultL1;\n const defs = await getDefinitionsForToken(token, definitions);\n if (defs[0] && defs[0].providerTranslations) {\n gloss = bestGuess(token, defs, fromLang, toLang, readerConfig);\n } else {\n gloss = DEFINITION_LOADING;\n }\n\n return gloss || defaultL1;\n}\n\nexport async function getSound(\n token: TokenType,\n definitions: DefinitionsState,\n fromLang: InputLanguage,\n): Promise {\n if (token.p) return token.p;\n if (token.id && definitions[token.id]) {\n return cleanedSound(definitions[token.id], fromLang);\n } else {\n const w = await getWord(token.l);\n return w ? cleanedSound(w, fromLang) : [];\n }\n}\n\nexport async function getNormalGloss(\n token: TokenType,\n readerConfig: ReaderState,\n uCardWords: Partial,\n definitions: DefinitionsState,\n fromLang: InputLanguage,\n toLang: KnownLanguage,\n): Promise {\n const { glossing } = readerConfig;\n // FIXME: decide whether to forget about the python bg...\n let gloss = token.bg ? token.bg.split(\",\")[0].split(\";\")[0] : \"\";\n if (glossing == USER_STATS_MODE.L1) {\n gloss = await getL1(token, definitions, fromLang, toLang, readerConfig, gloss);\n } else if (glossing == USER_STATS_MODE.L2_SIMPLIFIED) {\n gloss = await getL2Simplified(token, gloss, uCardWords, definitions, fromLang, toLang, readerConfig);\n } else if (glossing == USER_STATS_MODE.TRANSLITERATION) {\n gloss = (await getSound(token, definitions, fromLang))\n .map((sound, i) => soundWithSeparators(sound, i, fromLang))\n .join(\"\");\n } else if (glossing == USER_STATS_MODE.TRANSLITERATION_L1) {\n gloss = `${(await getSound(token, definitions, fromLang))\n .map((sound, i) => soundWithSeparators(sound, i, fromLang))\n .join(\"\")}: ${await getL1(token, definitions, fromLang, toLang, readerConfig, gloss)}`;\n }\n return gloss;\n}\n\nexport async function getTranslation(input: SentenceType): Promise {\n return await platformHelper.sentenceTranslation(originalSentenceFromTokens(input.t));\n}\n\nexport async function getRecentSentences(\n token: TokenType,\n definition: DefinitionType,\n): Promise {\n if (!token.pos || !token.id) return null;\n const existingRSents = new Map(await platformHelper.getRecentSentences([definition.id]));\n const recents = existingRSents.get(definition.id);\n if (!recents) return null; // nothing found\n const posRecents = recents.posSentences[token.pos];\n if (!posRecents || posRecents.length === 0) return null; // nothing found\n\n for (const pr of posRecents) {\n for (const t of pr.sentence.t) {\n if (t.l == token.l && t.pos === token.pos) {\n t.style = { color: \"green\", \"font-weight\": \"bold\" };\n }\n }\n }\n\n return { id: token.id, posSentences: { [token.pos]: posRecents } };\n}\n\nfunction originalSentenceFromTokens(tokens: TokenType[]): string {\n // currently just use\n return tokens.map((x) => x.l + (x.a || \"\")).join(\"\");\n}\n\nexport async function getL2Simplified(\n token: TokenType,\n previousGloss: string,\n uCardWords: Partial,\n definitions: DefinitionsState,\n fromLang: InputLanguage,\n toLang: KnownLanguage,\n readerConfig: ReaderState,\n): Promise {\n let gloss = previousGloss;\n // server-side set user known synonym\n if (token.us && token.us.length > 0) {\n gloss = token.us[0];\n } else {\n // try and get a local user known synonym\n const defs = await getDefinitionsForToken(token, definitions);\n if (!defs[0]) return DEFINITION_LOADING;\n // FIXME: should I just be using the first here? why? why not?\n const syns = defs[0].synonyms.filter((x) => toSimplePos(x.posTag, fromLang) === toSimplePos(token.pos!, fromLang));\n\n let innerGloss: string | undefined;\n if (syns && syns.length > 0) {\n const userSynonyms = filterKnown(uCardWords.knownWordGraphs || {}, syns[0].values);\n if (userSynonyms.length > 0) {\n innerGloss = userSynonyms[0];\n }\n }\n gloss = innerGloss || gloss || bestGuess(token, defs, fromLang, toLang, readerConfig);\n }\n return gloss;\n}\n\nexport function isNumberToken(pos?: AnyTreebankPosType): boolean {\n return !!pos && NUMBER_POS.has(pos);\n}\n\nexport function eventCoordinates(event: React.MouseEvent): EventCoordinates {\n return {\n eventX: window.frameElement ? event.clientX : event.pageX,\n eventY: window.frameElement ? event.clientY + BOOCROBES_HEADER_HEIGHT : event.pageY,\n };\n}\n\nfunction getActivityUrl(url: string): string {\n if (url.includes(\"/api/v1/data/content/\")) {\n // We are in the iframe, and need to convert the url to the parent url\n const urlObj = new URL(url);\n return `${urlObj.origin}/#/contents/${url.split(\"/api/v1/data/content/\")[1].split(\"/\")[0]}/read`;\n } else {\n return url;\n }\n}\n\nexport async function submitActivity(\n proxy: DataManager,\n activityType: ActivityType,\n activitySource: ActivitySource,\n url: string,\n sessionId: string,\n getTimestamp: () => number,\n) {\n // FIXME: currently disabled\n // const timestamp = getTimestamp();\n // if (!timestamp) throw new Error(\"No timestamp\");\n // const activity = {\n // id: UUID().toString(),\n // asessionId: sessionId,\n // activityType,\n // activitySource,\n // url: getActivityUrl(url),\n // timestamp,\n // } as UserActivityType;\n // await proxy.submitActivityEvent(activity);\n}\n\nexport function sessionActivityUpdate(proxy: DataManager, sessionId: string) {\n function updateSessionActivity() {\n proxy.refreshSession({\n id: sessionId,\n timestamp: Date.now(),\n });\n }\n let events = [\"load\", \"mousedown\", \"mousemove\", \"keydown\", \"scroll\", \"touchstart\"];\n events.forEach((name) => {\n document.addEventListener(name, _.debounce(updateSessionActivity, ACTIVITY_DEBOUNCE), true);\n });\n}\n\nexport function positionPopup(\n popupWidth: number,\n eventX: number,\n eventY: number,\n popupParent: HTMLElement,\n isFullscreenVideo?: boolean,\n): PopupPosition {\n const position: PopupPosition = {\n overflow: \"auto\",\n left: \"\",\n top: \"\",\n maxHeight: \"\",\n };\n\n const maxWidth = Math.max(\n popupParent.ownerDocument.documentElement.scrollWidth,\n popupParent.ownerDocument.documentElement.clientWidth,\n );\n\n if (eventX < popupWidth / 2) {\n position.left = window.scrollX + \"px\";\n } else if (maxWidth < eventX + popupWidth / 2) {\n const clientWidth = popupParent.ownerDocument.documentElement.clientWidth;\n position.left = `${window.scrollX + clientWidth - popupWidth}px`;\n } else {\n const left = Math.max(window.scrollX, eventX - popupWidth / 2);\n const again = Math.min(left, window.scrollX + popupParent.ownerDocument.documentElement.clientWidth - popupWidth);\n position.left = `${again}px`;\n }\n let translateDown = 20;\n if (window.frameElement) {\n translateDown += BOOCROBES_HEADER_HEIGHT;\n }\n const pTop = eventY + translateDown;\n position.top = `${pTop}px`;\n if (isFullscreenVideo) {\n const maxHeight = popupParent.ownerDocument.documentElement.clientHeight - pTop;\n position.maxHeight = `${maxHeight}px`;\n }\n return position;\n}\n\nexport function isUnsure(definition?: DefinitionType) {\n return (\n definition &&\n definition.providerTranslations.length > 0 &&\n definition.providerTranslations.flatMap((pt) => (pt.provider !== \"fbk\" ? pt.posTranslations : [])).length === 0\n );\n}\n\nexport async function guessBetter(\n defin: DefinitionState,\n fromLang: InputLanguage,\n knownCardWordGraphs: SerialisableStringSet,\n): Promise {\n switch (fromLang) {\n case \"en\":\n return defin;\n case \"zh-Hans\":\n let newDefinition: DefinitionType | null = null;\n let cleanGraph = affixCleaned(defin.graph);\n if (cleanGraph !== defin.graph) {\n newDefinition = await getWord(cleanGraph);\n if (newDefinition && (cleanGraph in knownCardWordGraphs || !isUnsure(newDefinition))) {\n return newDefinition;\n }\n }\n if (!isUnsure(defin)) {\n // we only want to continue from here if we are unsure about the original definition\n return defin;\n }\n if (cleanGraph.length === 4) {\n if (cleanGraph[0] === cleanGraph[1] && cleanGraph[2] === cleanGraph[3]) {\n // 干干净净 -> 干净\n newDefinition = await getWord(cleanGraph[0] + cleanGraph[2]);\n } else if (cleanGraph[0] === cleanGraph[2] && cleanGraph[1] === cleanGraph[3]) {\n // 讨论讨论 -> 讨论\n newDefinition = await getWord(cleanGraph[0] + cleanGraph[1]);\n }\n if (newDefinition && !isUnsure(newDefinition)) {\n return newDefinition;\n }\n } else if (cleanGraph.length === 2 && cleanGraph[0] === cleanGraph[1]) {\n // 看看 -> 看\n // double character that isn't in the dictionary - it's basically just the same word twice, not a new word...\n return (await getWord(cleanGraph[0])) || defin;\n } else if (cleanGraph.length === 3 && cleanGraph[1] === \"一\" && cleanGraph[0] === cleanGraph[2]) {\n // 看一看 -> 看\n return (await getWord(cleanGraph[0])) || defin;\n } else if (cleanGraph.length === 3 && cleanGraph[0] === cleanGraph[1]) {\n // 见见面 -> 见面\n newDefinition = await getWord(cleanGraph[1] + cleanGraph[2]);\n if (newDefinition && !isUnsure(newDefinition)) {\n return newDefinition;\n }\n }\n\n // this is maybe a bit dangerous... but we are unsure anyway, so why not!\n // see https://resources.allsetlearning.com/chinese/grammar/Complement#Summary_of_complement_types\n if (\n cleanGraph.length > 1 &&\n [...REMOVABLE_NOUN_SUFFIXES, ...REMOVABLE_ADVERB_SUFFIXES, ...REMOVABLE_VERB_COMPLEMENTS].includes(\n cleanGraph.slice(-1),\n )\n ) {\n newDefinition = await getWord(cleanGraph.slice(0, -1));\n if (newDefinition && !isUnsure(newDefinition)) {\n return newDefinition;\n }\n }\n return defin;\n }\n}\n","var isArray = Array.isArray;\nfunction isStringOrNumber(o) {\n var type = typeof o;\n return type === 'string' || type === 'number';\n}\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nfunction isFunction(o) {\n return typeof o === 'function';\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isNumber(o) {\n return typeof o === 'number';\n}\nfunction isNull(o) {\n return o === null;\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\nfunction combineFrom(first, second) {\n var out = {};\n if (first) {\n for (var key in first) {\n out[key] = first[key];\n }\n }\n if (second) {\n for (var _key in second) {\n out[_key] = second[_key];\n }\n }\n return out;\n}\n\n/**\n * Links given data to event as first parameter\n * @param {*} data data to be linked, it will be available in function as first parameter\n * @param {Function} event Function to be called when event occurs\n * @returns {{data: *, event: Function}}\n */\nfunction linkEvent(data, event) {\n if (isFunction(event)) {\n return {\n data: data,\n event: event\n };\n }\n return null; // Return null when event is invalid, to avoid creating unnecessary event handlers\n}\n// object.event should always be function, otherwise its badly created object.\nfunction isLinkEventObject(o) {\n return !isNull(o) && typeof o === 'object';\n}\n\n// We need EMPTY_OBJ defined in one place.\n// It's used for comparison, so we can't inline it into shared\nvar EMPTY_OBJ = {};\n// @ts-ignore\nvar Fragment = '$F';\nvar AnimationQueues = function AnimationQueues() {\n this.componentDidAppear = [];\n this.componentWillDisappear = [];\n this.componentWillMove = [];\n};\nfunction normalizeEventName(name) {\n return name.substring(2).toLowerCase();\n}\nfunction appendChild(parentDOM, dom) {\n parentDOM.appendChild(dom);\n}\nfunction insertOrAppend(parentDOM, newNode, nextNode) {\n if (isNull(nextNode)) {\n appendChild(parentDOM, newNode);\n } else {\n parentDOM.insertBefore(newNode, nextNode);\n }\n}\nfunction documentCreateElement(tag, isSVG) {\n if (isSVG) {\n return document.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n return document.createElement(tag);\n}\nfunction replaceChild(parentDOM, newDom, lastDom) {\n parentDOM.replaceChild(newDom, lastDom);\n}\nfunction removeChild(parentDOM, childNode) {\n parentDOM.removeChild(childNode);\n}\nfunction callAll(arrayFn) {\n for (var i = 0; i < arrayFn.length; i++) {\n arrayFn[i]();\n }\n}\nfunction findChildVNode(vNode, startEdge, flags) {\n var children = vNode.children;\n if (flags & 4 /* VNodeFlags.ComponentClass */) {\n return children.$LI;\n }\n if (flags & 8192 /* VNodeFlags.Fragment */) {\n return vNode.childFlags === 2 /* ChildFlags.HasVNodeChildren */ ? children : children[startEdge ? 0 : children.length - 1];\n }\n return children;\n}\nfunction findDOMFromVNode(vNode, startEdge) {\n var flags;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 1521 /* VNodeFlags.DOMRef */) {\n return vNode.dom;\n }\n vNode = findChildVNode(vNode, startEdge, flags);\n }\n return null;\n}\nfunction callAllAnimationHooks(animationQueue, callback) {\n var animationsLeft = animationQueue.length;\n // Picking from the top because it is faster, invocation order should be irrelevant\n // since all animations are to be run and we can't predict the order in which they complete.\n var fn;\n while ((fn = animationQueue.pop()) !== undefined) {\n fn(function () {\n if (--animationsLeft <= 0 && isFunction(callback)) {\n callback();\n }\n });\n }\n}\nfunction callAllMoveAnimationHooks(animationQueue) {\n // Start the animations.\n for (var i = 0; i < animationQueue.length; i++) {\n animationQueue[i].fn();\n }\n // Perform the actual DOM moves when all measurements of initial\n // position have been performed. The rest of the animations are done\n // async.\n for (var _i = 0; _i < animationQueue.length; _i++) {\n var tmp = animationQueue[_i];\n insertOrAppend(tmp.parent, tmp.dom, tmp.next);\n }\n animationQueue.splice(0, animationQueue.length);\n}\nfunction clearVNodeDOM(vNode, parentDOM, deferredRemoval) {\n do {\n var flags = vNode.flags;\n if (flags & 1521 /* VNodeFlags.DOMRef */) {\n // On deferred removals the node might disappear because of later operations\n if (!deferredRemoval || vNode.dom.parentNode === parentDOM) {\n removeChild(parentDOM, vNode.dom);\n }\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* VNodeFlags.ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* VNodeFlags.ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* VNodeFlags.Fragment */) {\n if (vNode.childFlags === 2 /* ChildFlags.HasVNodeChildren */) {\n vNode = children;\n } else {\n for (var i = 0, len = children.length; i < len; ++i) {\n clearVNodeDOM(children[i], parentDOM, false);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction createDeferComponentClassRemovalCallback(vNode, parentDOM) {\n return function () {\n // Mark removal as deferred to trigger check that node still exists\n clearVNodeDOM(vNode, parentDOM, true);\n };\n}\nfunction removeVNodeDOM(vNode, parentDOM, animations) {\n if (animations.componentWillDisappear.length > 0) {\n // Wait until animations are finished before removing actual dom nodes\n callAllAnimationHooks(animations.componentWillDisappear, createDeferComponentClassRemovalCallback(vNode, parentDOM));\n } else {\n clearVNodeDOM(vNode, parentDOM, false);\n }\n}\nfunction addMoveAnimationHook(animations, parentVNode, refOrInstance, dom, parentDOM, nextNode, flags, props) {\n animations.componentWillMove.push({\n dom: dom,\n fn: function fn() {\n if (flags & 4 /* VNodeFlags.ComponentClass */) {\n refOrInstance.componentWillMove(parentVNode, parentDOM, dom);\n } else if (flags & 8 /* VNodeFlags.ComponentFunction */) {\n refOrInstance.onComponentWillMove(parentVNode, parentDOM, dom, props);\n }\n },\n next: nextNode,\n parent: parentDOM\n });\n}\nfunction moveVNodeDOM(parentVNode, vNode, parentDOM, nextNode, animations) {\n var refOrInstance;\n var instanceProps;\n var instanceFlags = vNode.flags;\n do {\n var flags = vNode.flags;\n if (flags & 1521 /* VNodeFlags.DOMRef */) {\n if (!isNullOrUndef(refOrInstance) && (isFunction(refOrInstance.componentWillMove) || isFunction(refOrInstance.onComponentWillMove))) {\n addMoveAnimationHook(animations, parentVNode, refOrInstance, vNode.dom, parentDOM, nextNode, instanceFlags, instanceProps);\n } else {\n // TODO: Should we delay this too to support mixing animated moves with regular?\n insertOrAppend(parentDOM, vNode.dom, nextNode);\n }\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* VNodeFlags.ComponentClass */) {\n refOrInstance = vNode.children;\n // TODO: We should probably deprecate this in V9 since it is inconsitent with other class component hooks\n instanceProps = vNode.props;\n vNode = children.$LI;\n } else if (flags & 8 /* VNodeFlags.ComponentFunction */) {\n refOrInstance = vNode.ref;\n instanceProps = vNode.props;\n vNode = children;\n } else if (flags & 8192 /* VNodeFlags.Fragment */) {\n if (vNode.childFlags === 2 /* ChildFlags.HasVNodeChildren */) {\n vNode = children;\n } else {\n for (var i = 0, len = children.length; i < len; ++i) {\n moveVNodeDOM(parentVNode, children[i], parentDOM, nextNode, animations);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction createDerivedState(instance, nextProps, state) {\n if (instance.constructor.getDerivedStateFromProps) {\n return combineFrom(state, instance.constructor.getDerivedStateFromProps(nextProps, state));\n }\n return state;\n}\nvar renderCheck = {\n v: false\n};\nvar options = {\n componentComparator: null,\n createVNode: null,\n renderComplete: null\n};\nfunction setTextContent(dom, children) {\n dom.textContent = children;\n}\n// Calling this function assumes, nextValue is linkEvent\nfunction isLastValueSameLinkEvent(lastValue, nextValue) {\n return isLinkEventObject(lastValue) && lastValue.event === nextValue.event && lastValue.data === nextValue.data;\n}\nfunction mergeUnsetProperties(to, from) {\n for (var propName in from) {\n if (isUndefined(to[propName])) {\n to[propName] = from[propName];\n }\n }\n return to;\n}\nfunction safeCall1(method, arg1) {\n return !!isFunction(method) && (method(arg1), true);\n}\n\nvar keyPrefix = '$';\nfunction V(childFlags, children, className, flags, key, props, ref, type) {\n this.childFlags = childFlags;\n this.children = children;\n this.className = className;\n this.dom = null;\n this.flags = flags;\n this.key = key === void 0 ? null : key;\n this.props = props === void 0 ? null : props;\n this.ref = ref === void 0 ? null : ref;\n this.type = type;\n}\nfunction createVNode(flags, type, className, children, childFlags, props, key, ref) {\n var childFlag = childFlags === void 0 ? 1 /* ChildFlags.HasInvalidChildren */ : childFlags;\n var vNode = new V(childFlag, children, className, flags, key, props, ref, type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n if (childFlag === 0 /* ChildFlags.UnknownChildren */) {\n normalizeChildren(vNode, vNode.children);\n }\n return vNode;\n}\nfunction mergeDefaultHooks(flags, type, ref) {\n if (flags & 4 /* VNodeFlags.ComponentClass */) {\n return ref;\n }\n var defaultHooks = (flags & 32768 /* VNodeFlags.ForwardRef */ ? type.render : type).defaultHooks;\n if (isNullOrUndef(defaultHooks)) {\n return ref;\n }\n if (isNullOrUndef(ref)) {\n return defaultHooks;\n }\n return mergeUnsetProperties(ref, defaultHooks);\n}\nfunction mergeDefaultProps(flags, type, props) {\n // set default props\n var defaultProps = (flags & 32768 /* VNodeFlags.ForwardRef */ ? type.render : type).defaultProps;\n if (isNullOrUndef(defaultProps)) {\n return props;\n }\n if (isNullOrUndef(props)) {\n return combineFrom(defaultProps, null);\n }\n return mergeUnsetProperties(props, defaultProps);\n}\nfunction resolveComponentFlags(flags, type) {\n if (flags & 12 /* VNodeFlags.ComponentKnown */) {\n return flags;\n }\n if (type.prototype && type.prototype.render) {\n return 4 /* VNodeFlags.ComponentClass */;\n }\n\n if (type.render) {\n return 32776 /* VNodeFlags.ForwardRefComponent */;\n }\n\n return 8 /* VNodeFlags.ComponentFunction */;\n}\n\nfunction createComponentVNode(flags, type, props, key, ref) {\n flags = resolveComponentFlags(flags, type);\n var vNode = new V(1 /* ChildFlags.HasInvalidChildren */, null, null, flags, key, mergeDefaultProps(flags, type, props), mergeDefaultHooks(flags, type, ref), type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n return vNode;\n}\nfunction createTextVNode(text, key) {\n return new V(1 /* ChildFlags.HasInvalidChildren */, isNullOrUndef(text) || text === true || text === false ? '' : text, null, 16 /* VNodeFlags.Text */, key, null, null, null);\n}\nfunction createFragment(children, childFlags, key) {\n var fragment = createVNode(8192 /* VNodeFlags.Fragment */, 8192 /* VNodeFlags.Fragment */, null, children, childFlags, null, key, null);\n switch (fragment.childFlags) {\n case 1 /* ChildFlags.HasInvalidChildren */:\n fragment.children = createVoidVNode();\n fragment.childFlags = 2 /* ChildFlags.HasVNodeChildren */;\n break;\n case 16 /* ChildFlags.HasTextChildren */:\n fragment.children = [createTextVNode(children)];\n fragment.childFlags = 4 /* ChildFlags.HasNonKeyedChildren */;\n break;\n }\n return fragment;\n}\nfunction normalizeProps(vNode) {\n var props = vNode.props;\n if (props) {\n var flags = vNode.flags;\n if (flags & 481 /* VNodeFlags.Element */) {\n if (props.children !== void 0 && isNullOrUndef(vNode.children)) {\n normalizeChildren(vNode, props.children);\n }\n if (props.className !== void 0) {\n if (isNullOrUndef(vNode.className)) {\n vNode.className = props.className || null;\n }\n props.className = undefined;\n }\n }\n if (props.key !== void 0) {\n vNode.key = props.key;\n props.key = undefined;\n }\n if (props.ref !== void 0) {\n if (flags & 8 /* VNodeFlags.ComponentFunction */) {\n vNode.ref = combineFrom(vNode.ref, props.ref);\n } else {\n vNode.ref = props.ref;\n }\n props.ref = undefined;\n }\n }\n return vNode;\n}\n/*\n * Fragment is different from normal vNode,\n * because when it needs to be cloned we need to clone its children too\n * But not normalize, because otherwise those possibly get KEY and re-mount\n */\nfunction cloneFragment(vNodeToClone) {\n var oldChildren = vNodeToClone.children;\n var childFlags = vNodeToClone.childFlags;\n return createFragment(childFlags === 2 /* ChildFlags.HasVNodeChildren */ ? directClone(oldChildren) : oldChildren.map(directClone), childFlags, vNodeToClone.key);\n}\nfunction directClone(vNodeToClone) {\n var flags = vNodeToClone.flags & -16385 /* VNodeFlags.ClearInUse */;\n var props = vNodeToClone.props;\n if (flags & 14 /* VNodeFlags.Component */) {\n if (!isNull(props)) {\n var propsToClone = props;\n props = {};\n for (var key in propsToClone) {\n props[key] = propsToClone[key];\n }\n }\n }\n if ((flags & 8192 /* VNodeFlags.Fragment */) === 0) {\n return new V(vNodeToClone.childFlags, vNodeToClone.children, vNodeToClone.className, flags, vNodeToClone.key, props, vNodeToClone.ref, vNodeToClone.type);\n }\n return cloneFragment(vNodeToClone);\n}\nfunction createVoidVNode() {\n return createTextVNode('', null);\n}\nfunction createPortal(children, container) {\n var normalizedRoot = normalizeRoot(children);\n return createVNode(1024 /* VNodeFlags.Portal */, 1024 /* VNodeFlags.Portal */, null, normalizedRoot, 0 /* ChildFlags.UnknownChildren */, null, normalizedRoot.key, container);\n}\nfunction _normalizeVNodes(nodes, result, index, currentKey) {\n for (var len = nodes.length; index < len; index++) {\n var n = nodes[index];\n if (!isInvalid(n)) {\n var newKey = currentKey + keyPrefix + index;\n if (isArray(n)) {\n _normalizeVNodes(n, result, 0, newKey);\n } else {\n if (isStringOrNumber(n)) {\n n = createTextVNode(n, newKey);\n } else {\n var oldKey = n.key;\n var isPrefixedKey = isString(oldKey) && oldKey[0] === keyPrefix;\n if (n.flags & 81920 /* VNodeFlags.InUseOrNormalized */ || isPrefixedKey) {\n n = directClone(n);\n }\n n.flags |= 65536 /* VNodeFlags.Normalized */;\n if (!isPrefixedKey) {\n if (isNull(oldKey)) {\n n.key = newKey;\n } else {\n n.key = currentKey + oldKey;\n }\n } else if (oldKey.substring(0, currentKey.length) !== currentKey) {\n n.key = currentKey + oldKey;\n }\n }\n result.push(n);\n }\n }\n }\n}\nfunction getFlagsForElementVnode(type) {\n switch (type) {\n case 'svg':\n return 32 /* VNodeFlags.SvgElement */;\n case 'input':\n return 64 /* VNodeFlags.InputElement */;\n case 'select':\n return 256 /* VNodeFlags.SelectElement */;\n case 'textarea':\n return 128 /* VNodeFlags.TextareaElement */;\n // @ts-ignore\n case Fragment:\n return 8192 /* VNodeFlags.Fragment */;\n default:\n return 1 /* VNodeFlags.HtmlElement */;\n }\n}\n\nfunction normalizeChildren(vNode, children) {\n var newChildren;\n var newChildFlags = 1 /* ChildFlags.HasInvalidChildren */;\n // Don't change children to match strict equal (===) true in patching\n if (isInvalid(children)) {\n newChildren = children;\n } else if (isStringOrNumber(children)) {\n newChildFlags = 16 /* ChildFlags.HasTextChildren */;\n newChildren = children;\n } else if (isArray(children)) {\n var len = children.length;\n for (var i = 0; i < len; ++i) {\n var n = children[i];\n if (isInvalid(n) || isArray(n)) {\n newChildren = newChildren || children.slice(0, i);\n _normalizeVNodes(children, newChildren, i, '');\n break;\n } else if (isStringOrNumber(n)) {\n newChildren = newChildren || children.slice(0, i);\n newChildren.push(createTextVNode(n, keyPrefix + i));\n } else {\n var key = n.key;\n var needsCloning = (n.flags & 81920 /* VNodeFlags.InUseOrNormalized */) > 0;\n var isNullKey = isNull(key);\n var isPrefixed = isString(key) && key[0] === keyPrefix;\n if (needsCloning || isNullKey || isPrefixed) {\n newChildren = newChildren || children.slice(0, i);\n if (needsCloning || isPrefixed) {\n n = directClone(n);\n }\n if (isNullKey || isPrefixed) {\n n.key = keyPrefix + i;\n }\n newChildren.push(n);\n } else if (newChildren) {\n newChildren.push(n);\n }\n n.flags |= 65536 /* VNodeFlags.Normalized */;\n }\n }\n\n newChildren = newChildren || children;\n if (newChildren.length === 0) {\n newChildFlags = 1 /* ChildFlags.HasInvalidChildren */;\n } else {\n newChildFlags = 8 /* ChildFlags.HasKeyedChildren */;\n }\n } else {\n newChildren = children;\n newChildren.flags |= 65536 /* VNodeFlags.Normalized */;\n if (children.flags & 81920 /* VNodeFlags.InUseOrNormalized */) {\n newChildren = directClone(children);\n }\n newChildFlags = 2 /* ChildFlags.HasVNodeChildren */;\n }\n\n vNode.children = newChildren;\n vNode.childFlags = newChildFlags;\n return vNode;\n}\nfunction normalizeRoot(input) {\n if (isInvalid(input) || isStringOrNumber(input)) {\n return createTextVNode(input, null);\n }\n if (isArray(input)) {\n return createFragment(input, 0 /* ChildFlags.UnknownChildren */, null);\n }\n return input.flags & 16384 /* VNodeFlags.InUse */ ? directClone(input) : input;\n}\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar namespaces = {\n 'xlink:actuate': xlinkNS,\n 'xlink:arcrole': xlinkNS,\n 'xlink:href': xlinkNS,\n 'xlink:role': xlinkNS,\n 'xlink:show': xlinkNS,\n 'xlink:title': xlinkNS,\n 'xlink:type': xlinkNS,\n 'xml:base': xmlNS,\n 'xml:lang': xmlNS,\n 'xml:space': xmlNS\n};\n\nfunction getDelegatedEventObject(v) {\n return {\n onClick: v,\n onDblClick: v,\n onFocusIn: v,\n onFocusOut: v,\n onKeyDown: v,\n onKeyPress: v,\n onKeyUp: v,\n onMouseDown: v,\n onMouseMove: v,\n onMouseUp: v,\n onTouchEnd: v,\n onTouchMove: v,\n onTouchStart: v\n };\n}\nvar attachedEventCounts = getDelegatedEventObject(0);\nvar attachedEvents = getDelegatedEventObject(null);\nvar syntheticEvents = getDelegatedEventObject(true);\nfunction updateOrAddSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (!eventsObject) {\n eventsObject = dom.$EV = getDelegatedEventObject(null);\n }\n if (!eventsObject[name]) {\n if (++attachedEventCounts[name] === 1) {\n attachedEvents[name] = attachEventToDocument(name);\n }\n }\n return eventsObject;\n}\nfunction unmountSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (eventsObject && eventsObject[name]) {\n if (--attachedEventCounts[name] === 0) {\n document.removeEventListener(normalizeEventName(name), attachedEvents[name]);\n attachedEvents[name] = null;\n }\n eventsObject[name] = null;\n }\n}\nfunction handleSyntheticEvent(name, lastEvent, nextEvent, dom) {\n if (isFunction(nextEvent)) {\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n } else if (isLinkEventObject(nextEvent)) {\n if (isLastValueSameLinkEvent(lastEvent, nextEvent)) {\n return;\n }\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n } else {\n unmountSyntheticEvent(name, dom);\n }\n}\n// When browsers fully support event.composedPath we could loop it through instead of using parentNode property\nfunction getTargetNode(event) {\n return isFunction(event.composedPath) ? event.composedPath()[0] : event.target;\n}\nfunction dispatchEvents(event, isClick, name, eventData) {\n var dom = getTargetNode(event);\n do {\n // Html Nodes can be nested fe: span inside button in that scenario browser does not handle disabled attribute on parent,\n // because the event listener is on document.body\n // Don't process clicks on disabled elements\n if (isClick && dom.disabled) {\n return;\n }\n var eventsObject = dom.$EV;\n if (eventsObject) {\n var currentEvent = eventsObject[name];\n if (currentEvent) {\n // linkEvent object\n eventData.dom = dom;\n currentEvent.event ? currentEvent.event(currentEvent.data, event) : currentEvent(event);\n if (event.cancelBubble) {\n return;\n }\n }\n }\n dom = dom.parentNode;\n } while (!isNull(dom));\n}\nfunction stopPropagation() {\n this.cancelBubble = true;\n if (!this.immediatePropagationStopped) {\n this.stopImmediatePropagation();\n }\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction extendEventProperties(event) {\n // Event data needs to be object to save reference to currentTarget getter\n var eventData = {\n dom: document\n };\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n event.stopPropagation = stopPropagation;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n get: function get() {\n return eventData.dom;\n }\n });\n return eventData;\n}\nfunction rootClickEvent(name) {\n return function (event) {\n if (event.button !== 0) {\n // Firefox incorrectly triggers click event for mid/right mouse buttons.\n // This bug has been active for 17 years.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=184051\n event.stopPropagation();\n return;\n }\n dispatchEvents(event, true, name, extendEventProperties(event));\n };\n}\nfunction rootEvent(name) {\n return function (event) {\n dispatchEvents(event, false, name, extendEventProperties(event));\n };\n}\nfunction attachEventToDocument(name) {\n var attachedEvent = name === 'onClick' || name === 'onDblClick' ? rootClickEvent(name) : rootEvent(name);\n document.addEventListener(normalizeEventName(name), attachedEvent);\n return attachedEvent;\n}\n\nfunction isSameInnerHTML(dom, innerHTML) {\n var tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\n\nfunction triggerEventListener(props, methodName, e) {\n if (props[methodName]) {\n var listener = props[methodName];\n if (listener.event) {\n listener.event(listener.data, e);\n } else {\n listener(e);\n }\n } else {\n var nativeListenerName = methodName.toLowerCase();\n if (props[nativeListenerName]) {\n props[nativeListenerName](e);\n }\n }\n}\nfunction createWrappedFunction(methodName, applyValue) {\n var fnMethod = function fnMethod(e) {\n var vNode = this.$V;\n // If vNode is gone by the time event fires, no-op\n if (!vNode) {\n return;\n }\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n if (isString(methodName)) {\n triggerEventListener(props, methodName, e);\n } else {\n for (var i = 0; i < methodName.length; ++i) {\n triggerEventListener(props, methodName[i], e);\n }\n }\n if (isFunction(applyValue)) {\n var newVNode = this.$V;\n var newProps = newVNode.props || EMPTY_OBJ;\n applyValue(newProps, dom, false, newVNode);\n }\n };\n Object.defineProperty(fnMethod, 'wrapped', {\n configurable: false,\n enumerable: false,\n value: true,\n writable: false\n });\n return fnMethod;\n}\n\nfunction attachEvent(dom, eventName, handler) {\n var previousKey = \"$\" + eventName;\n var previousArgs = dom[previousKey];\n if (previousArgs) {\n if (previousArgs[1].wrapped) {\n return;\n }\n dom.removeEventListener(previousArgs[0], previousArgs[1]);\n dom[previousKey] = null;\n }\n if (isFunction(handler)) {\n dom.addEventListener(eventName, handler);\n dom[previousKey] = [eventName, handler];\n }\n}\n\nfunction isCheckedType(type) {\n return type === 'checkbox' || type === 'radio';\n}\nvar onTextInputChange = createWrappedFunction('onInput', applyValueInput);\nvar wrappedOnChange$1 = createWrappedFunction(['onClick', 'onChange'], applyValueInput);\n/* tslint:disable-next-line:no-empty */\nfunction emptywrapper(event) {\n event.stopPropagation();\n}\nemptywrapper.wrapped = true;\nfunction inputEvents(dom, nextPropsOrEmpty) {\n if (isCheckedType(nextPropsOrEmpty.type)) {\n attachEvent(dom, 'change', wrappedOnChange$1);\n attachEvent(dom, 'click', emptywrapper);\n } else {\n attachEvent(dom, 'input', onTextInputChange);\n }\n}\nfunction applyValueInput(nextPropsOrEmpty, dom) {\n var type = nextPropsOrEmpty.type;\n var value = nextPropsOrEmpty.value;\n var checked = nextPropsOrEmpty.checked;\n var multiple = nextPropsOrEmpty.multiple;\n var defaultValue = nextPropsOrEmpty.defaultValue;\n var hasValue = !isNullOrUndef(value);\n if (type && type !== dom.type) {\n dom.setAttribute('type', type);\n }\n if (!isNullOrUndef(multiple) && multiple !== dom.multiple) {\n dom.multiple = multiple;\n }\n if (!isNullOrUndef(defaultValue) && !hasValue) {\n dom.defaultValue = defaultValue + '';\n }\n if (isCheckedType(type)) {\n if (hasValue) {\n dom.value = value;\n }\n if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n } else {\n if (hasValue && dom.value !== value) {\n dom.defaultValue = value;\n dom.value = value;\n } else if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n}\n\nfunction updateChildOptions(vNode, value) {\n if (vNode.type === 'option') {\n updateChildOption(vNode, value);\n } else {\n var children = vNode.children;\n var flags = vNode.flags;\n if (flags & 4 /* VNodeFlags.ComponentClass */) {\n updateChildOptions(children.$LI, value);\n } else if (flags & 8 /* VNodeFlags.ComponentFunction */) {\n updateChildOptions(children, value);\n } else if (vNode.childFlags === 2 /* ChildFlags.HasVNodeChildren */) {\n updateChildOptions(children, value);\n } else if (vNode.childFlags & 12 /* ChildFlags.MultipleChildren */) {\n for (var i = 0, len = children.length; i < len; ++i) {\n updateChildOptions(children[i], value);\n }\n }\n }\n}\nfunction updateChildOption(vNode, value) {\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n // we do this as multiple may have changed\n dom.value = props.value;\n if (props.value === value || isArray(value) && value.indexOf(props.value) !== -1) {\n dom.selected = true;\n } else if (!isNullOrUndef(value) || !isNullOrUndef(props.selected)) {\n dom.selected = props.selected || false;\n }\n}\nvar onSelectChange = createWrappedFunction('onChange', applyValueSelect);\nfunction selectEvents(dom) {\n attachEvent(dom, 'change', onSelectChange);\n}\nfunction applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode) {\n var multiplePropInBoolean = Boolean(nextPropsOrEmpty.multiple);\n if (!isNullOrUndef(nextPropsOrEmpty.multiple) && multiplePropInBoolean !== dom.multiple) {\n dom.multiple = multiplePropInBoolean;\n }\n var index = nextPropsOrEmpty.selectedIndex;\n if (index === -1) {\n dom.selectedIndex = -1;\n }\n var childFlags = vNode.childFlags;\n if (childFlags !== 1 /* ChildFlags.HasInvalidChildren */) {\n var value = nextPropsOrEmpty.value;\n if (isNumber(index) && index > -1 && dom.options[index]) {\n value = dom.options[index].value;\n }\n if (mounting && isNullOrUndef(value)) {\n value = nextPropsOrEmpty.defaultValue;\n }\n updateChildOptions(vNode, value);\n }\n}\n\nvar onTextareaInputChange = createWrappedFunction('onInput', applyValueTextArea);\nvar wrappedOnChange = createWrappedFunction('onChange');\nfunction textAreaEvents(dom, nextPropsOrEmpty) {\n attachEvent(dom, 'input', onTextareaInputChange);\n if (nextPropsOrEmpty.onChange) {\n attachEvent(dom, 'change', wrappedOnChange);\n }\n}\nfunction applyValueTextArea(nextPropsOrEmpty, dom, mounting) {\n var value = nextPropsOrEmpty.value;\n var domValue = dom.value;\n if (isNullOrUndef(value)) {\n if (mounting) {\n var defaultValue = nextPropsOrEmpty.defaultValue;\n if (!isNullOrUndef(defaultValue) && defaultValue !== domValue) {\n dom.defaultValue = defaultValue;\n dom.value = defaultValue;\n }\n }\n } else if (domValue !== value) {\n /* There is value so keep it controlled */\n dom.defaultValue = value;\n dom.value = value;\n }\n}\n\nfunction processElement(flags, vNode, dom, nextPropsOrEmpty, mounting, isControlled) {\n if (flags & 64 /* VNodeFlags.InputElement */) {\n applyValueInput(nextPropsOrEmpty, dom);\n } else if (flags & 256 /* VNodeFlags.SelectElement */) {\n applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode);\n } else if (flags & 128 /* VNodeFlags.TextareaElement */) {\n applyValueTextArea(nextPropsOrEmpty, dom, mounting);\n }\n if (isControlled) {\n dom.$V = vNode;\n }\n}\nfunction addFormElementEventHandlers(flags, dom, nextPropsOrEmpty) {\n if (flags & 64 /* VNodeFlags.InputElement */) {\n inputEvents(dom, nextPropsOrEmpty);\n } else if (flags & 256 /* VNodeFlags.SelectElement */) {\n selectEvents(dom);\n } else if (flags & 128 /* VNodeFlags.TextareaElement */) {\n textAreaEvents(dom, nextPropsOrEmpty);\n }\n}\nfunction isControlledFormElement(nextPropsOrEmpty) {\n return nextPropsOrEmpty.type && isCheckedType(nextPropsOrEmpty.type) ? !isNullOrUndef(nextPropsOrEmpty.checked) : !isNullOrUndef(nextPropsOrEmpty.value);\n}\n\nfunction createRef() {\n return {\n current: null\n };\n}\n// TODO: Make this return value typed\nfunction forwardRef(render) {\n var ref = {\n render: render\n };\n // @ts-ignore\n return ref;\n}\nfunction unmountRef(ref) {\n if (ref) {\n if (!safeCall1(ref, null) && ref.current) {\n ref.current = null;\n }\n }\n}\nfunction mountRef(ref, value, lifecycle) {\n if (ref && (isFunction(ref) || ref.current !== void 0)) {\n lifecycle.push(function () {\n if (!safeCall1(ref, value) && ref.current !== void 0) {\n ref.current = value;\n }\n });\n }\n}\n\nfunction remove(vNode, parentDOM, animations) {\n unmount(vNode, animations);\n removeVNodeDOM(vNode, parentDOM, animations);\n}\nfunction unmount(vNode, animations) {\n var flags = vNode.flags;\n var children = vNode.children;\n var ref;\n if (flags & 481 /* VNodeFlags.Element */) {\n ref = vNode.ref;\n var props = vNode.props;\n unmountRef(ref);\n var childFlags = vNode.childFlags;\n if (!isNull(props)) {\n var keys = Object.keys(props);\n for (var i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n if (syntheticEvents[key]) {\n unmountSyntheticEvent(key, vNode.dom);\n }\n }\n }\n if (childFlags & 12 /* ChildFlags.MultipleChildren */) {\n unmountAllChildren(children, animations);\n } else if (childFlags === 2 /* ChildFlags.HasVNodeChildren */) {\n unmount(children, animations);\n }\n } else if (children) {\n if (flags & 4 /* VNodeFlags.ComponentClass */) {\n if (isFunction(children.componentWillUnmount)) {\n // TODO: Possible entrypoint\n children.componentWillUnmount();\n }\n // If we have a componentWillDisappear on this component, block children from animating\n var childAnimations = animations;\n if (isFunction(children.componentWillDisappear)) {\n childAnimations = new AnimationQueues();\n addDisappearAnimationHook(animations, children, children.$LI.dom, flags, undefined);\n }\n unmountRef(vNode.ref);\n children.$UN = true;\n unmount(children.$LI, childAnimations);\n } else if (flags & 8 /* VNodeFlags.ComponentFunction */) {\n // If we have a onComponentWillDisappear on this component, block children from animating\n var _childAnimations = animations;\n ref = vNode.ref;\n if (!isNullOrUndef(ref)) {\n var domEl = null;\n if (isFunction(ref.onComponentWillUnmount)) {\n domEl = findDOMFromVNode(vNode, true);\n ref.onComponentWillUnmount(domEl, vNode.props || EMPTY_OBJ);\n }\n if (isFunction(ref.onComponentWillDisappear)) {\n _childAnimations = new AnimationQueues();\n domEl = domEl || findDOMFromVNode(vNode, true);\n addDisappearAnimationHook(animations, ref, domEl, flags, vNode.props);\n }\n }\n unmount(children, _childAnimations);\n } else if (flags & 1024 /* VNodeFlags.Portal */) {\n remove(children, vNode.ref, animations);\n } else if (flags & 8192 /* VNodeFlags.Fragment */) {\n if (vNode.childFlags & 12 /* ChildFlags.MultipleChildren */) {\n unmountAllChildren(children, animations);\n }\n }\n }\n}\nfunction unmountAllChildren(children, animations) {\n for (var i = 0, len = children.length; i < len; ++i) {\n unmount(children[i], animations);\n }\n}\nfunction createClearAllCallback(children, parentDOM) {\n return function () {\n // We need to remove children one by one because elements can be added during animation\n if (parentDOM) {\n for (var i = 0; i < children.length; i++) {\n var vNode = children[i];\n clearVNodeDOM(vNode, parentDOM, false);\n }\n }\n };\n}\nfunction clearDOM(parentDOM, children, animations) {\n if (animations.componentWillDisappear.length > 0) {\n // Wait until animations are finished before removing actual dom nodes\n // Be aware that the element could be removed by a later operation\n callAllAnimationHooks(animations.componentWillDisappear, createClearAllCallback(children, parentDOM));\n } else {\n // Optimization for clearing dom\n parentDOM.textContent = '';\n }\n}\nfunction removeAllChildren(dom, vNode, children, animations) {\n unmountAllChildren(children, animations);\n if (vNode.flags & 8192 /* VNodeFlags.Fragment */) {\n removeVNodeDOM(vNode, dom, animations);\n } else {\n clearDOM(dom, children, animations);\n }\n}\n// Only add animations to queue in browser\nfunction addDisappearAnimationHook(animations, instanceOrRef, dom, flags, props) {\n animations.componentWillDisappear.push(function (callback) {\n if (flags & 4 /* VNodeFlags.ComponentClass */) {\n instanceOrRef.componentWillDisappear(dom, callback);\n } else if (flags & 8 /* VNodeFlags.ComponentFunction */) {\n instanceOrRef.onComponentWillDisappear(dom, props, callback);\n }\n });\n}\n\nfunction wrapLinkEvent(nextValue) {\n // This variable makes sure there is no \"this\" context in callback\n var ev = nextValue.event;\n return function (e) {\n ev(nextValue.data, e);\n };\n}\nfunction patchEvent(name, lastValue, nextValue, dom) {\n if (isLinkEventObject(nextValue)) {\n if (isLastValueSameLinkEvent(lastValue, nextValue)) {\n return;\n }\n nextValue = wrapLinkEvent(nextValue);\n }\n attachEvent(dom, normalizeEventName(name), nextValue);\n}\n// We are assuming here that we come from patchProp routine\n// -nextAttrValue cannot be null or undefined\nfunction patchStyle(lastAttrValue, nextAttrValue, dom) {\n if (isNullOrUndef(nextAttrValue)) {\n dom.removeAttribute('style');\n return;\n }\n var domStyle = dom.style;\n var style;\n var value;\n if (isString(nextAttrValue)) {\n domStyle.cssText = nextAttrValue;\n return;\n }\n if (!isNullOrUndef(lastAttrValue) && !isString(lastAttrValue)) {\n for (style in nextAttrValue) {\n // do not add a hasOwnProperty check here, it affects performance\n value = nextAttrValue[style];\n if (value !== lastAttrValue[style]) {\n domStyle.setProperty(style, value);\n }\n }\n for (style in lastAttrValue) {\n if (isNullOrUndef(nextAttrValue[style])) {\n domStyle.removeProperty(style);\n }\n }\n } else {\n for (style in nextAttrValue) {\n value = nextAttrValue[style];\n domStyle.setProperty(style, value);\n }\n }\n}\nfunction patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom, animations) {\n var lastHtml = lastValue && lastValue.__html || '';\n var nextHtml = nextValue && nextValue.__html || '';\n if (lastHtml !== nextHtml) {\n if (!isNullOrUndef(nextHtml) && !isSameInnerHTML(dom, nextHtml)) {\n if (!isNull(lastVNode)) {\n if (lastVNode.childFlags & 12 /* ChildFlags.MultipleChildren */) {\n unmountAllChildren(lastVNode.children, animations);\n } else if (lastVNode.childFlags === 2 /* ChildFlags.HasVNodeChildren */) {\n unmount(lastVNode.children, animations);\n }\n lastVNode.children = null;\n lastVNode.childFlags = 1 /* ChildFlags.HasInvalidChildren */;\n }\n\n dom.innerHTML = nextHtml;\n }\n }\n}\nfunction patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode, animations) {\n switch (prop) {\n case 'children':\n case 'childrenType':\n case 'className':\n case 'defaultValue':\n case 'key':\n case 'multiple':\n case 'ref':\n case 'selectedIndex':\n break;\n case 'autoFocus':\n dom.autofocus = !!nextValue;\n break;\n case 'allowfullscreen':\n case 'autoplay':\n case 'capture':\n case 'checked':\n case 'controls':\n case 'default':\n case 'disabled':\n case 'hidden':\n case 'indeterminate':\n case 'loop':\n case 'muted':\n case 'novalidate':\n case 'open':\n case 'readOnly':\n case 'required':\n case 'reversed':\n case 'scoped':\n case 'seamless':\n case 'selected':\n dom[prop] = !!nextValue;\n break;\n case 'defaultChecked':\n case 'value':\n case 'volume':\n if (hasControlledValue && prop === 'value') {\n break;\n }\n var value = isNullOrUndef(nextValue) ? '' : nextValue;\n if (dom[prop] !== value) {\n dom[prop] = value;\n }\n break;\n case 'style':\n patchStyle(lastValue, nextValue, dom);\n break;\n case 'dangerouslySetInnerHTML':\n patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom, animations);\n break;\n default:\n if (syntheticEvents[prop]) {\n handleSyntheticEvent(prop, lastValue, nextValue, dom);\n } else if (prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110) {\n patchEvent(prop, lastValue, nextValue, dom);\n } else if (isNullOrUndef(nextValue)) {\n dom.removeAttribute(prop);\n } else if (isSVG && namespaces[prop]) {\n // We optimize for isSVG being false\n // If we end up in this path we can read property again\n dom.setAttributeNS(namespaces[prop], prop, nextValue);\n } else {\n dom.setAttribute(prop, nextValue);\n }\n break;\n }\n}\nfunction mountProps(vNode, flags, props, dom, isSVG, animations) {\n var hasControlledValue = false;\n var isFormElement = (flags & 448 /* VNodeFlags.FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(props);\n if (hasControlledValue) {\n addFormElementEventHandlers(flags, dom, props);\n }\n }\n for (var prop in props) {\n // do not add a hasOwnProperty check here, it affects performance\n patchProp(prop, null, props[prop], dom, isSVG, hasControlledValue, null, animations);\n }\n if (isFormElement) {\n processElement(flags, vNode, dom, props, true, hasControlledValue);\n }\n}\n\nfunction renderNewInput(instance, props, context) {\n var nextInput = normalizeRoot(instance.render(props, instance.state, context));\n var childContext = context;\n if (isFunction(instance.getChildContext)) {\n childContext = combineFrom(context, instance.getChildContext());\n }\n instance.$CX = childContext;\n return nextInput;\n}\nfunction createClassComponentInstance(vNode, Component, props, context, isSVG, lifecycle) {\n var instance = new Component(props, context);\n var usesNewAPI = instance.$N = Boolean(Component.getDerivedStateFromProps || instance.getSnapshotBeforeUpdate);\n instance.$SVG = isSVG;\n instance.$L = lifecycle;\n vNode.children = instance;\n instance.$BS = false;\n instance.context = context;\n if (instance.props === EMPTY_OBJ) {\n instance.props = props;\n }\n if (!usesNewAPI) {\n if (isFunction(instance.componentWillMount)) {\n instance.$BR = true;\n instance.componentWillMount();\n var pending = instance.$PS;\n if (!isNull(pending)) {\n var state = instance.state;\n if (isNull(state)) {\n instance.state = pending;\n } else {\n for (var key in pending) {\n state[key] = pending[key];\n }\n }\n instance.$PS = null;\n }\n instance.$BR = false;\n }\n } else {\n instance.state = createDerivedState(instance, props, instance.state);\n }\n instance.$LI = renderNewInput(instance, props, context);\n return instance;\n}\nfunction renderFunctionalComponent(vNode, context) {\n var props = vNode.props || EMPTY_OBJ;\n return vNode.flags & 32768 /* VNodeFlags.ForwardRef */ ? vNode.type.render(props, vNode.ref, context) : vNode.type(props, context);\n}\n\nfunction mount(vNode, parentDOM, context, isSVG, nextNode, lifecycle, animations) {\n var flags = vNode.flags |= 16384 /* VNodeFlags.InUse */;\n if (flags & 481 /* VNodeFlags.Element */) {\n mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n } else if (flags & 4 /* VNodeFlags.ComponentClass */) {\n mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n } else if (flags & 8 /* VNodeFlags.ComponentFunction */) {\n mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n } else if (flags & 16 /* VNodeFlags.Text */) {\n mountText(vNode, parentDOM, nextNode);\n } else if (flags & 8192 /* VNodeFlags.Fragment */) {\n mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle, animations);\n } else if (flags & 1024 /* VNodeFlags.Portal */) {\n mountPortal(vNode, context, parentDOM, nextNode, lifecycle, animations);\n } else ;\n}\nfunction mountPortal(vNode, context, parentDOM, nextNode, lifecycle, animations) {\n mount(vNode.children, vNode.ref, context, false, null, lifecycle, animations);\n var placeHolderVNode = createVoidVNode();\n mountText(placeHolderVNode, parentDOM, nextNode);\n vNode.dom = placeHolderVNode.dom;\n}\nfunction mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle, animations) {\n var children = vNode.children;\n var childFlags = vNode.childFlags;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (childFlags & 12 /* ChildFlags.MultipleChildren */ && children.length === 0) {\n childFlags = vNode.childFlags = 2 /* ChildFlags.HasVNodeChildren */;\n children = vNode.children = createVoidVNode();\n }\n if (childFlags === 2 /* ChildFlags.HasVNodeChildren */) {\n mount(children, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n } else {\n mountArrayChildren(children, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n }\n}\nfunction mountText(vNode, parentDOM, nextNode) {\n var dom = vNode.dom = document.createTextNode(vNode.children);\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n}\nfunction mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle, animations) {\n var flags = vNode.flags;\n var props = vNode.props;\n var className = vNode.className;\n var childFlags = vNode.childFlags;\n var dom = vNode.dom = documentCreateElement(vNode.type, isSVG = isSVG || (flags & 32 /* VNodeFlags.SvgElement */) > 0);\n var children = vNode.children;\n if (!isNullOrUndef(className) && className !== '') {\n if (isSVG) {\n dom.setAttribute('class', className);\n } else {\n dom.className = className;\n }\n }\n if (childFlags === 16 /* ChildFlags.HasTextChildren */) {\n setTextContent(dom, children);\n } else if (childFlags !== 1 /* ChildFlags.HasInvalidChildren */) {\n var childrenIsSVG = isSVG && vNode.type !== 'foreignObject';\n if (childFlags === 2 /* ChildFlags.HasVNodeChildren */) {\n if (children.flags & 16384 /* VNodeFlags.InUse */) {\n vNode.children = children = directClone(children);\n }\n mount(children, dom, context, childrenIsSVG, null, lifecycle, animations);\n } else if (childFlags === 8 /* ChildFlags.HasKeyedChildren */ || childFlags === 4 /* ChildFlags.HasNonKeyedChildren */) {\n mountArrayChildren(children, dom, context, childrenIsSVG, null, lifecycle, animations);\n }\n }\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n if (!isNull(props)) {\n mountProps(vNode, flags, props, dom, isSVG, animations);\n }\n mountRef(vNode.ref, dom, lifecycle);\n}\nfunction mountArrayChildren(children, dom, context, isSVG, nextNode, lifecycle, animations) {\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n if (child.flags & 16384 /* VNodeFlags.InUse */) {\n children[i] = child = directClone(child);\n }\n mount(child, dom, context, isSVG, nextNode, lifecycle, animations);\n }\n}\nfunction mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle, animations) {\n var instance = createClassComponentInstance(vNode, vNode.type, vNode.props || EMPTY_OBJ, context, isSVG, lifecycle);\n // If we have a componentDidAppear on this component, we shouldn't allow children to animate so we're passing an dummy animations queue\n var childAnimations = animations;\n if (isFunction(instance.componentDidAppear)) {\n childAnimations = new AnimationQueues();\n }\n mount(instance.$LI, parentDOM, instance.$CX, isSVG, nextNode, lifecycle, childAnimations);\n mountClassComponentCallbacks(vNode.ref, instance, lifecycle, animations);\n}\nfunction mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle, animations) {\n var ref = vNode.ref;\n // If we have a componentDidAppear on this component, we shouldn't allow children to animate so we're passing an dummy animations queue\n var childAnimations = animations;\n if (!isNullOrUndef(ref) && isFunction(ref.onComponentDidAppear)) {\n childAnimations = new AnimationQueues();\n }\n mount(vNode.children = normalizeRoot(renderFunctionalComponent(vNode, context)), parentDOM, context, isSVG, nextNode, lifecycle, childAnimations);\n mountFunctionalComponentCallbacks(vNode, lifecycle, animations);\n}\nfunction createClassMountCallback(instance) {\n return function () {\n instance.componentDidMount();\n };\n}\nfunction addAppearAnimationHook(animations, instanceOrRef, dom, flags, props) {\n animations.componentDidAppear.push(function () {\n if (flags & 4 /* VNodeFlags.ComponentClass */) {\n instanceOrRef.componentDidAppear(dom);\n } else if (flags & 8 /* VNodeFlags.ComponentFunction */) {\n instanceOrRef.onComponentDidAppear(dom, props);\n }\n });\n}\nfunction mountClassComponentCallbacks(ref, instance, lifecycle, animations) {\n mountRef(ref, instance, lifecycle);\n if (isFunction(instance.componentDidMount)) {\n lifecycle.push(createClassMountCallback(instance));\n }\n if (isFunction(instance.componentDidAppear)) {\n addAppearAnimationHook(animations, instance, instance.$LI.dom, 4 /* VNodeFlags.ComponentClass */, undefined);\n }\n}\nfunction createOnMountCallback(ref, vNode) {\n return function () {\n ref.onComponentDidMount(findDOMFromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n };\n}\nfunction mountFunctionalComponentCallbacks(vNode, lifecycle, animations) {\n var ref = vNode.ref;\n if (!isNullOrUndef(ref)) {\n safeCall1(ref.onComponentWillMount, vNode.props || EMPTY_OBJ);\n if (isFunction(ref.onComponentDidMount)) {\n lifecycle.push(createOnMountCallback(ref, vNode));\n }\n if (isFunction(ref.onComponentDidAppear)) {\n addAppearAnimationHook(animations, ref, findDOMFromVNode(vNode, true), 8 /* VNodeFlags.ComponentFunction */, vNode.props);\n }\n }\n}\n\nfunction replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle, animations) {\n unmount(lastVNode, animations);\n if ((nextVNode.flags & lastVNode.flags & 1521 /* VNodeFlags.DOMRef */) !== 0) {\n mount(nextVNode, null, context, isSVG, null, lifecycle, animations);\n // Single DOM operation, when we have dom references available\n replaceChild(parentDOM, nextVNode.dom, lastVNode.dom);\n } else {\n mount(nextVNode, parentDOM, context, isSVG, findDOMFromVNode(lastVNode, true), lifecycle, animations);\n removeVNodeDOM(lastVNode, parentDOM, animations);\n }\n}\nfunction patch(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle, animations) {\n var nextFlags = nextVNode.flags |= 16384 /* VNodeFlags.InUse */;\n if (lastVNode.flags !== nextFlags || lastVNode.type !== nextVNode.type || lastVNode.key !== nextVNode.key || nextFlags & 2048 /* VNodeFlags.ReCreate */) {\n if (lastVNode.flags & 16384 /* VNodeFlags.InUse */) {\n replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle, animations);\n } else {\n // Last vNode is not in use, it has crashed at application level. Just mount nextVNode and ignore last one\n mount(nextVNode, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n }\n } else if (nextFlags & 481 /* VNodeFlags.Element */) {\n patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle, animations);\n } else if (nextFlags & 4 /* VNodeFlags.ComponentClass */) {\n patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n } else if (nextFlags & 8 /* VNodeFlags.ComponentFunction */) {\n patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n } else if (nextFlags & 16 /* VNodeFlags.Text */) {\n patchText(lastVNode, nextVNode);\n } else if (nextFlags & 8192 /* VNodeFlags.Fragment */) {\n patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle, animations);\n } else {\n patchPortal(lastVNode, nextVNode, context, lifecycle, animations);\n }\n}\nfunction patchSingleTextChild(lastChildren, nextChildren, parentDOM) {\n if (lastChildren !== nextChildren) {\n if (lastChildren !== '') {\n parentDOM.firstChild.nodeValue = nextChildren;\n } else {\n setTextContent(parentDOM, nextChildren);\n }\n }\n}\nfunction patchContentEditableChildren(dom, nextChildren) {\n if (dom.textContent !== nextChildren) {\n dom.textContent = nextChildren;\n }\n}\nfunction patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle, animations) {\n var lastChildren = lastVNode.children;\n var nextChildren = nextVNode.children;\n var lastChildFlags = lastVNode.childFlags;\n var nextChildFlags = nextVNode.childFlags;\n var nextNode = null;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (nextChildFlags & 12 /* ChildFlags.MultipleChildren */ && nextChildren.length === 0) {\n nextChildFlags = nextVNode.childFlags = 2 /* ChildFlags.HasVNodeChildren */;\n nextChildren = nextVNode.children = createVoidVNode();\n }\n var nextIsSingle = (nextChildFlags & 2 /* ChildFlags.HasVNodeChildren */) !== 0;\n if (lastChildFlags & 12 /* ChildFlags.MultipleChildren */) {\n var lastLen = lastChildren.length;\n // We need to know Fragment's edge node when\n if (\n // It uses keyed algorithm\n lastChildFlags & 8 /* ChildFlags.HasKeyedChildren */ && nextChildFlags & 8 /* ChildFlags.HasKeyedChildren */ ||\n // It transforms from many to single\n nextIsSingle ||\n // It will append more nodes\n !nextIsSingle && nextChildren.length > lastLen) {\n // When fragment has multiple children there is always at least one vNode\n nextNode = findDOMFromVNode(lastChildren[lastLen - 1], false).nextSibling;\n }\n }\n patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lastVNode, lifecycle, animations);\n}\nfunction patchPortal(lastVNode, nextVNode, context, lifecycle, animations) {\n var lastContainer = lastVNode.ref;\n var nextContainer = nextVNode.ref;\n var nextChildren = nextVNode.children;\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, lastContainer, context, false, null, lastVNode, lifecycle, animations);\n nextVNode.dom = lastVNode.dom;\n if (lastContainer !== nextContainer && !isInvalid(nextChildren)) {\n var node = nextChildren.dom;\n removeChild(lastContainer, node);\n appendChild(nextContainer, node);\n }\n}\nfunction patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle, animations) {\n var dom = nextVNode.dom = lastVNode.dom;\n var lastProps = lastVNode.props;\n var nextProps = nextVNode.props;\n var isFormElement = false;\n var hasControlledValue = false;\n var nextPropsOrEmpty;\n isSVG = isSVG || (nextFlags & 32 /* VNodeFlags.SvgElement */) > 0;\n // inlined patchProps -- starts --\n if (lastProps !== nextProps) {\n var lastPropsOrEmpty = lastProps || EMPTY_OBJ;\n nextPropsOrEmpty = nextProps || EMPTY_OBJ;\n if (nextPropsOrEmpty !== EMPTY_OBJ) {\n isFormElement = (nextFlags & 448 /* VNodeFlags.FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(nextPropsOrEmpty);\n }\n for (var prop in nextPropsOrEmpty) {\n var lastValue = lastPropsOrEmpty[prop];\n var nextValue = nextPropsOrEmpty[prop];\n if (lastValue !== nextValue) {\n patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode, animations);\n }\n }\n }\n if (lastPropsOrEmpty !== EMPTY_OBJ) {\n for (var _prop in lastPropsOrEmpty) {\n if (isNullOrUndef(nextPropsOrEmpty[_prop]) && !isNullOrUndef(lastPropsOrEmpty[_prop])) {\n patchProp(_prop, lastPropsOrEmpty[_prop], null, dom, isSVG, hasControlledValue, lastVNode, animations);\n }\n }\n }\n }\n var nextChildren = nextVNode.children;\n var nextClassName = nextVNode.className;\n // inlined patchProps -- ends --\n if (lastVNode.className !== nextClassName) {\n if (isNullOrUndef(nextClassName)) {\n dom.removeAttribute('class');\n } else if (isSVG) {\n dom.setAttribute('class', nextClassName);\n } else {\n dom.className = nextClassName;\n }\n }\n if (nextFlags & 4096 /* VNodeFlags.ContentEditable */) {\n patchContentEditableChildren(dom, nextChildren);\n } else {\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, dom, context, isSVG && nextVNode.type !== 'foreignObject', null, lastVNode, lifecycle, animations);\n }\n if (isFormElement) {\n processElement(nextFlags, nextVNode, dom, nextPropsOrEmpty, false, hasControlledValue);\n }\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, dom, lifecycle);\n }\n}\nfunction replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle, animations) {\n unmount(lastChildren, animations);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, findDOMFromVNode(lastChildren, true), lifecycle, animations);\n removeVNodeDOM(lastChildren, parentDOM, animations);\n}\nfunction patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, parentVNode, lifecycle, animations) {\n switch (lastChildFlags) {\n case 2 /* ChildFlags.HasVNodeChildren */:\n switch (nextChildFlags) {\n case 2 /* ChildFlags.HasVNodeChildren */:\n patch(lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n break;\n case 1 /* ChildFlags.HasInvalidChildren */:\n remove(lastChildren, parentDOM, animations);\n break;\n case 16 /* ChildFlags.HasTextChildren */:\n unmount(lastChildren, animations);\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle, animations);\n break;\n }\n break;\n case 1 /* ChildFlags.HasInvalidChildren */:\n switch (nextChildFlags) {\n case 2 /* ChildFlags.HasVNodeChildren */:\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n break;\n case 1 /* ChildFlags.HasInvalidChildren */:\n break;\n case 16 /* ChildFlags.HasTextChildren */:\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n break;\n }\n break;\n case 16 /* ChildFlags.HasTextChildren */:\n switch (nextChildFlags) {\n case 16 /* ChildFlags.HasTextChildren */:\n patchSingleTextChild(lastChildren, nextChildren, parentDOM);\n break;\n case 2 /* ChildFlags.HasVNodeChildren */:\n clearDOM(parentDOM, lastChildren, animations);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n break;\n case 1 /* ChildFlags.HasInvalidChildren */:\n clearDOM(parentDOM, lastChildren, animations);\n break;\n default:\n clearDOM(parentDOM, lastChildren, animations);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n break;\n }\n break;\n default:\n switch (nextChildFlags) {\n case 16 /* ChildFlags.HasTextChildren */:\n unmountAllChildren(lastChildren, animations);\n setTextContent(parentDOM, nextChildren);\n break;\n case 2 /* ChildFlags.HasVNodeChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren, animations);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n break;\n case 1 /* ChildFlags.HasInvalidChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren, animations);\n break;\n default:\n var lastLength = lastChildren.length | 0;\n var nextLength = nextChildren.length | 0;\n // Fast path's for both algorithms\n if (lastLength === 0) {\n if (nextLength > 0) {\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n }\n } else if (nextLength === 0) {\n removeAllChildren(parentDOM, parentVNode, lastChildren, animations);\n } else if (nextChildFlags === 8 /* ChildFlags.HasKeyedChildren */ && lastChildFlags === 8 /* ChildFlags.HasKeyedChildren */) {\n patchKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, parentVNode, lifecycle, animations);\n } else {\n patchNonKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, lifecycle, animations);\n }\n break;\n }\n break;\n }\n}\nfunction createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle) {\n lifecycle.push(function () {\n instance.componentDidUpdate(lastProps, lastState, snapshot);\n });\n}\nfunction updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, force, nextNode, lifecycle, animations) {\n var lastState = instance.state;\n var lastProps = instance.props;\n var usesNewAPI = Boolean(instance.$N);\n var hasSCU = isFunction(instance.shouldComponentUpdate);\n if (usesNewAPI) {\n nextState = createDerivedState(instance, nextProps, nextState !== lastState ? combineFrom(lastState, nextState) : nextState);\n }\n if (force || !hasSCU || hasSCU && instance.shouldComponentUpdate(nextProps, nextState, context)) {\n if (!usesNewAPI && isFunction(instance.componentWillUpdate)) {\n instance.componentWillUpdate(nextProps, nextState, context);\n }\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n var snapshot = null;\n var nextInput = renderNewInput(instance, nextProps, context);\n if (usesNewAPI && isFunction(instance.getSnapshotBeforeUpdate)) {\n snapshot = instance.getSnapshotBeforeUpdate(lastProps, lastState);\n }\n patch(instance.$LI, nextInput, parentDOM, instance.$CX, isSVG, nextNode, lifecycle, animations);\n // Don't update Last input, until patch has been successfully executed\n instance.$LI = nextInput;\n if (isFunction(instance.componentDidUpdate)) {\n createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle);\n }\n } else {\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n }\n}\nfunction patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle, animations) {\n var instance = nextVNode.children = lastVNode.children;\n // If Component has crashed, ignore it to stay functional\n if (isNull(instance)) {\n return;\n }\n instance.$L = lifecycle;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n var nextState = instance.state;\n if (!instance.$N) {\n if (isFunction(instance.componentWillReceiveProps)) {\n instance.$BR = true;\n instance.componentWillReceiveProps(nextProps, context);\n // If instance component was removed during its own update do nothing.\n if (instance.$UN) {\n return;\n }\n instance.$BR = false;\n }\n if (!isNull(instance.$PS)) {\n nextState = combineFrom(nextState, instance.$PS);\n instance.$PS = null;\n }\n }\n updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, false, nextNode, lifecycle, animations);\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, instance, lifecycle);\n }\n}\nfunction patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle, animations) {\n var shouldUpdate = true;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastProps = lastVNode.props;\n var nextHooksDefined = !isNullOrUndef(nextRef);\n var lastInput = lastVNode.children;\n if (nextHooksDefined && isFunction(nextRef.onComponentShouldUpdate)) {\n shouldUpdate = nextRef.onComponentShouldUpdate(lastProps, nextProps);\n }\n if (shouldUpdate !== false) {\n if (nextHooksDefined && isFunction(nextRef.onComponentWillUpdate)) {\n nextRef.onComponentWillUpdate(lastProps, nextProps);\n }\n var nextInput = normalizeRoot(renderFunctionalComponent(nextVNode, context));\n patch(lastInput, nextInput, parentDOM, context, isSVG, nextNode, lifecycle, animations);\n nextVNode.children = nextInput;\n if (nextHooksDefined && isFunction(nextRef.onComponentDidUpdate)) {\n nextRef.onComponentDidUpdate(lastProps, nextProps);\n }\n } else {\n nextVNode.children = lastInput;\n }\n}\nfunction patchText(lastVNode, nextVNode) {\n var nextText = nextVNode.children;\n var dom = nextVNode.dom = lastVNode.dom;\n if (nextText !== lastVNode.children) {\n dom.nodeValue = nextText;\n }\n}\nfunction patchNonKeyedChildren(lastChildren, nextChildren, dom, context, isSVG, lastChildrenLength, nextChildrenLength, nextNode, lifecycle, animations) {\n var commonLength = lastChildrenLength > nextChildrenLength ? nextChildrenLength : lastChildrenLength;\n var i = 0;\n var nextChild;\n var lastChild;\n for (; i < commonLength; ++i) {\n nextChild = nextChildren[i];\n lastChild = lastChildren[i];\n if (nextChild.flags & 16384 /* VNodeFlags.InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n patch(lastChild, nextChild, dom, context, isSVG, nextNode, lifecycle, animations);\n lastChildren[i] = nextChild;\n }\n if (lastChildrenLength < nextChildrenLength) {\n for (i = commonLength; i < nextChildrenLength; ++i) {\n nextChild = nextChildren[i];\n if (nextChild.flags & 16384 /* VNodeFlags.InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n mount(nextChild, dom, context, isSVG, nextNode, lifecycle, animations);\n }\n } else if (lastChildrenLength > nextChildrenLength) {\n for (i = commonLength; i < lastChildrenLength; ++i) {\n remove(lastChildren[i], dom, animations);\n }\n }\n}\nfunction patchKeyedChildren(a, b, dom, context, isSVG, aLength, bLength, outerEdge, parentVNode, lifecycle, animations) {\n var aEnd = aLength - 1;\n var bEnd = bLength - 1;\n var j = 0;\n var aNode = a[j];\n var bNode = b[j];\n var nextPos;\n var nextNode;\n // Step 1\n // tslint:disable-next-line\n outer: {\n // Sync nodes with the same key at the beginning.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* VNodeFlags.InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle, animations);\n a[j] = bNode;\n ++j;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[j];\n bNode = b[j];\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n // Sync nodes with the same key at the end.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* VNodeFlags.InUse */) {\n b[bEnd] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle, animations);\n a[aEnd] = bNode;\n aEnd--;\n bEnd--;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n }\n }\n if (j > aEnd) {\n if (j <= bEnd) {\n nextPos = bEnd + 1;\n nextNode = nextPos < bLength ? findDOMFromVNode(b[nextPos], true) : outerEdge;\n while (j <= bEnd) {\n bNode = b[j];\n if (bNode.flags & 16384 /* VNodeFlags.InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n ++j;\n mount(bNode, dom, context, isSVG, nextNode, lifecycle, animations);\n }\n }\n } else if (j > bEnd) {\n while (j <= aEnd) {\n remove(a[j++], dom, animations);\n }\n } else {\n patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle, animations);\n }\n}\nfunction patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle, animations) {\n var aNode;\n var bNode;\n var nextPos = 0;\n var i = 0;\n var aStart = j;\n var bStart = j;\n var aLeft = aEnd - j + 1;\n var bLeft = bEnd - j + 1;\n var sources = new Int32Array(bLeft + 1);\n // Keep track if its possible to remove whole DOM using textContent = '';\n var canRemoveWholeContent = aLeft === aLength;\n var moved = false;\n var pos = 0;\n var patched = 0;\n // When sizes are small, just loop them through\n if (bLength < 4 || (aLeft | bLeft) < 32) {\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n for (j = bStart; j <= bEnd; j++) {\n bNode = b[j];\n if (aNode.key === bNode.key) {\n sources[j - bStart] = i + 1;\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (aStart < i) {\n remove(a[aStart++], dom, animations);\n }\n }\n if (pos > j) {\n moved = true;\n } else {\n pos = j;\n }\n if (bNode.flags & 16384 /* VNodeFlags.InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle, animations);\n ++patched;\n break;\n }\n }\n if (!canRemoveWholeContent && j > bEnd) {\n remove(aNode, dom, animations);\n }\n } else if (!canRemoveWholeContent) {\n remove(aNode, dom, animations);\n }\n }\n } else {\n var keyIndex = {};\n // Map keys by their index\n for (i = bStart; i <= bEnd; ++i) {\n keyIndex[b[i].key] = i;\n }\n // Try to patch same keys\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n j = keyIndex[aNode.key];\n if (j !== void 0) {\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (i > aStart) {\n remove(a[aStart++], dom, animations);\n }\n }\n sources[j - bStart] = i + 1;\n if (pos > j) {\n moved = true;\n } else {\n pos = j;\n }\n bNode = b[j];\n if (bNode.flags & 16384 /* VNodeFlags.InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle, animations);\n ++patched;\n } else if (!canRemoveWholeContent) {\n remove(aNode, dom, animations);\n }\n } else if (!canRemoveWholeContent) {\n remove(aNode, dom, animations);\n }\n }\n }\n // fast-path: if nothing patched remove all old and add all new\n if (canRemoveWholeContent) {\n removeAllChildren(dom, parentVNode, a, animations);\n mountArrayChildren(b, dom, context, isSVG, outerEdge, lifecycle, animations);\n } else if (moved) {\n var seq = lis_algorithm(sources);\n j = seq.length - 1;\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* VNodeFlags.InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMFromVNode(b[nextPos], true) : outerEdge, lifecycle, animations);\n } else if (j < 0 || i !== seq[j]) {\n pos = i + bStart;\n bNode = b[pos];\n nextPos = pos + 1;\n // --- the DOM-node is moved by a call to insertAppend\n moveVNodeDOM(parentVNode, bNode, dom, nextPos < bLength ? findDOMFromVNode(b[nextPos], true) : outerEdge, animations);\n } else {\n j--;\n }\n }\n // Invoke move animations when all moves have been calculated\n if (animations.componentWillMove.length > 0) {\n callAllMoveAnimationHooks(animations.componentWillMove);\n }\n } else if (patched !== bLeft) {\n // when patched count doesn't match b length we need to insert those new ones\n // loop backwards so we can use insertBefore\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* VNodeFlags.InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMFromVNode(b[nextPos], true) : outerEdge, lifecycle, animations);\n }\n }\n }\n}\nvar result;\nvar p;\nvar maxLen = 0;\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction lis_algorithm(arr) {\n var arrI = 0;\n var i = 0;\n var j = 0;\n var k = 0;\n var u = 0;\n var v = 0;\n var c = 0;\n var len = arr.length;\n if (len > maxLen) {\n maxLen = len;\n result = new Int32Array(len);\n p = new Int32Array(len);\n }\n for (; i < len; ++i) {\n arrI = arr[i];\n if (arrI !== 0) {\n j = result[k];\n if (arr[j] < arrI) {\n p[i] = j;\n result[++k] = i;\n continue;\n }\n u = 0;\n v = k;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = k + 1;\n var seq = new Int32Array(u);\n v = result[u - 1];\n while (u-- > 0) {\n seq[u] = v;\n v = p[v];\n result[u] = 0;\n }\n return seq;\n}\n\nvar hasDocumentAvailable = typeof document !== 'undefined';\nif (hasDocumentAvailable) {\n /*\n * Defining $EV and $V properties on Node.prototype\n * fixes v8 \"wrong map\" de-optimization\n */\n if (window.Node) {\n Node.prototype.$EV = null;\n Node.prototype.$V = null;\n }\n}\nfunction __render(input, parentDOM, callback, context) {\n var lifecycle = [];\n var animations = new AnimationQueues();\n var rootInput = parentDOM.$V;\n renderCheck.v = true;\n if (isNullOrUndef(rootInput)) {\n if (!isNullOrUndef(input)) {\n if (input.flags & 16384 /* VNodeFlags.InUse */) {\n input = directClone(input);\n }\n mount(input, parentDOM, context, false, null, lifecycle, animations);\n parentDOM.$V = input;\n rootInput = input;\n }\n } else {\n if (isNullOrUndef(input)) {\n remove(rootInput, parentDOM, animations);\n parentDOM.$V = null;\n } else {\n if (input.flags & 16384 /* VNodeFlags.InUse */) {\n input = directClone(input);\n }\n patch(rootInput, input, parentDOM, context, false, null, lifecycle, animations);\n rootInput = parentDOM.$V = input;\n }\n }\n callAll(lifecycle);\n callAllAnimationHooks(animations.componentDidAppear);\n renderCheck.v = false;\n if (isFunction(callback)) {\n callback();\n }\n if (isFunction(options.renderComplete)) {\n options.renderComplete(rootInput, parentDOM);\n }\n}\nfunction render(input, parentDOM, callback, context) {\n if (callback === void 0) {\n callback = null;\n }\n if (context === void 0) {\n context = EMPTY_OBJ;\n }\n __render(input, parentDOM, callback, context);\n}\nfunction createRenderer(parentDOM) {\n return function renderer(lastInput, nextInput, callback, context) {\n if (!parentDOM) {\n parentDOM = lastInput;\n }\n render(nextInput, parentDOM, callback, context);\n };\n}\n\nvar COMPONENTS_QUEUE = [];\nvar nextTick = typeof Promise !== 'undefined' ? Promise.resolve().then.bind(Promise.resolve()) : function (a) {\n window.setTimeout(a, 0);\n};\nvar microTaskPending = false;\nfunction queueStateChanges(component, newState, callback, force) {\n var pending = component.$PS;\n if (isFunction(newState)) {\n newState = newState(pending ? combineFrom(component.state, pending) : component.state, component.props, component.context);\n }\n if (isNullOrUndef(pending)) {\n component.$PS = newState;\n } else {\n for (var stateKey in newState) {\n pending[stateKey] = newState[stateKey];\n }\n }\n if (!component.$BR) {\n if (!renderCheck.v) {\n if (COMPONENTS_QUEUE.length === 0) {\n applyState(component, force);\n if (isFunction(callback)) {\n callback.call(component);\n }\n return;\n }\n }\n if (COMPONENTS_QUEUE.indexOf(component) === -1) {\n COMPONENTS_QUEUE.push(component);\n }\n if (force) {\n component.$F = true;\n }\n if (!microTaskPending) {\n microTaskPending = true;\n nextTick(rerender);\n }\n if (isFunction(callback)) {\n var QU = component.$QU;\n if (!QU) {\n QU = component.$QU = [];\n }\n QU.push(callback);\n }\n } else if (isFunction(callback)) {\n component.$L.push(callback.bind(component));\n }\n}\nfunction callSetStateCallbacks(component) {\n var queue = component.$QU;\n for (var i = 0; i < queue.length; ++i) {\n queue[i].call(component);\n }\n component.$QU = null;\n}\nfunction rerender() {\n var component;\n microTaskPending = false;\n while (component = COMPONENTS_QUEUE.shift()) {\n if (!component.$UN) {\n var force = component.$F;\n component.$F = false;\n applyState(component, force);\n if (component.$QU) {\n callSetStateCallbacks(component);\n }\n }\n }\n}\nfunction applyState(component, force) {\n if (force || !component.$BR) {\n var pendingState = component.$PS;\n component.$PS = null;\n var lifecycle = [];\n var animations = new AnimationQueues();\n renderCheck.v = true;\n updateClassComponent(component, combineFrom(component.state, pendingState), component.props, findDOMFromVNode(component.$LI, true).parentNode, component.context, component.$SVG, force, null, lifecycle, animations);\n callAll(lifecycle);\n callAllAnimationHooks(animations.componentDidAppear);\n renderCheck.v = false;\n } else {\n component.state = component.$PS;\n component.$PS = null;\n }\n}\nvar Component = /*#__PURE__*/function () {\n // Force update flag\n function Component(props, context) {\n // Public\n this.state = null;\n this.props = void 0;\n this.context = void 0;\n this.displayName = void 0;\n // Internal properties\n this.$BR = false;\n // BLOCK RENDER\n this.$BS = true;\n // BLOCK STATE\n this.$PS = null;\n // PENDING STATE (PARTIAL or FULL)\n this.$LI = null;\n // LAST INPUT\n this.$UN = false;\n // UNMOUNTED\n this.$CX = null;\n // CHILDCONTEXT\n this.$QU = null;\n // QUEUE\n this.$N = false;\n // Uses new lifecycle API Flag\n this.$SSR = void 0;\n // Server side rendering flag, true when rendering on server, non existent on client\n this.$L = null;\n // Current lifecycle of this component\n this.$SVG = false;\n // Flag to keep track if component is inside SVG tree\n this.$F = false;\n this.props = props || EMPTY_OBJ;\n this.context = context || EMPTY_OBJ; // context should not be mutable\n }\n var _proto = Component.prototype;\n _proto.forceUpdate = function forceUpdate(callback) {\n if (this.$UN) {\n return;\n }\n // Do not allow double render during force update\n queueStateChanges(this, {}, callback, true);\n };\n _proto.setState = function setState(newState, callback) {\n if (this.$UN) {\n return;\n }\n if (!this.$BS) {\n queueStateChanges(this, newState, callback, false);\n }\n };\n // @ts-expect-error TS6133\n _proto.render = function render(props, state, context) {\n return null;\n };\n return Component;\n}();\nComponent.defaultProps = null;\n\nvar version = \"8.2.3\";\n\nexport { AnimationQueues, Component, EMPTY_OBJ, Fragment, createClassComponentInstance as _CI, normalizeRoot as _HI, mount as _M, mountClassComponentCallbacks as _MCCC, mountElement as _ME, mountFunctionalComponentCallbacks as _MFCC, mountProps as _MP, mountRef as _MR, renderFunctionalComponent as _RFC, __render, createComponentVNode, createFragment, createPortal, createRef, createRenderer, createTextVNode, createVNode, directClone, findDOMFromVNode, forwardRef, getFlagsForElementVnode, linkEvent, normalizeProps, options, render, rerender, version };\n","'use strict';\n\nvar INFERNO_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!INFERNO_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\nmodule.exports = hoistNonReactStatics;\nmodule.exports.default = module.exports;\n","import hoistNonReactStatics from 'hoist-non-inferno-statics';\nimport { normalizeProps, createComponentVNode, Component } from 'inferno';\nimport { bindActionCreators } from 'redux';\n\nvar CLEARED = null;\n// tslint:disable-next-line:no-empty\nvar nullSubscriptionHandler = function nullSubscriptionHandler() {};\nvar nullListenerCollection = {\n // tslint:disable-next-line:no-empty\n clear: function clear() {},\n // tslint:disable-next-line:no-empty\n notify: function notify() {},\n subscribe: function subscribe(_) {\n return nullSubscriptionHandler;\n }\n};\nvar createListenerCollection = function createListenerCollection() {\n // the current/next pattern is copied from redux's createStore code.\n var current = [];\n var next = [];\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n for (var i = 0; i < listeners.length; ++i) {\n listeners[i]();\n }\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) {\n next = current.slice();\n }\n next.push(listener);\n return function () {\n if (!isSubscribed || current === null) {\n return;\n }\n isSubscribed = false;\n if (next === current) {\n next = current.slice();\n }\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n};\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(store, parentSub, onStateChange) {\n this.store = void 0;\n this.parentSub = void 0;\n this.onStateChange = void 0;\n this.unsubscribe = void 0;\n this.listeners = void 0;\n this.store = store;\n this.parentSub = parentSub;\n this.onStateChange = onStateChange;\n this.unsubscribe = null;\n this.listeners = nullListenerCollection;\n }\n var _proto = Subscription.prototype;\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange);\n this.listeners = createListenerCollection();\n }\n };\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListenerCollection;\n }\n };\n return Subscription;\n}();\n\nfunction combineFrom(first, second) {\n var out = {};\n if (first) {\n for (var key in first) {\n out[key] = first[key];\n }\n }\n if (second) {\n for (var _key in second) {\n out[_key] = second[_key];\n }\n }\n return out;\n}\n\nvar _excluded$2 = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\"];\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inheritsLoose$1(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf$1(subClass, superClass); }\nfunction _setPrototypeOf$1(o, p) { _setPrototypeOf$1 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$1(o, p); }\nfunction _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nvar hotReloadingVersion = 0;\nvar dummyState = {};\n// tslint:disable-next-line:no-empty\nvar noop = function noop() {};\nvar makeSelectorStateful = function makeSelectorStateful(sourceSelector, store) {\n // wrap the selector in an object that tracks its results between runs.\n var selector = {\n error: null,\n props: {},\n run: function runComponentSelector(props) {\n try {\n var nextProps = sourceSelector(store.getState(), props);\n if (nextProps !== selector.props || selector.error) {\n selector.shouldComponentUpdate = true;\n selector.props = nextProps;\n selector.error = null;\n }\n } catch (e) {\n selector.shouldComponentUpdate = true;\n selector.error = e;\n }\n },\n shouldComponentUpdate: false\n };\n return selector;\n};\n// TODO: Move\nvar invariant = function invariant(test, error) {\n if (!test) {\n throw new Error(error);\n }\n};\nfunction getDefaultName(name) {\n return \"ConnectAdvanced(\" + name + \")\";\n}\nfunction connectAdvanced(selectorFactory, _ref) {\n var _ref$getDisplayName = _ref.getDisplayName,\n getDisplayName = _ref$getDisplayName === void 0 ? getDefaultName : _ref$getDisplayName,\n _ref$methodName = _ref.methodName,\n methodName = _ref$methodName === void 0 ? 'connectAdvanced' : _ref$methodName,\n _ref$renderCountProp = _ref.renderCountProp,\n renderCountProp = _ref$renderCountProp === void 0 ? null : _ref$renderCountProp,\n _ref$shouldHandleStat = _ref.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref$shouldHandleStat === void 0 ? true : _ref$shouldHandleStat,\n _ref$storeKey = _ref.storeKey,\n storeKey = _ref$storeKey === void 0 ? 'store' : _ref$storeKey,\n _ref$withRef = _ref.withRef,\n withRef = _ref$withRef === void 0 ? false : _ref$withRef,\n connectOptions = _objectWithoutPropertiesLoose$2(_ref, _excluded$2);\n var subscriptionKey = storeKey + 'Subscription';\n var version = hotReloadingVersion++;\n var wrapWithConnect = function wrapWithConnect(WrappedComponent) {\n invariant(typeof WrappedComponent === 'function', \"You must pass a component to the function returned by \" + (\"connect. Instead received \" + WrappedComponent));\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n var selectorFactoryOptions = combineFrom(connectOptions, {\n WrappedComponent: WrappedComponent,\n displayName: displayName,\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n withRef: withRef,\n wrappedComponentName: wrappedComponentName\n });\n var Connect = /*#__PURE__*/function (_Component) {\n _inheritsLoose$1(Connect, _Component);\n function Connect(props, context) {\n var _this;\n _this = _Component.call(this, props, context) || this;\n _this.version = void 0;\n _this.renderCount = void 0;\n _this.propsMode = void 0;\n _this.store = void 0;\n _this.notifyNestedSubs = void 0;\n _this.subscription = void 0;\n _this.wrappedInstance = void 0;\n _this.selector = void 0;\n _this.version = version;\n _this.state = {};\n _this.renderCount = 0;\n _this.store = _this.props[storeKey] || _this.context[storeKey];\n _this.propsMode = Boolean(props[storeKey]);\n _this.setWrappedInstance = _this.setWrappedInstance.bind(_assertThisInitialized(_this));\n invariant(!!_this.store, \"Could not find \\\"\" + storeKey + \"\\\" in either the context or \" + (\"props of \\\"\" + displayName + \"\\\". \") + \"Either wrap the root component in a , \" + (\"or explicitly pass \\\"\" + storeKey + \"\\\" as a prop to \\\"\" + displayName + \"\\\".\"));\n _this.initSelector();\n _this.initSubscription();\n return _this;\n }\n var _proto = Connect.prototype;\n _proto.getChildContext = function getChildContext() {\n var _ref2;\n // If this component received store from props, its subscription should be transparent\n // to any descendants receiving store+subscription from context; it passes along\n // subscription passed to it. Otherwise, it shadows the parent subscription, which allows\n // Connect to control ordering of notifications to flow top-down.\n var subscription = this.propsMode ? null : this.subscription;\n return _ref2 = {}, _ref2[subscriptionKey] = subscription || this.context[subscriptionKey], _ref2;\n };\n _proto.componentWillMount = function componentWillMount() {\n if (!shouldHandleStateChanges || this.$SSR) {\n return;\n }\n this.subscription.trySubscribe();\n this.selector.run(this.props);\n };\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n this.selector.run(nextProps);\n };\n _proto.shouldComponentUpdate = function shouldComponentUpdate() {\n return this.selector.shouldComponentUpdate;\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.subscription) {\n this.subscription.tryUnsubscribe();\n }\n // these are just to guard against extra memory leakage if a parent element doesn't\n // dereference this instance properly, such as an async callback that never finishes\n this.subscription = null;\n this.notifyNestedSubs = noop;\n this.store = null;\n this.selector.run = noop;\n this.selector.shouldComponentUpdate = false;\n };\n _proto.getWrappedInstance = function getWrappedInstance() {\n invariant(withRef, \"To access the wrapped instance, you need to specify \" + (\"{ withRef: true } in the options argument of the \" + methodName + \"() call.\"));\n return this.wrappedInstance;\n };\n _proto.setWrappedInstance = function setWrappedInstance(ref) {\n this.wrappedInstance = ref;\n };\n _proto.initSelector = function initSelector() {\n var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions);\n this.selector = makeSelectorStateful(sourceSelector, this.store);\n this.selector.run(this.props);\n };\n _proto.initSubscription = function initSubscription() {\n if (!shouldHandleStateChanges) {\n return;\n }\n // parentSub's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey];\n this.subscription = new Subscription(this.store, parentSub, this.onStateChange.bind(this));\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `this.subscription` will then be null. An\n // extra null check every change can be avoided by copying the method onto `this` and then\n // replacing it with a no-op on unmount. This can probably be avoided if Subscription's\n // listeners logic is changed to not call listeners that have been unsubscribed in the\n // middle of the notification loop.\n this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription);\n };\n _proto.onStateChange = function onStateChange() {\n this.selector.run(this.props);\n if (!this.selector.shouldComponentUpdate) {\n this.notifyNestedSubs();\n } else {\n this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate;\n this.setState(dummyState);\n }\n };\n _proto.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() {\n // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it\n // needs to notify nested subs. Once called, it unimplements itself until further state\n // changes occur. Doing it this way vs having a permanent `componentDidMount` that does\n // a boolean check every time avoids an extra method call most of the time, resulting\n // in some perf boost.\n this.componentDidUpdate = undefined;\n this.notifyNestedSubs();\n };\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.subscription && this.subscription.isSubscribed());\n };\n _proto.addExtraProps = function addExtraProps(props) {\n if (!renderCountProp) {\n return props;\n }\n // make a shallow copy so that fields added don't leak to the original selector.\n // this is especially important for 'ref' since that's a reference back to the component\n // instance. a singleton memoized selector would then be holding a reference to the\n // instance, preventing the instance from being garbage collected, and that would be bad\n var withExtras = combineFrom(props, null);\n if (renderCountProp) {\n withExtras[renderCountProp] = this.renderCount++;\n }\n if (this.propsMode && this.subscription) {\n withExtras[subscriptionKey] = this.subscription;\n }\n return withExtras;\n };\n _proto.render = function render() {\n var selector = this.selector;\n selector.shouldComponentUpdate = false;\n if (selector.error) {\n throw selector.error;\n } else {\n return normalizeProps(createComponentVNode(2 /* VNodeFlags.ComponentUnknown */, WrappedComponent, this.addExtraProps(selector.props), null, withRef ? this.setWrappedInstance : null));\n }\n };\n return Connect;\n }(Component);\n Connect.displayName = displayName;\n Connect.WrappedComponent = WrappedComponent;\n return hoistNonReactStatics(Connect, WrappedComponent);\n };\n return wrapWithConnect;\n}\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n function Provider(props, context) {\n var _this;\n _this = _Component.call(this, props, context) || this;\n _this.store = void 0;\n _this.store = props.store;\n return _this;\n }\n var _proto = Provider.prototype;\n _proto.getChildContext = function getChildContext() {\n return {\n store: this.store,\n storeSubscription: null\n };\n }\n // Don't infer the return type. It may be expanded and cause reference errors\n // in the output.\n ;\n _proto.render = function render() {\n return this.props.children;\n };\n return Provider;\n}(Component);\nProvider.displayName = 'Provider';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar shallowEqual = function shallowEqual(a, b) {\n if (a === b) {\n return true;\n }\n var countA = 0;\n var countB = 0;\n for (var key in a) {\n if (hasOwn.call(a, key) && a[key] !== b[key]) {\n return false;\n }\n countA++;\n }\n for (var _key in b) {\n if (hasOwn.call(b, _key)) {\n countB++;\n }\n }\n return countA === countB;\n};\n\n// TODO: Type\nvar wrapMapToPropsConstant = function wrapMapToPropsConstant(getConstant) {\n return function (dispatch, options) {\n var constant = getConstant(dispatch, options);\n var constantSelector = function constantSelector() {\n return constant;\n };\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n};\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\nvar getDependsOnOwnProps = function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? !!mapToProps.dependsOnOwnProps : mapToProps.length !== 1;\n};\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\nvar wrapMapToPropsFunc = function wrapMapToPropsFunc(mapToProps, methodName) {\n return function (_dispatch, _ref) {\n _ref.displayName;\n var proxy = function proxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n };\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n proxy.mapToProps = function (stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n var props = proxy(stateOrDispatch, ownProps);\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n return props;\n };\n return proxy;\n };\n};\n\nvar whenMapDispatchToPropsIsFunction = function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps) : undefined;\n};\nvar whenMapDispatchToPropsIsMissing = function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n};\nvar whenMapDispatchToPropsIsObject = function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n};\nvar defaultMapDispatchToPropsFactories = [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];\n\nvar whenMapStateToPropsIsFunction = function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps) : undefined;\n};\nvar whenMapStateToPropsIsMissing = function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n};\nvar defaultMapStateToPropsFactories = [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];\n\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n var merged = combineFrom(ownProps, stateProps);\n if (dispatchProps) {\n for (var key in dispatchProps) {\n merged[key] = dispatchProps[key];\n }\n }\n return merged;\n};\nvar wrapMergePropsFunc = function wrapMergePropsFunc(mergeProps) {\n return function (_dispatch, _ref) {\n _ref.displayName;\n var pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function (stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) {\n mergedProps = nextMergedProps;\n }\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n }\n return mergedProps;\n };\n };\n};\nvar whenMergePropsIsFunction = function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n};\nvar whenMergePropsIsOmitted = function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n};\nvar defaultMergePropsFactories = [whenMergePropsIsFunction, whenMergePropsIsOmitted];\n\nvar _excluded$1 = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nfunction _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nvar impureFinalPropsSelectorFactory = function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function (state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n};\nvar pureFinalPropsSelectorFactory = function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n var handleFirstCall = function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n };\n var handleNewPropsAndNewState = function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) {\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n }\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n };\n var handleNewProps = function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) {\n stateProps = mapStateToProps(state, ownProps);\n }\n if (mapDispatchToProps.dependsOnOwnProps) {\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n }\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n };\n var handleNewState = function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) {\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n }\n return mergedProps;\n };\n var handleSubsequentCalls = function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) {\n return handleNewPropsAndNewState();\n }\n if (propsChanged) {\n return handleNewProps();\n }\n if (stateChanged) {\n return handleNewState();\n }\n return mergedProps;\n };\n var pureFinalPropsSelector = function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n return pureFinalPropsSelector;\n};\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\nvar defaultSelectorFactory = function defaultSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n opts = _objectWithoutPropertiesLoose$1(_ref2, _excluded$1);\n var options = opts; // trick typescript\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n};\n\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nvar match = function match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) {\n return result;\n }\n }\n return function (_dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n};\nvar strictEqual = function strictEqual(a, b) {\n return a === b;\n};\n// createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\nvar createConnect = function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n return function (mapStateToProps, mapDispatchToProps, mergeProps, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$pure = _ref2.pure,\n pure = _ref2$pure === void 0 ? true : _ref2$pure,\n _ref2$areStatesEqual = _ref2.areStatesEqual,\n areStatesEqual = _ref2$areStatesEqual === void 0 ? strictEqual : _ref2$areStatesEqual,\n _ref2$areOwnPropsEqua = _ref2.areOwnPropsEqual,\n areOwnPropsEqual = _ref2$areOwnPropsEqua === void 0 ? shallowEqual : _ref2$areOwnPropsEqua,\n _ref2$areStatePropsEq = _ref2.areStatePropsEqual,\n areStatePropsEqual = _ref2$areStatePropsEq === void 0 ? shallowEqual : _ref2$areStatePropsEq,\n _ref2$areMergedPropsE = _ref2.areMergedPropsEqual,\n areMergedPropsEqual = _ref2$areMergedPropsE === void 0 ? shallowEqual : _ref2$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, combineFrom({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n // tslint:disable-next-line:object-literal-sort-keys\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: !!mapStateToProps,\n // passed through to selectorFactory\n areMergedPropsEqual: areMergedPropsEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areStatesEqual: areStatesEqual,\n initMapDispatchToProps: initMapDispatchToProps,\n initMapStateToProps: initMapStateToProps,\n initMergeProps: initMergeProps,\n pure: pure\n }, extraOptions /* any extra options args can override defaults of connect or connectAdvanced */));\n };\n};\n\nvar connect = createConnect();\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return bindActionCreators(actionCreators, dispatch);\n };\n}\n\nexport { Provider, connect, connectAdvanced, wrapActionCreators };\n","import { Component, createVNode, InfernoNode, VNode } from \"inferno\";\nimport { connect } from \"inferno-redux\";\nimport _ from \"lodash\";\nimport type { RootState } from \"../../../app/createStore\";\nimport { addDefinitions } from \"../../../features/definition/definitionsSlice\";\nimport { DOMRectangle, setMouseover, setTokenDetails } from \"../../../features/ui/uiSlice\";\nimport {\n eventCoordinates,\n getNormalGloss,\n getWord,\n guessBetter,\n isNumberToken,\n isUnsure,\n syncDefs,\n} from \"../../../lib/componentMethods\";\nimport { completelyStopEvent, hasTones, pileDiff, toneColour } from \"../../../lib/funclib\";\nimport { affixCleaned, cleanedSound } from \"../../../lib/libMethods\";\nimport {\n AnyTreebankPosType,\n BOOK_READER_TYPE,\n DEFINITION_LOADING,\n DefinitionState,\n DefinitionType,\n EXTENSION_READER_TYPE,\n FontColourType,\n GLOSS_NUMBER_NOUNS,\n HasTextChildren,\n HasVNodeChildren,\n HtmlElement,\n KeyedModels,\n KnownWords,\n MultipleChildren,\n ParentTag,\n ReaderState,\n SentenceType,\n SIMPLE_READER_TYPE,\n TokenType,\n UNSURE_ATTRIBUTE,\n USER_STATS_MODE,\n VIDEO_READER_TYPE,\n} from \"../../../lib/types\";\nimport { ETFStylesProps } from \"../../Common\";\n\ntype EntryProps = {\n elementIds?: Set;\n uniqueId: string;\n token: TokenType;\n readerConfig: ReaderState;\n sentence: SentenceType;\n classes: ETFStylesProps[\"classes\"];\n clickable?: boolean;\n sameTab?: boolean;\n entryReadObserver?: IntersectionObserver;\n};\n\ntype LocalEntryState = {\n gloss: string;\n charColours?: string[];\n nbRetries: number;\n unsure: boolean;\n};\n\ntype StatedEntryProps = EntryProps & {\n glossToggled?: boolean;\n isKnown?: boolean;\n glossing?: number; // FIXME: type this!\n mouseover?: boolean;\n translationProviderOrder?: Record;\n strictProviderOrdering?: boolean;\n fontColour?: FontColourType;\n richFormatting?: boolean;\n};\n\nconst RETRY_DEFINITION_MS = 5000;\nconst RETRY_DEFINITION_MAX_TRIES = 20;\n\nfunction getBoundingClientRect(element: Element) {\n const { top, right, bottom, left, width, height, x, y } = element.getBoundingClientRect();\n return { top, right, bottom, left, width, height, x, y };\n}\n\nfunction sameCoordinates(element: Element, current: DOMRectangle) {\n const { width, height, x, y } = element.getBoundingClientRect();\n return width === current.width && height === current.height && x === current.x && y === current.y;\n}\n\nfunction vnodeFromParentTag(parentTag: ParentTag, text?: string, children?: VNode[]) {\n let flags = text ? HasTextChildren : 0;\n if (children) {\n flags = flags & MultipleChildren & HasVNodeChildren;\n }\n return createVNode(\n HtmlElement,\n parentTag.t,\n undefined,\n [children, text].filter((x) => !!x),\n flags,\n parentTag.a,\n null,\n null,\n );\n}\n\nfunction formatted(graph: string, charFormats: (ParentTag[] | undefined)[]) {\n const innerVnodes: InfernoNode[] = [];\n let buffer = \"\";\n let modPile: ParentTag[] = charFormats[0] || [];\n let vnodeBuffer: VNode[] = [];\n for (let i = 0; i < graph.length; i++) {\n let [toRemove] = pileDiff(modPile, charFormats[i]);\n for (const pt of toRemove) {\n modPile = modPile.slice(1);\n if (modPile.length > 0) {\n vnodeBuffer = [vnodeFromParentTag(pt, buffer, vnodeBuffer)];\n } else {\n innerVnodes.push(vnodeFromParentTag(pt, buffer, vnodeBuffer));\n vnodeBuffer = [];\n }\n buffer = \"\";\n }\n buffer += graph[i];\n modPile = charFormats[i] || [];\n }\n while (modPile.length > 1) {\n vnodeBuffer = [vnodeFromParentTag(modPile[0], buffer, vnodeBuffer)];\n buffer = \"\";\n modPile = modPile.slice(1);\n }\n if (!modPile?.[0]) {\n const finalNodes = [...vnodeBuffer, buffer].filter((x) => !!x);\n innerVnodes.push(...finalNodes);\n } else {\n innerVnodes.push(vnodeFromParentTag(modPile[0], buffer, vnodeBuffer));\n }\n return innerVnodes;\n}\n\nfunction doesNeedGloss(\n lexeme: string,\n knownWords: Partial,\n readerConfig: ReaderState,\n pos?: AnyTreebankPosType,\n word?: string,\n) {\n // FIXME: this should be configurable!\n if (!pos || readerConfig.glossing <= USER_STATS_MODE.NO_GLOSS) return false;\n\n const nonOptimisticKnows =\n lexeme in (knownWords.knownWordGraphs || {}) || (word || \"\") in (knownWords.knownWordGraphs || {});\n const optimisticKnows =\n lexeme.toLowerCase() in (knownWords.knownWordGraphs || {}) ||\n (word || \"\").toLowerCase() in (knownWords.knownWordGraphs || {}) ||\n nonOptimisticKnows;\n\n return !optimisticKnows && (GLOSS_NUMBER_NOUNS || !isNumberToken(pos));\n}\n\nclass Entry extends Component {\n constructor(props: EntryProps, context: any) {\n super(props, context);\n this.state = {\n gloss: \"\",\n nbRetries: 0,\n unsure: false,\n };\n this.createPopover = this.createPopover.bind(this);\n this.createTokenDetails = this.createTokenDetails.bind(this);\n this.lookForDefinitionUpdate = this.lookForDefinitionUpdate.bind(this);\n }\n createTokenDetails(event: React.MouseEvent): void {\n // directly open a new popup if:\n // - there isn't one already\n // - there is one and it is a different one\n // - unless on mobile, and then never directly open a new one (force closing existing one first)\n // The rationale for the mobile exception is that there is basically nowhere to click that isn't a\n // clickable space, so clicking outside should first get rid of the current popup, because most of\n // the time we *don't* actually want a new popup.\n if (this.props.token.de) {\n return;\n }\n if (\n !this.context.store.getState().ui.tokenDetails ||\n (!sameCoordinates(event.currentTarget, this.context.store.getState().ui.tokenDetails.sourceRect) &&\n window.screen.availWidth > 600)\n ) {\n if (this.props.clickable) {\n const destUrl = `${this.context.store.getState().userData.baseUrl}/#/notrobes?q=${this.props.token.l}`;\n if (this.props.sameTab) {\n // window.history.pushState(null, \"\", url); // this doesn't seem to get picked up by useLocation or useHistory\n window.location.href = destUrl;\n } else {\n window.open(destUrl);\n }\n } else {\n this.context.store.dispatch(setMouseover(undefined));\n this.context.store.dispatch(\n setTokenDetails({\n coordinates: eventCoordinates(event),\n token: this.props.token,\n sentence: this.props.sentence,\n gloss: !!this.state?.gloss,\n sourceRect: getBoundingClientRect(event.currentTarget),\n }),\n );\n completelyStopEvent(event);\n }\n } else {\n this.context.store.dispatch(setMouseover(undefined));\n }\n }\n\n async updates(readerConfig: ReaderState): Promise {\n const rootState: RootState = this.context.store.getState();\n const knownWords = rootState.knownWords;\n const definitions = rootState.definitions;\n const tokenDetails = rootState.ui.tokenDetails;\n const {\n baseUrl,\n user: { fromLang, toLang },\n } = rootState.userData;\n\n const token = this.props.token;\n let localGloss = \"\";\n let needsGloss = false;\n let unsure = false;\n\n let def = token.id ? definitions[token.id] : await getWord(token.l);\n if (def) {\n def.glossToggled ??= false;\n let betterGuess: DefinitionType = def;\n let cleanGraph = affixCleaned(def.graph);\n if (hasTones(fromLang) && readerConfig.fontColour === \"tones\") {\n this.setState({ charColours: cleanedSound(def, fromLang).map((s) => toneColour(s)) });\n } else {\n this.setState({ charColours: undefined });\n }\n\n if (cleanGraph !== def.graph) {\n betterGuess = await guessBetter(def, fromLang, knownWords?.knownWordGraphs || {});\n }\n if (betterGuess.graph === def.graph) {\n needsGloss = doesNeedGloss(token.l, knownWords, readerConfig, token.pos, token.w);\n if ((needsGloss && (!def || !def.glossToggled)) || (!needsGloss && def && def.glossToggled)) {\n localGloss = await getNormalGloss(token, readerConfig, knownWords, definitions, fromLang, toLang);\n } else {\n localGloss = \"\";\n }\n if (localGloss && this.props.token.id) {\n if (isUnsure(def)) {\n unsure = true;\n betterGuess = await guessBetter(def, fromLang, knownWords?.knownWordGraphs || {});\n }\n }\n }\n\n if (betterGuess.graph !== def.graph) {\n unsure = !!isUnsure(betterGuess);\n if (!(betterGuess.id in definitions)) {\n this.context.store.dispatch(addDefinitions([{ ...betterGuess, glossToggled: false }]));\n }\n // fake POS - we don't know what the real one might be...\n needsGloss = doesNeedGloss(betterGuess.graph, knownWords, readerConfig, \"NN\");\n if (needsGloss) {\n const betterToken: TokenType = { l: betterGuess.graph, pos: \"NN\", w: betterGuess.graph, id: betterGuess.id };\n localGloss = await getNormalGloss(betterToken, readerConfig, knownWords, definitions, fromLang, toLang);\n } else {\n localGloss = \"\";\n }\n }\n } else {\n localGloss = DEFINITION_LOADING;\n }\n if (unsure) this.setState({ unsure });\n this.setState({ gloss: localGloss });\n\n if (tokenDetails) {\n this.context.store.dispatch(setTokenDetails({ ...tokenDetails, gloss: !!localGloss }));\n }\n if (localGloss.startsWith(DEFINITION_LOADING)) {\n syncDefs(baseUrl);\n window.setTimeout(this.lookForDefinitionUpdate, RETRY_DEFINITION_MS, {\n readerConfig: readerConfig,\n attemptsRemaining: RETRY_DEFINITION_MAX_TRIES,\n });\n }\n }\n\n lookForDefinitionUpdate({\n readerConfig,\n attemptsRemaining,\n }: {\n readerConfig: ReaderState;\n attemptsRemaining: number;\n }): void {\n const token = this.props.token;\n console.debug(\"Looking for definition update for\", token.l);\n\n const {\n knownWords,\n definitions,\n userData: {\n baseUrl,\n user: { fromLang, toLang },\n },\n } = this.context.store.getState() as RootState;\n\n if (attemptsRemaining < 0) {\n this.setState({ gloss: \" [Error loading gloss]\" });\n return;\n }\n let promise: Promise | null;\n if (token.id && token.id.toString() in definitions) {\n promise = Promise.resolve(definitions[token.id.toString()]);\n } else {\n promise = getWord(token.l);\n }\n promise.then((def) => {\n if (!def) {\n syncDefs(baseUrl);\n window.setTimeout(this.lookForDefinitionUpdate, RETRY_DEFINITION_MS, {\n glossing: (readerConfig || this.props.readerConfig).glossing,\n attemptsRemaining: attemptsRemaining - 1,\n });\n } else {\n this.context.store.dispatch(addDefinitions([{ ...def, glossToggled: false }]));\n getNormalGloss(token, readerConfig || this.props.readerConfig, knownWords, definitions, fromLang, toLang).then(\n (gloss) => {\n // FIXME: how on earth does this happen??? Somehow this is getting called twice (even in prod mode)\n // and the second time the definition is undefined. I don't know why.\n if (!gloss.startsWith(DEFINITION_LOADING)) {\n this.setState({ gloss });\n } else {\n console.debug(\"Very strange, gloss bug\", token.l, gloss, def);\n }\n },\n );\n }\n });\n }\n\n async componentWillUpdate(nextProps: StatedEntryProps, nextState: LocalEntryState, context: any): Promise {\n if (this.props.token.pos || this.props.token.bg) {\n if (\n nextProps.glossToggled !== this.props.glossToggled ||\n nextProps.isKnown !== this.props.isKnown ||\n nextProps.strictProviderOrdering !== this.props.strictProviderOrdering ||\n nextProps.fontColour !== this.props.fontColour ||\n Object.keys(nextProps.translationProviderOrder || {}).join(\"\") !==\n Object.keys(this.props.translationProviderOrder || {}).join(\"\") ||\n nextProps.glossing !== this.props.glossing\n ) {\n await this.updates({\n ...this.props.readerConfig,\n glossing: nextProps.glossing !== undefined ? nextProps.glossing : this.props.readerConfig.glossing,\n translationProviderOrder:\n nextProps.translationProviderOrder || this.props.readerConfig.translationProviderOrder,\n strictProviderOrdering:\n nextProps.strictProviderOrdering !== undefined\n ? nextProps.strictProviderOrdering\n : this.props.readerConfig.strictProviderOrdering,\n fontColour: nextProps.fontColour !== undefined ? nextProps.fontColour : this.props.readerConfig.fontColour,\n });\n }\n }\n }\n\n async componentWillMount(): Promise {\n if (this.props.token.pos || this.props.token.bg) {\n await this.updates(this.props.readerConfig);\n }\n }\n\n createPopover(event: React.MouseEvent | undefined): void {\n if (this.props.mouseover && !this.props.token.de) {\n if (event) {\n const coordinates = eventCoordinates(event);\n this.context.store.dispatch(\n setMouseover({ coordinates, token: this.props.token, sentence: this.props.sentence }),\n );\n completelyStopEvent(event);\n } else {\n this.context.store.dispatch(setMouseover(undefined));\n }\n }\n }\n\n render(): VNode {\n const wordStyle: { [key: string]: string } = this.props.token.style || {};\n let returnNode: VNode;\n\n if (this.props.token.b) {\n wordStyle[\"padding-left\"] = `${this.props.token.b.length * 0.25}em`;\n } else if (this.props.token.a) {\n wordStyle[\"padding-right\"] = `${this.props.token.a.length * 0.25}em`;\n }\n const graph = (this.props.token.w || this.props.token.l) + (this.props.token.a || \"\");\n if (this.props.token.pos || this.props.token.bg) {\n const vnodes: VNode[] = [];\n // const graph = this.props.token.w || this.props.token.l;\n if (this.state?.charColours && this.state?.charColours.length > 0) {\n const charNodes: VNode[] = [];\n for (let i = 0; i < graph.length; i++) {\n charNodes.push(\n createVNode(\n HtmlElement,\n \"span\",\n `${this.props.classes.wordPinyinColours} tcrobe-word`,\n graph[i],\n HasTextChildren,\n { style: { ...wordStyle, color: this.state.charColours[i] } },\n null,\n null,\n ),\n );\n }\n vnodes.push(\n createVNode(\n HtmlElement,\n \"span\",\n \"tcrobe-word\",\n // charNodes.filter((x) => !!x), // FIXME: why did i have this???\n charNodes,\n MultipleChildren & HasVNodeChildren,\n ),\n );\n } else if (this.props.richFormatting && this.props.token.f) {\n const innerVnodes = formatted(graph, this.props.token.f);\n vnodes.push(\n createVNode(\n HtmlElement,\n \"span\",\n `${this.props.classes.word} tcrobe-word`,\n innerVnodes,\n HasTextChildren & MultipleChildren & HasVNodeChildren,\n _.isEmpty(wordStyle) ? undefined : { style: wordStyle },\n null,\n null,\n ),\n );\n } else {\n vnodes.push(\n createVNode(\n HtmlElement,\n \"span\",\n `${this.props.classes.word} tcrobe-word`,\n graph,\n HasTextChildren,\n _.isEmpty(wordStyle) ? undefined : { style: wordStyle },\n null,\n null,\n ),\n );\n }\n if (this.state?.gloss) {\n vnodes.push(\n createVNode(\n HtmlElement,\n \"span\",\n `${this.props.classes.gloss} tcrobe-gloss`,\n `(${this.state?.gloss})`,\n HasTextChildren,\n this.props.readerConfig.glossUnsureBackgroundColour && this.state.unsure\n ? { [UNSURE_ATTRIBUTE]: \"\" }\n : null,\n null,\n null,\n ),\n );\n }\n returnNode = createVNode(\n HtmlElement,\n \"span\",\n this.props.classes.entry,\n vnodes.filter((x) => !!x),\n MultipleChildren & HasVNodeChildren,\n {\n onclick: this.createTokenDetails,\n onmouseenter: this.createPopover,\n onmouseleave: () => this.createPopover(undefined),\n id: this.props.uniqueId,\n },\n undefined,\n (domRef) => {\n if (this.props.entryReadObserver && domRef) {\n this.props.entryReadObserver.observe(domRef);\n }\n },\n );\n } else {\n let children: InfernoNode[] = [graph];\n let flags = HasTextChildren;\n if (this.props.richFormatting && this.props.token.f) {\n children = formatted(graph, this.props.token.f);\n flags = HasTextChildren & MultipleChildren & HasVNodeChildren;\n }\n returnNode = createVNode(\n HtmlElement,\n \"span\",\n this.props.classes.word,\n children,\n flags,\n _.isEmpty(wordStyle) ? undefined : { style: wordStyle },\n null,\n null,\n );\n }\n this.props.elementIds?.delete(this.props.uniqueId);\n return returnNode;\n }\n}\n\nfunction mapStateToProps(state: RootState, props: EntryProps) {\n let readerConfig: ReaderState;\n switch (props.readerConfig.readerType) {\n case BOOK_READER_TYPE:\n readerConfig = state.bookReader[props.readerConfig.id];\n break;\n case VIDEO_READER_TYPE:\n readerConfig = state.videoReader[props.readerConfig.id];\n break;\n case EXTENSION_READER_TYPE:\n readerConfig = state.extensionReader[props.readerConfig.id];\n break;\n case SIMPLE_READER_TYPE:\n readerConfig = state.simpleReader[props.readerConfig.id];\n break;\n default:\n throw new Error(\"Unknown readerType. This is bad!\");\n }\n if (!readerConfig) {\n console.warn(props.readerConfig.id, state.videoReader, state.videoReader[props.readerConfig.id]);\n throw new Error(\"There is somehow no readerConfig\");\n }\n const isKnown =\n props.token.l in (state.knownWords.knownWordGraphs || {}) ||\n (props.token.w && props.token.w in (state.knownWords.knownWordGraphs || {}));\n return {\n glossToggled: props.token.id ? state.definitions[props.token.id]?.glossToggled : undefined,\n isKnown,\n glossing: readerConfig.glossing,\n mouseover: readerConfig.mouseover,\n translationProviderOrder: readerConfig.translationProviderOrder,\n strictProviderOrdering: readerConfig.strictProviderOrdering,\n fontColour: readerConfig.fontColour,\n richFormatting: readerConfig.richFormatting,\n };\n}\n\nexport default connect(mapStateToProps)(Entry);\n","/**\n * Determines the minimum value\n *\n * @param {number} d0 First number\n * @param {number} d1 Second number\n * @param {number} d2 Third number\n * @param {number} bx Character\n * @param {number} ay Character\n * @return {number}\n */\nfunction min(d0, d1, d2, bx, ay) {\n if (d0 < d1 || d2 < d1) {\n return d0 > d2 ? d2 + 1 : d0 + 1;\n }\n return bx === ay ? d1 : d1 + 1;\n}\n/**\n * Calculates the levenshtein distance between two strings\n *\n * @param {string} a First string\n * @param {string} b Second string\n * @return {number} Distance\n */\nexport default function levenshtein(a, b) {\n if (a === b) {\n return 0;\n }\n if (a.length > b.length) {\n [a, b] = [b, a];\n }\n let la = a.length;\n let lb = b.length;\n let offset = 0;\n while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) {\n la--;\n lb--;\n }\n while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) {\n offset++;\n }\n la -= offset;\n lb -= offset;\n if (la === 0 || lb < 3) {\n return lb;\n }\n let x = 0;\n let y;\n let d0;\n let d1;\n let d2;\n let d3;\n let dd = 0;\n let dy;\n let ay;\n let bx0;\n let bx1;\n let bx2;\n let bx3;\n const vector = [];\n for (y = 0; y < la; y++) {\n vector.push(y + 1);\n vector.push(a.charCodeAt(offset + y));\n }\n const len = vector.length - 1;\n for (; x < lb - 3;) {\n bx0 = b.charCodeAt(offset + (d0 = x));\n bx1 = b.charCodeAt(offset + (d1 = x + 1));\n bx2 = b.charCodeAt(offset + (d2 = x + 2));\n bx3 = b.charCodeAt(offset + (d3 = x + 3));\n dd = x += 4;\n for (y = 0; y < len; y += 2) {\n dy = vector[y];\n ay = vector[y + 1];\n d0 = min(dy, d0, d1, bx0, ay);\n d1 = min(d0, d1, d2, bx1, ay);\n d2 = min(d1, d2, d3, bx2, ay);\n dd = min(d2, d3, dd, bx3, ay);\n vector[y] = dd;\n d3 = d2;\n d2 = d1;\n d1 = d0;\n d0 = dy;\n }\n }\n for (; x < lb;) {\n bx0 = b.charCodeAt(offset + (d0 = x));\n dd = ++x;\n for (y = 0; y < len; y += 2) {\n dy = vector[y];\n vector[y] = dd = min(dy, d0, dd, bx0, vector[y + 1]);\n d0 = dy;\n }\n }\n return dd;\n}\n","import dayjs from \"dayjs\";\nimport levenshtein from \"js-levenshtein-esm\";\nimport {\n AnyTreebankPosType,\n KeyedModels,\n ModelType,\n ONSCREEN_DELAY_IS_CONSIDERED_READ,\n PosSentences,\n ReaderState,\n RecentSentencesType,\n SentenceType,\n KnownWords,\n USER_STATS_MODE,\n VocabEventData,\n ETF_ID_SEPARATOR,\n} from \"./types\";\nimport { platformHelper } from \"../app/createStore\";\n\nconst timeouts: { [key: string]: number } = {};\nconst NB_RECENT_SENTS_TO_KEEP = 3;\nconst MIN_LEVENSHTEIN_DIST_TO_KEEP = 4;\nconst IDEAL_RECENT_SENTS_LENGTH = 10;\n\nconst DATA_SOURCE = \"stats\";\n\n// TODO: should min/max be configurable? by language maybe?\nasync function addToRecentSentences(model: ModelType, minTokens = 5, maxTokens = 25): Promise {\n // TODO: think about the following...\n // This method has lots of \"failures\". As there can be lots of parallel executions (so we don't\n // block anything, and cos we don't really care...), there can be items that insert *after* another\n // instance of the method has queried for the \"existing\" items. That means the second one will think\n // there *isn't* a document when there really is. However, this doesn't really matter... as all we\n // care about is having sentences and if we are getting lots like this then that could well be\n // sub-optimal anyway.\n // It *might* be worth adding all these to a queue like it's done with the events (they are sort of\n // events anyway...), or even just adding this process to the normal events management, to have all\n // these user content consumption associated stuff done in a single place. For the moment this is\n // exploratory though, so we need to see how it performs, how much space it takes, etc, before\n // spending large amounts of time on it...\n\n const usableSentences = model.s.filter((s) => s.t.length >= minTokens && s.t.length <= maxTokens);\n // sort the list of sentences, with the closest in length to the ideal first\n if (usableSentences.length < 1) return;\n\n const wordIds = usableSentences.flatMap((s) => s.t.map((t) => t.id?.toString())).filter((x): x is string => !!x);\n if (wordIds.length < 1) return;\n\n usableSentences.sort(\n (a, b) => Math.abs(IDEAL_RECENT_SENTS_LENGTH - a.t.length) - Math.abs(IDEAL_RECENT_SENTS_LENGTH - b.t.length),\n );\n\n const bestNewSentsForWord = new Map(); // string =bbi\n const newWordCombos = new Set(); // wordId + # + pos\n for (const sent of usableSentences) {\n for (const token of sent.t) {\n if (token.id && token.pos) {\n const key = `${token.id.toString()}#${token.pos}`;\n if (!newWordCombos.has(key)) {\n newWordCombos.add(key);\n if (!bestNewSentsForWord.has(token.id.toString())) {\n bestNewSentsForWord.set(token.id.toString(), []);\n }\n bestNewSentsForWord.get(token.id.toString())?.push({ pos: token.pos, sent: sent });\n }\n }\n }\n }\n const existingRSents = new Map(await platformHelper.getRecentSentences(wordIds));\n const inserts: RecentSentencesType[] = [];\n const updatedSents: RecentSentencesType[] = [];\n for (const wordId of wordIds) {\n const wordToUpdate = existingRSents.get(wordId);\n if (!wordToUpdate) {\n const posSentences: PosSentences = {};\n const s = bestNewSentsForWord.get(wordId);\n if (s) {\n for (const entry of s) {\n posSentences[entry.pos] = [{ dateViewed: dayjs().unix(), sentence: entry.sent, manual: false }];\n // FIXME: think about these...\n // source?: string; //URL\n // modelId?: number; //the nanosecond timestamp from the API\n }\n inserts.push({ id: wordId, posSentences: posSentences });\n }\n } else {\n const s = bestNewSentsForWord.get(wordId);\n if (s) {\n for (const entry of s) {\n const array = wordToUpdate.posSentences[entry.pos] || [];\n let keep = true;\n const plainSent = entry.sent.t.map((t) => t.l).join(\"\");\n if (array.length === NB_RECENT_SENTS_TO_KEEP && array[0].dateViewed > dayjs().add(-1, \"d\").unix()) {\n // Only update a given word-pos max once per 24 hours\n continue;\n }\n // Only update if there isn't a very similar sentence already in the list\n for (const existing of array) {\n if (levenshtein(plainSent, existing.sentence.t.map((t) => t.l).join(\"\")) < MIN_LEVENSHTEIN_DIST_TO_KEEP) {\n keep = false;\n break;\n }\n }\n if (keep) {\n array.unshift({\n dateViewed: dayjs().valueOf() / 1000,\n sentence: entry.sent,\n manual: false,\n });\n wordToUpdate.posSentences[entry.pos] = array.slice(0, NB_RECENT_SENTS_TO_KEEP);\n updatedSents.push(wordToUpdate);\n }\n }\n }\n }\n }\n // TODO: Should we wait here? Almost certainly NOT!\n if (inserts.length > 0) {\n platformHelper.addRecentSentences(inserts);\n }\n if (updatedSents.length > 0) {\n platformHelper.updateRecentSentences(updatedSents);\n }\n}\n\n// FIXME: glossing should be an enum\nfunction vocabCountersFromETF(model: ModelType, glossing: number, knownCards: Partial) {\n const counter: VocabEventData = {};\n\n for (const sentence of model.s) {\n for (const token of sentence.t) {\n // it needs to have a pos for us to be interested, though maybe \"bg\" would be better\n if (token.pos && (token.id || token.bg)) {\n // TODO: decide whether to do the lowercase here or serverside. Or maybe somewhere else...\n const lemma = token.l.toLocaleLowerCase();\n const lookedUp = glossing > USER_STATS_MODE.NO_GLOSS && !(lemma in (knownCards.knownWordGraphs || {}));\n counter[lemma] = counter[lemma]\n ? [counter[lemma][0] + 1, lookedUp ? counter[lemma][1] + 1 : 0]\n : [1, lookedUp ? 1 : 0];\n }\n }\n }\n return counter;\n}\n\n// the callback function that will be fired when the enriched-text-fragment element apears in the viewport\nexport function observerFunc(\n models: KeyedModels,\n readerConfig: () => ReaderState,\n knownCards: () => Partial,\n contentId: string,\n href: string,\n onScreenModels?: Set,\n questionModelCandidates?: Set,\n) {\n return function onScreen(entries: IntersectionObserverEntry[]): void {\n for (const entry of entries) {\n // if (typeof entry.isVisible === \"undefined\") {\n // entry.isVisible = true;\n // } // Feature detection for Intersection V2\n\n // if (entry.isIntersecting && entry.isVisible) { // FIXME: exchange for the following for V2 onscreen detection\n const target = entry.target as HTMLElement;\n\n // There is sometimes etfs that don't have models (or text usually) for some hardly defensible hacky reasons\n if (entry.isIntersecting) {\n onScreenModels?.add(target.id);\n if (target.dataset.tcread !== \"true\" && models[target.id]) {\n // eslint-disable-next-line no-loop-func\n timeouts[target.id] = window.setTimeout(() => {\n target.dataset.tcread = \"true\";\n const tstats = vocabCountersFromETF(models[target.id], readerConfig().glossing, knownCards());\n questionModelCandidates?.add(target.id);\n if (Object.entries(tstats).length === 0) {\n console.debug(\"An empty model - how can this happen?\", target.id, models[target.id]);\n } else {\n // TODO: WARNING:!!! the tstats consider that if it has been glossed, it has been looked up!!!\n // TODO: WARNING:!!! if you turn off/on glossing for a word temporarily, it considers only the\n // actual known state, not what was onscreen!!!\n const userEvent = {\n type: \"bulk_vocab\" as const,\n source: DATA_SOURCE,\n data: tstats,\n user_stats_mode: readerConfig().glossing,\n };\n platformHelper.submitUserEvents([userEvent]);\n // console.debug(\"Submitted bulk_vocab\", userEvent);\n\n const readEvent = {\n type: \"read_event\" as const,\n source: DATA_SOURCE,\n data: {\n content_id: contentId,\n href,\n model_id: target.id,\n read_at: dayjs().unix(),\n },\n user_stats_mode: readerConfig().glossing,\n };\n platformHelper.submitUserEvents([readEvent]);\n\n // We are NOT waiting here, as this is a nice-to-have really, and we don't want it to\n // hold up other, immediately user-visible tasks. Only collect if we are doing that now,\n // which we do by default\n if (readerConfig().collectRecents) {\n addToRecentSentences(models[target.id]);\n }\n }\n }, ONSCREEN_DELAY_IS_CONSIDERED_READ);\n }\n } else {\n clearTimeout(timeouts[target.id]);\n onScreenModels?.delete(target.id);\n }\n }\n };\n}\n\n// the callback function that will be fired when the enriched-text-fragment element apears in the viewport\nexport function simpleModelObserverFunc(\n models: KeyedModels,\n readerConfig: () => ReaderState,\n contentId: string,\n href: string,\n onScreenModels?: Set,\n questionModelCandidates?: Set,\n) {\n return function onScreen(entries: IntersectionObserverEntry[]): void {\n for (const entry of entries) {\n const target = entry.target as HTMLElement;\n\n if (entry.isIntersecting) {\n onScreenModels?.add(target.id);\n if (target.dataset.tcread !== \"true\" && models[target.id]) {\n // eslint-disable-next-line no-loop-func\n timeouts[target.id] = window.setTimeout(() => {\n target.dataset.tcread = \"true\";\n questionModelCandidates?.add(target.id);\n const readEvent = {\n type: \"read_event\" as const,\n source: DATA_SOURCE,\n data: {\n content_id: contentId,\n href,\n model_id: target.id,\n read_at: dayjs().unix(),\n },\n user_stats_mode: readerConfig().glossing,\n };\n platformHelper.submitUserEvents([readEvent]);\n\n // We are NOT waiting here, as this is a nice-to-have really, and we don't want it to\n // hold up other, immediately user-visible tasks. Only collect if we are doing that now,\n // which we do by default\n if (readerConfig().collectRecents) {\n addToRecentSentences(models[target.id]);\n }\n // }\n }, ONSCREEN_DELAY_IS_CONSIDERED_READ);\n }\n } else {\n clearTimeout(timeouts[target.id]);\n onScreenModels?.delete(target.id);\n }\n }\n };\n}\n\n// the callback function that will be fired when the entry element apears in the viewport\nexport function entryObserverFunc(\n models: KeyedModels,\n readerConfig: () => ReaderState,\n knownCards: () => Partial,\n) {\n return function onScreen(entries: IntersectionObserverEntry[]): void {\n for (const entry of entries) {\n const target = entry.target as HTMLElement;\n\n // There is sometimes etfs that don't have models (or text usually) for some hardly defensible hacky reasons\n if (entry.isIntersecting) {\n const ids = target.id.split(ETF_ID_SEPARATOR);\n const token = models[ids[0]].s[parseInt(ids[1])].t[parseInt(ids[2])];\n if (target.dataset.tcread !== \"true\" && token) {\n // eslint-disable-next-line no-loop-func\n timeouts[target.id] = window.setTimeout(() => {\n target.dataset.tcread = \"true\";\n const lemma = token.l.toLocaleLowerCase();\n const lookedUp =\n readerConfig().glossing > USER_STATS_MODE.NO_GLOSS && !(lemma in (knownCards().knownWordGraphs || {}));\n const tstats = token.pos && (token.id || token.bg) ? { [token.l]: [1, lookedUp ? 1 : 0] } : {};\n if (Object.entries(tstats).length === 0) {\n console.debug(\"An empty model - how can this happen?\", target.id, models[target.id]);\n } else {\n // TODO: WARNING:!!! the tstats consider that if it has been glossed, it has been looked up!!!\n // TODO: WARNING:!!! if you turn off/on glossing for a word temporarily, it considers only the\n // TODO: WARNING:!!! number nouns are NOT glossed, even if they are not known, and are still considered \"looked up\"\n // actual known state, not what was onscreen!!!\n const userEvent = {\n type: \"bulk_vocab\" as const,\n source: DATA_SOURCE,\n data: tstats as VocabEventData,\n user_stats_mode: readerConfig().glossing,\n };\n platformHelper.submitUserEvents([userEvent]);\n // console.debug(\"Submitted bulk_vocab\", userEvent);\n }\n }, ONSCREEN_DELAY_IS_CONSIDERED_READ);\n }\n } else {\n clearTimeout(timeouts[target.id]);\n }\n }\n };\n}\n","import { createComponentVNode, render, VNode } from \"inferno\";\nimport { Provider } from \"inferno-redux\";\nimport { AdminStore } from \"../../../app/createStore\";\nimport { observerFunc } from \"../../../lib/stats\";\nimport {\n ComponentClass,\n ComponentFunction,\n ETF_ID_SEPARATOR,\n KeyedModels,\n ModelType,\n ParentTag,\n ReaderState,\n} from \"../../../lib/types\";\nimport { ETFStylesProps } from \"../../Common\";\nimport Entry from \"./Entry\";\nimport { tokenStr } from \"../../../lib/funclib\";\n\ntype Props = {\n elementIds?: Set;\n model: ModelType;\n readerConfig: ReaderState;\n classes: ETFStylesProps[\"classes\"];\n clickable?: boolean;\n entryReadObserver?: IntersectionObserver;\n};\n\nexport default function EnrichedTextFragment({\n model,\n readerConfig,\n classes,\n clickable,\n elementIds,\n entryReadObserver,\n}: Props): VNode[] {\n if (model?.s) {\n const ls = model.s.length;\n const sents: VNode[] = [];\n if (model.f) {\n const corrs: number[] = [];\n let formatString = \"\";\n for (let i = 0; i < model.f.length; i++) {\n corrs.push(...Array(model.f[i].s.length).fill(i));\n formatString += model.f[i].s;\n }\n let sStr = \"\";\n if (model.s?.[0]?.t && model.s[0].t.length > 0) {\n sStr += model.s[0].t[0]?.[\"b\"] || \"\";\n }\n for (const s of model.s) {\n for (const t of s.t) {\n const tStr = tokenStr(t);\n const parentTagsArray: (ParentTag[] | undefined)[] = [];\n for (let i = 0; i < tStr.length; i++) {\n parentTagsArray.push(model.f[corrs[sStr.length + i]].t);\n }\n if (parentTagsArray.filter((x) => !!x).length > 0) {\n t.f = parentTagsArray;\n }\n sStr += tStr;\n }\n }\n }\n for (let i = 0; i < ls; i++) {\n const lt = model.s[i].t.length;\n if (lt) {\n const tokens: VNode[] = [];\n for (let j = 0; j < lt; j++) {\n elementIds?.add(`${model.id}${ETF_ID_SEPARATOR}${i.toString()}${ETF_ID_SEPARATOR}${j.toString()}`);\n tokens.push(\n createComponentVNode(ComponentClass, Entry, {\n elementIds,\n uniqueId: `${model.id}${ETF_ID_SEPARATOR}${i.toString()}${ETF_ID_SEPARATOR}${j.toString()}`,\n readerConfig,\n token: model.s[i].t[j],\n sentence: model.s[i],\n classes,\n clickable,\n entryReadObserver,\n }),\n );\n }\n sents.push(...tokens);\n }\n }\n return sents;\n } else {\n return [];\n }\n}\n\nexport function enrichETFElements(\n element: HTMLElement,\n html: string,\n readerConfig: ReaderState,\n models: KeyedModels,\n store: AdminStore,\n classes: ETFStylesProps[\"classes\"],\n contentId: string,\n href: string,\n elementIds?: Set,\n) {\n element.innerHTML = html;\n const elements = element.querySelectorAll(\"enriched-text-fragment\");\n const readObserver = new IntersectionObserver(\n observerFunc(\n models,\n () => readerConfig,\n () => store.getState().knownWords,\n contentId,\n href,\n ),\n {\n threshold: [0, 1.0],\n },\n );\n for (let i = 0; i < elements.length; ++i) {\n const id = elements[i].id;\n if (!id) continue;\n if (!models[id]) {\n console.error(\"Missing model\", models, elements, id, elements[i], html);\n continue;\n }\n const etf = document.createElement(\"span\");\n etf.id = id;\n // FIXME: hardcoded style\n etf.style.cssText = \"padding-left: 0.25em;\";\n elements[i].replaceWith(etf);\n readObserver.observe(etf);\n render(\n createComponentVNode(ComponentClass, Provider, {\n store: store,\n children: [\n createComponentVNode(\n ComponentFunction,\n EnrichedTextFragment,\n {\n elementIds,\n readerConfig: readerConfig,\n model: models[id],\n classes: classes,\n },\n null,\n {\n onComponentWillUnmount() {\n readObserver.unobserve(etf);\n },\n },\n ),\n ],\n }),\n etf,\n );\n }\n}\n"],"names":["isDevelopment","sheetForTag","tag","i","createStyleElement","options","StyleSheet","_this","before","_proto","nodes","rule","sheet","_tag$parentNode","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","from","assign","hash","value","length","charat","trim","match","pattern","replace","replacement","indexof","search","index","substr","begin","end","strlen","sizeof","append","array","combine","callback","line","column","position","character","characters","node","root","parent","type","props","children","copy","char","prev","next","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","k","x","y","z","serialize","output","stringify","element","middleware","collection","rulesheet","memoize","fn","cache","arg","identifierWithPointTracking","toRules","parsed","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefix","prefixer","defaultStylisPlugins","createCache","key","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","container","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","styles","selector","serialized","shouldCache","_extends","n","e","t","b","c","d","f","g","h","l","m","p","q","r","v","w","a","u","A","reactIs_production_min","reactIsModule","require$$0","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","component","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","descriptor","hoistNonReactStatics_cjs","isBrowser","getRegisteredStyles","registered","registeredStyles","classNames","rawClassName","className","registerStyles","isStringTag","insertStyles","current","murmur2","str","len","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","noComponentSelectorMessage","handleInterpolation","mergedProps","interpolation","componentSelector","keyframes","serializedStyles","createStringFromObject","previousCursor","result","asString","cached","obj","string","_i","interpolated","labelPattern","serializeStyles","args","stringMode","strings","asTemplateStringsArr","templateStringsArr","identifierName","name","hashString","syncFallback","create","useInsertionEffect","React","useInsertionEffectAlwaysWithSyncFallback","useInsertionEffectWithLayoutFallback","React.useLayoutEffect","EmotionCacheContext","React.createContext","CacheProvider","__unsafe_useEmotionCache","useContext","withEmotionCache","func","forwardRef","ref","ThemeContext","hasOwn","typePropName","createEmotionProps","newProps","Insertion","_ref","Emotion","cssProp","WrappedComponent","React.useContext","React.createElement","React.Fragment","Emotion$1","jsx","argsLength","createElementArgArray","Global","sheetRef","React.useRef","rehydrating","sheetRefCurrent","css","_len","_key","insertable","common","red","purple","blue","lightBlue","green","orange","grey","formatMuiErrorMessage","code","url","THEME_ID","_objectWithoutPropertiesLoose","reactPropsRegex","isPropValid","prop","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","propName","createStyled","baseTag","targetClassName","defaultShouldForwardProp","shouldUseAs","Styled","FinalTag","classInterpolations","finalShouldForwardProp","nextTag","nextOptions","tags","newStyled","tagName","StyledEngineProvider","injectFirst","_jsx","isEmpty","GlobalStyles","defaultTheme","globalStyles","themeInput","styled","emStyled","internal_processStyles","processor","isPlainObject","item","prototype","deepClone","source","deepmerge","target","_excluded","sortBreakpointsValues","values","breakpointsAsArray","breakpoint1","breakpoint2","acc","createBreakpoints","breakpoints","unit","step","other","sortedValues","up","down","between","start","endIndex","only","not","keyIndex","shape","merge","defaultBreakpoints","handleBreakpoints","propValue","styleFromPropValue","theme","themeBreakpoints","breakpoint","mediaKey","cssKey","createEmptyBreakpointObject","breakpointsInput","_breakpointsInput$key","breakpointStyleKey","removeUnusedBreakpoints","breakpointKeys","style","breakpointOutput","mergeBreakpointsInOrder","emptyBreakpoints","mergedOutput","computeBreakpointsBase","breakpointValues","base","breakpointsKeys","resolveBreakpointValues","customBase","capitalize","_formatMuiErrorMessage","getPath","path","checkVars","val","getStyleValue","themeMapping","transform","propValueFinal","userValue","cssProperty","themeKey","properties","directions","aliases","getCssProperties","direction","dir","marginKeys","paddingKeys","createUnaryUnit","defaultValue","_getPath","themeSpacing","createUnarySpacing","getValue","transformer","transformed","getStyleFromPropValue","cssProperties","resolveCssProperty","margin","padding","createSpacing","spacingInput","spacing","argsInput","argument","compose","handlers","borderTransform","createBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outline","outlineColor","borderRadius","gap","columnGap","rowGap","gridColumn","gridRow","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","paletteTransform","color","bgcolor","backgroundColor","sizingTransform","width","maxWidth","_props$theme","_props$theme2","breakpointsValues","minWidth","height","maxHeight","minHeight","boxSizing","defaultSxConfig","objectsHaveSameKeys","objects","allKeys","object","union","callIfFn","maybeFn","unstable_createStyleFunctionSx","getThemeValue","config","styleFunctionSx","_theme$unstable_sxCon","sx","traverse","sxInput","sxObject","styleKey","applyStyles","createTheme","paletteInput","shapeInput","muiTheme","splitProps","_props$theme$unstable","extendSxProp","inSx","systemProps","otherProps","finalSx","defaultGenerator","componentName","createClassNameGenerator","generate","generator","ClassNameGenerator","o","clsx","globalStateClasses","generateUtilityClass","slot","globalStatePrefix","globalStateClass","generateUtilityClasses","slots","fnNameMatchRegex","getFunctionName","getFunctionComponentName","Component","fallback","getWrappedName","outerType","innerType","wrapperName","functionName","getDisplayName","ForwardRef","Memo","resolveProps","defaultProps","defaultSlotProps","slotProps","slotPropName","useEnhancedEffect","React.useEffect","clamp","min","max","createChainedFunction","funcs","debounce","wait","timeout","debounced","later","deprecatedPropType","validator","reason","isMuiElement","muiNames","_muiName","_element$type","React.isValidElement","ownerDocument","ownerWindow","requirePropFactory","componentNameInError","setRef","globalId","useGlobalId","idOverride","defaultId","setDefaultId","React.useState","id","maybeReactUseId","useId","reactId","unsupportedProp","location","propFullName","useControlled","controlled","defaultProp","state","isControlled","valueState","setValue","setValueIfUncontrolled","React.useCallback","newValue","useEventCallback","useForkRef","refs","React.useMemo","instance","UNINITIALIZED","useLazyRef","init","initArg","EMPTY","useOnMount","Timeout","delay","useTimeout","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","focusTriggersKeyboardModality","handleKeyDown","event","handlePointerDown","handleVisibilityChange","prepare","doc","isFocusVisible","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","composeClasses","getUtilityClass","classes","utilityClass","PropsContext","DefaultPropsProvider","getThemeProps","params","useDefaultProps","ctx","_typeof","toPrimitive","toPropertyKey","createMixins","mixins","_interopRequireDefault","module","colorManipulator","alpha_1","alpha","blend","darken_1","darken","decomposeColor","emphasize_1","emphasize","getContrastRatio_1","getContrastRatio","getLuminance","hexToRgb","hslToRgb","lighten_1","lighten","private_safeAlpha","private_safeDarken","private_safeEmphasize","private_safeLighten","recomposeColor","rgbToHex","_formatMuiErrorMessage2","require$$1","_clamp","require$$2","clampWrapper","re","colors","intToHex","int","hex","marker","colorSpace","colorChannel","decomposedColor","idx","private_safeColorChannel","warning","s","rgb","foreground","background","lumA","lumB","coefficient","overlay","opacity","gamma","blendChannel","overlayColor","light","dark","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","getDefaultPrimary","mode","getDefaultSecondary","getDefaultError","getDefaultInfo","getDefaultSuccess","getDefaultWarning","createPalette","palette","contrastThreshold","primary","secondary","error","info","success","getContrastText","augmentColor","mainShade","lightShade","darkShade","modes","round","caseAllCaps","defaultFontFamily","createTypography","typography","fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem2","coef","pxToRem","buildVariant","fontWeight","lineHeight","letterSpacing","casing","variants","shadowKeyUmbraOpacity","shadowKeyPenumbraOpacity","shadowAmbientShadowOpacity","createShadow","px","shadows","easing","duration","formatMs","milliseconds","getAutoHeightDuration","constant","createTransitions","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","animatedProp","zIndex","mixinsInput","transitionsInput","typographyInput","systemTheme","systemCreateTheme","createStyled_1","_default","_extends2","_objectWithoutPropertiesLoose2","_styledEngine","_interopRequireWildcard","require$$3","_deepmerge","require$$4","require$$5","require$$6","_createTheme","require$$7","_styleFunctionSx","require$$8","_excluded2","_excluded3","_getRequireWildcardCache","systemDefaultTheme","lowercaseFirstLetter","resolveTheme","themeId","defaultOverridesResolver","processStyleArg","callableStyle","ownerState","resolvedStylesArg","resolvedStyle","variant","isMatch","input","rootShouldForwardProp","slotShouldForwardProp","systemSx","inputOptions","componentSlot","inputSkipVariantsResolver","inputSkipSx","overridesResolver","skipVariantsResolver","skipSx","label","shouldForwardPropOption","defaultStyledResolver","transformStyleArg","stylesArg","muiStyledResolver","styleArg","expressions","transformedStyleArg","expressionsWithDefaultTheme","styleOverrides","resolvedStyleOverrides","slotKey","slotStyle","_theme$components","themeVariants","numOfCustomFnsApplied","placeholders","useSystemDefaultProps","getSvgIconUtilityClass","useUtilityClasses","SvgIconRoot","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_palette$ownerState$c","_palette","_palette2","_palette3","SvgIcon","React.forwardRef","inProps","htmlColor","inheritViewBox","titleAccess","viewBox","hasSvgAsChild","more","_jsxs","createSvgIcon","displayName","React.memo","unstable_ClassNameGenerator","_setPrototypeOf","_inheritsLoose","setPrototypeOf","_assertThisInitialized","exports","_utils","_defineProperties","_createClass","plainObjectConstrurctor","cloneStyle","newStyle","createRule","decl","jss","declCopy","join","by","toCssValue","cssValue","getWhitespaceSymbols","indentStr","indent","toCss","_options","_options$indent","fallbacks","_getWhitespaceSymbols","linebreak","space","_prop","_value","_prop2","_value2","escapeRegex","nativeEscape","escape","BaseStyleRule","Renderer","force","isDefined","remove","StyleRule","_BaseStyleRule","scoped","generateId","_proto2","renderable","renderer","json","link","opts","hasChanged","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","atMatch","RuleList","newRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","replaceRef","refKeyframe","pluginKeyframesRule","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","pluginSimpleRule","plugins","defaultUpdateOptions","forceUpdateOptions","ruleOptions","_this$options","oldRule","oldIndex","nameOrSelector","data","_this$options2","nextValue","prevValue","_nextValue","_prevValue","queue","added","_this$rules","PluginsRegistry","processedValue","newPlugin","registry","plugin","SheetsRegistry","_temp","attached","sheets","globalThis$1","ns","moduleId","createGenerateId","ruleCounter","jssId","getPropertyValue","cssRule","setProperty","indexOfImportantFlag","cssValueWithoutImportantFlag","removeProperty","setSelector","selectorText","getHead","findHigherSheet","findHighestSheet","findCommentNode","text","head","findPrevNode","insertionPoint","insertStyle","nextNode","insertionPointElement","parentNode","getNonce","_insertRule","getValidRuleInsertionIndex","maxIndex","createStyle","el","DomRenderer","media","meta","nonce","deployed","nativeParent","latestNativeParent","_insertionIndex","ruleStr","insertionIndex","nativeRule","instanceCounter","Jss","isInBrowser","createJss","SheetsManager","entry","hasCSSTOMSupport","getDynamicStyles","to","extracted","now","fnValuesNs","fnRuleNs","functionPlugin","fnValues","styleRule","fnRule","symbolObservablePonyfill","Symbol","global","ponyfill","isObservable","$$observable","observablePlugin","updateOptions","style$","_loop","_ret","semiWithNl","cssText","split","colonIndex","onProcessRule","templatePlugin","at","atPrefix","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","scope","parts","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","jssGlobal","onCreateRule","isObject","valueNs","mergeExtend","extendType","refRule","originalStyle","extend","singleExtend","singleStyle","mergeRest","jssExtend","onProcessStyle","onChangeValue","parentRegExp","jssNested","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","registerClass","isSetted","jssCompose","uppercasePattern","msPattern","toHyphenLower","hyphenateStyleName","hName","convertCase","converted","hyphenate","camelCase","hyphenatedProp","ms","percent","defaultUnits","addCamelCasedVersion","regExp","newObj","units","iterate","innerProp","_innerProp","defaultUnit","camelCasedOptions","propArray","propArrayInObj","propObj","customPropObj","mapValuesByProp","objectToArray","processArray","scheme","isFallback","isInArray","customPropsToStyle","baseProp","customProps","_styleDetector","appendedValue","styleDetector","jssExpand","_arrayLikeToArray","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","js","vendor","browser","isTouch","jsCssMap","_document$createEleme","testProp","supportedKeyframes","appearence","colorAdjust","toUpper","camelize","pascalize","mask","longhand","textOrientation","transition","writingMode","userSelect","breakPropsOld","jsProp","_jsProp","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","flex2012","propMap$1","propKeys","prefixCss","flex2009","multiple","propertyDetectors","noPrefill","computed","key$1","supportedProperty","cache$1","transitionProperties","transPropsRegExp","el$1","prefixTransitionCallback","prefixedValue","supportedValue","cacheKey","jssVendorPrefixer","atRule","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","jssPropsSort","sort","prop0","prop1","functions","observable","template","expand","vendorPrefixer","propsSort","Check","default_1","_createSvgIcon","_jsxRuntime","SentimentSatisfied","SentimentVeryDissatisfied","SentimentVerySatisfied","BATCH_SIZE_PULL","BATCH_SIZE_PUSH","TIMESTAMP","RXPROCESSING","PROCESSING","COMMON_INFO","reloadRequired","getWordId","card","CARD_ID_SEPARATOR","getCardType","getCardId","wordId","cardType","QUESTION_ANSWER_SCHEMA","USER_DICTIONARIES_SCHEMA","ACTIVITY_QUEUE_SCHEMA","REQUEST_QUEUE_SCHEMA","SESSION_SCHEMA","LANGUAGECLASSES_SCHEMA","TEACHERREGISTRATIONS_SCHEMA","STUDENTREGISTRATIONS_SCHEMA","EFACTOR_DEFAULT","INTERVAL_DEFAULT","REPETITION_DEFAULT","NO_LIMIT","KNOWLEDGE_UNSET","GRADE","CARD_TYPES","CardDocumentMethods","CARDS_SCHEMA","RECENTSENTENCES_SCHEMA","SURVEYS_SCHEMA","IMPORTS_SCHEMA","PROCESS_TYPE","CONTENTS_SCHEMA","USERLISTS_SCHEMA","USERSURVEYS_SCHEMA","GOALS_SCHEMA","DBPullCollections","DBTwoWayCollections","DBTeacherTwoWayCollections","DBLocalCollections","DBCollections","DBSyncCollection","DEFAULT_FONT_COLOUR","DEFAULT_GLOSS_BACKGROUND_COLOUR","InfoBox","ThinHR","Conftainer","textShadow","fontTextShadow","fontStuff","fontFamilyMain","ETFStyles","glossPosition","SEGMENTED_BASE_PADDING","fontColour","hslToHex","UNSURE_ATTRIBUTE","glossUnsureBackgroundColour","glossFontColour","fontFamilyGloss","glossFontSize","hard","SentimentSatisfiedIcon","unknown","SentimentVeryDissatisfiedIcon","good","SentimentVerySatisfiedIcon","known","CheckIcon","GRADES","BASIC_GRADES","ensureDefinitionsLoaded","proxy","uniqueIds","store","potentialUserDefinitionGraphs","newDefinitions","defStates","addDefinitions","refreshDictionaries","fromLang","dictionaries","STATUS","addDictionaryProviders","getDefaultLanguageDictionaries","dico","NUMBER_POS","getWord","lemma","platformHelper","syncDefs","baseUrl","getDefinitionsForTokenByIds","definitions","defIds","defs","defId","def","getDefinitionsForToken","getL1","toLang","readerConfig","defaultL1","gloss","bestGuess","DEFINITION_LOADING","getSound","cleanedSound","getNormalGloss","uCardWords","glossing","USER_STATS_MODE","getL2Simplified","sound","soundWithSeparators","getTranslation","originalSentenceFromTokens","getRecentSentences","definition","recents","posRecents","pr","tokens","previousGloss","syns","toSimplePos","innerGloss","userSynonyms","filterKnown","isNumberToken","pos","eventCoordinates","BOOCROBES_HEADER_HEIGHT","submitActivity","activityType","activitySource","sessionId","getTimestamp","sessionActivityUpdate","updateSessionActivity","_","ACTIVITY_DEBOUNCE","positionPopup","popupWidth","eventX","eventY","popupParent","isFullscreenVideo","clientWidth","left","again","translateDown","pTop","isUnsure","pt","guessBetter","defin","knownCardWordGraphs","newDefinition","cleanGraph","affixCleaned","REMOVABLE_NOUN_SUFFIXES","REMOVABLE_ADVERB_SUFFIXES","REMOVABLE_VERB_COMPLEMENTS","isArray","isStringOrNumber","isNullOrUndef","isInvalid","isFunction","isString","isNumber","isNull","isUndefined","combineFrom","first","second","out","isLinkEventObject","EMPTY_OBJ","AnimationQueues","normalizeEventName","appendChild","parentDOM","dom","insertOrAppend","newNode","documentCreateElement","isSVG","replaceChild","newDom","lastDom","removeChild","childNode","callAll","arrayFn","findChildVNode","vNode","startEdge","flags","findDOMFromVNode","callAllAnimationHooks","animationQueue","animationsLeft","callAllMoveAnimationHooks","tmp","clearVNodeDOM","deferredRemoval","createDeferComponentClassRemovalCallback","removeVNodeDOM","animations","addMoveAnimationHook","parentVNode","refOrInstance","moveVNodeDOM","instanceProps","instanceFlags","createDerivedState","nextProps","renderCheck","setTextContent","isLastValueSameLinkEvent","lastValue","mergeUnsetProperties","safeCall1","method","arg1","keyPrefix","V","childFlags","createVNode","childFlag","normalizeChildren","mergeDefaultHooks","defaultHooks","mergeDefaultProps","resolveComponentFlags","createComponentVNode","createTextVNode","createFragment","fragment","createVoidVNode","normalizeProps","cloneFragment","vNodeToClone","oldChildren","directClone","propsToClone","_normalizeVNodes","currentKey","newKey","oldKey","isPrefixedKey","newChildren","newChildFlags","needsCloning","isNullKey","isPrefixed","normalizeRoot","xlinkNS","xmlNS","namespaces","getDelegatedEventObject","attachedEventCounts","attachedEvents","syntheticEvents","updateOrAddSyntheticEvent","eventsObject","attachEventToDocument","unmountSyntheticEvent","handleSyntheticEvent","lastEvent","nextEvent","getTargetNode","dispatchEvents","isClick","eventData","currentEvent","stopPropagation","isDefaultPrevented","isPropagationStopped","extendEventProperties","rootClickEvent","rootEvent","attachedEvent","isSameInnerHTML","innerHTML","tempdom","triggerEventListener","methodName","listener","nativeListenerName","createWrappedFunction","applyValue","fnMethod","newVNode","attachEvent","eventName","handler","previousKey","previousArgs","isCheckedType","onTextInputChange","applyValueInput","wrappedOnChange$1","emptywrapper","inputEvents","nextPropsOrEmpty","checked","hasValue","updateChildOptions","updateChildOption","onSelectChange","applyValueSelect","selectEvents","mounting","multiplePropInBoolean","onTextareaInputChange","applyValueTextArea","wrappedOnChange","textAreaEvents","domValue","processElement","addFormElementEventHandlers","isControlledFormElement","unmountRef","mountRef","lifecycle","unmount","unmountAllChildren","childAnimations","addDisappearAnimationHook","_childAnimations","domEl","createClearAllCallback","clearDOM","removeAllChildren","instanceOrRef","wrapLinkEvent","ev","patchEvent","patchStyle","lastAttrValue","nextAttrValue","domStyle","patchDangerInnerHTML","lastVNode","lastHtml","nextHtml","patchProp","hasControlledValue","mountProps","isFormElement","renderNewInput","context","nextInput","childContext","createClassComponentInstance","usesNewAPI","pending","renderFunctionalComponent","mount","mountElement","mountClassComponent","mountFunctionalComponent","mountText","mountFragment","mountPortal","placeHolderVNode","mountArrayChildren","childrenIsSVG","child","mountClassComponentCallbacks","mountFunctionalComponentCallbacks","createClassMountCallback","addAppearAnimationHook","createOnMountCallback","replaceWithNewNode","nextVNode","patch","nextFlags","patchElement","patchClassComponent","patchFunctionalComponent","patchText","patchFragment","patchPortal","patchSingleTextChild","lastChildren","nextChildren","patchContentEditableChildren","lastChildFlags","nextChildFlags","nextIsSingle","lastLen","patchChildren","lastContainer","nextContainer","lastProps","lastPropsOrEmpty","nextClassName","nextRef","lastRef","replaceOneVNodeWithMultipleVNodes","lastLength","nextLength","patchKeyedChildren","patchNonKeyedChildren","createDidUpdate","lastState","snapshot","updateClassComponent","nextState","hasSCU","shouldUpdate","nextHooksDefined","lastInput","nextText","lastChildrenLength","nextChildrenLength","commonLength","nextChild","lastChild","aLength","bLength","outerEdge","aEnd","bEnd","aNode","bNode","nextPos","outer","patchKeyedChildrenComplex","aStart","bStart","aLeft","bLeft","sources","canRemoveWholeContent","moved","patched","seq","lis_algorithm","maxLen","arr","arrI","hasDocumentAvailable","__render","rootInput","render","COMPONENTS_QUEUE","nextTick","microTaskPending","queueStateChanges","newState","stateKey","applyState","rerender","QU","callSetStateCallbacks","pendingState","INFERNO_STATICS","isGetOwnPropertySymbolsAvailable","customStatics","CLEARED","nullSubscriptionHandler","nullListenerCollection","createListenerCollection","listeners","isSubscribed","Subscription","parentSub","onStateChange","_excluded$2","self","_inheritsLoose$1","subClass","superClass","_setPrototypeOf$1","_objectWithoutPropertiesLoose$2","excluded","sourceKeys","hotReloadingVersion","dummyState","noop","makeSelectorStateful","sourceSelector","invariant","test","getDefaultName","connectAdvanced","selectorFactory","_ref$getDisplayName","_ref$methodName","_ref$renderCountProp","renderCountProp","_ref$shouldHandleStat","shouldHandleStateChanges","_ref$storeKey","storeKey","_ref$withRef","withRef","connectOptions","subscriptionKey","version","wrapWithConnect","wrappedComponentName","selectorFactoryOptions","Connect","_Component","_ref2","subscription","withExtras","Provider","shallowEqual","countA","countB","wrapMapToPropsConstant","getConstant","dispatch","constantSelector","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","_dispatch","stateOrDispatch","ownProps","whenMapDispatchToPropsIsFunction","mapDispatchToProps","whenMapDispatchToPropsIsMissing","whenMapDispatchToPropsIsObject","bindActionCreators","defaultMapDispatchToPropsFactories","whenMapStateToPropsIsFunction","mapStateToProps","whenMapStateToPropsIsMissing","defaultMapStateToPropsFactories","defaultMergeProps","stateProps","dispatchProps","merged","wrapMergePropsFunc","mergeProps","pure","areMergedPropsEqual","hasRunOnce","nextMergedProps","whenMergePropsIsFunction","whenMergePropsIsOmitted","defaultMergePropsFactories","_excluded$1","_objectWithoutPropertiesLoose$1","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleFirstCall","firstState","firstOwnProps","handleNewPropsAndNewState","handleNewProps","handleNewState","nextStateProps","statePropsChanged","handleSubsequentCalls","nextOwnProps","propsChanged","stateChanged","pureFinalPropsSelector","defaultSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","createConnect","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_temp2","_ref2$pure","_ref2$areStatesEqual","_ref2$areOwnPropsEqua","_ref2$areStatePropsEq","_ref2$areMergedPropsE","extraOptions","connect","RETRY_DEFINITION_MS","RETRY_DEFINITION_MAX_TRIES","getBoundingClientRect","top","right","bottom","sameCoordinates","vnodeFromParentTag","parentTag","HasTextChildren","MultipleChildren","HasVNodeChildren","HtmlElement","formatted","graph","charFormats","innerVnodes","buffer","modPile","vnodeBuffer","toRemove","pileDiff","finalNodes","doesNeedGloss","lexeme","knownWords","word","nonOptimisticKnows","Entry","destUrl","setMouseover","setTokenDetails","_a","completelyStopEvent","rootState","tokenDetails","localGloss","needsGloss","unsure","betterGuess","hasTones","toneColour","betterToken","attemptsRemaining","promise","coordinates","wordStyle","returnNode","vnodes","_b","charNodes","_c","_d","domRef","_e","BOOK_READER_TYPE","VIDEO_READER_TYPE","EXTENSION_READER_TYPE","SIMPLE_READER_TYPE","isKnown","Entry$1","d0","d1","d2","bx","ay","levenshtein","la","lb","d3","dd","dy","bx0","bx1","bx2","bx3","vector","timeouts","NB_RECENT_SENTS_TO_KEEP","MIN_LEVENSHTEIN_DIST_TO_KEEP","IDEAL_RECENT_SENTS_LENGTH","DATA_SOURCE","addToRecentSentences","model","minTokens","maxTokens","usableSentences","wordIds","bestNewSentsForWord","newWordCombos","sent","existingRSents","inserts","updatedSents","wordToUpdate","keep","plainSent","dayjs","existing","posSentences","vocabCountersFromETF","knownCards","counter","sentence","lookedUp","observerFunc","models","contentId","href","onScreenModels","questionModelCandidates","entries","tstats","userEvent","readEvent","ONSCREEN_DELAY_IS_CONSIDERED_READ","simpleModelObserverFunc","entryObserverFunc","ids","ETF_ID_SEPARATOR","EnrichedTextFragment","clickable","elementIds","entryReadObserver","ls","sents","corrs","formatString","sStr","tStr","tokenStr","parentTagsArray","lt","ComponentClass","enrichETFElements","html","elements","readObserver","etf","ComponentFunction"],"mappings":"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AAG,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,CAAC,EAAGA,EAAa,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,148,149,150,152]}