@madie/madie-design-system 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +10 -0
- package/.editorconfig +22 -0
- package/.eslintignore +5 -0
- package/.eslintrc.js +31 -0
- package/.storybook/.babelrc +4 -0
- package/.storybook/main.js +89 -0
- package/.storybook/preview-head.html +9 -0
- package/.storybook/preview.js +5 -0
- package/README.md +5 -0
- package/components/Accordion/Accordion.stories.js +20 -0
- package/components/Accordion/index.jsx +93 -0
- package/components/Alert/Alert.stories.js +61 -0
- package/components/Alert/index.js +46 -0
- package/components/Breadcrumb/Breadcrumb.md +28 -0
- package/components/Breadcrumb/Breadcrumb.stories.js +76 -0
- package/components/Breadcrumb/index.js +83 -0
- package/components/Button/Button.stories.js +121 -0
- package/components/Button/index.js +90 -0
- package/components/CalloutBox/CalloutBox.stories.js +94 -0
- package/components/CalloutBox/index.js +109 -0
- package/components/Card/Card.stories.js +163 -0
- package/components/Card/index.js +137 -0
- package/components/Dropdown/Dropdown.stories.js +94 -0
- package/components/Dropdown/index.js +85 -0
- package/components/Error/Collapsible.jsx +88 -0
- package/components/Error/ErrorUI.jsx +31 -0
- package/components/Error/error.js +26 -0
- package/components/FlashNotification/FlashNotificationUI.jsx +91 -0
- package/components/FlashNotification/index.js +30 -0
- package/components/Footer/Footer.stories.js +20 -0
- package/components/Footer/FooterUI.jsx +269 -0
- package/components/Footer/LegacyFooterUI.jsx +194 -0
- package/components/Footer/SocialLinks.jsx +60 -0
- package/components/Footer/Subscribe.jsx +34 -0
- package/components/Footer/footer.js +30 -0
- package/components/Header/Header.md +111 -0
- package/components/Header/Header.stories.js +32 -0
- package/components/Header/HeaderAccountMenu.jsx +169 -0
- package/components/Header/HeaderCancel.jsx +16 -0
- package/components/Header/HeaderContainer.jsx +63 -0
- package/components/Header/HeaderLogo.jsx +42 -0
- package/components/Header/HeaderMenuButton.js +50 -0
- package/components/Header/HeaderMenuItem.jsx +232 -0
- package/components/Header/HeaderMenuLink.js +50 -0
- package/components/Header/HeaderMenuSignOutButton.js +62 -0
- package/components/Header/HeaderMobileButton.js +37 -0
- package/components/Header/HeaderUI.jsx +167 -0
- package/components/Header/HelpIcon.jsx +32 -0
- package/components/Header/ImpersonatorBanner.jsx +57 -0
- package/components/Header/NavigationButtonIcon.jsx +27 -0
- package/components/Header/default-content.json +280 -0
- package/components/Header/header.js +40 -0
- package/components/Header/hooks.js +52 -0
- package/components/Header/utag-helpers.js +9 -0
- package/components/Infotip/Infotip.jsx +75 -0
- package/components/Infotip/Infotip.stories.js +50 -0
- package/components/Infotip/InfotipIcon.jsx +41 -0
- package/components/Infotip/index.js +3 -0
- package/components/Link/Link.stories.js +81 -0
- package/components/Link/index.js +61 -0
- package/components/Modal/LegacyModal.jsx +72 -0
- package/components/Modal/Modal.jsx +140 -0
- package/components/Modal/Modal.stories.js +159 -0
- package/components/Modal/index.jsx +22 -0
- package/components/NotificationBanner/NotificationBanner.stories.js +23 -0
- package/components/NotificationBanner/index.js +265 -0
- package/components/SanitizedContent/index.jsx +200 -0
- package/components/Search/Search.stories.js +21 -0
- package/components/Search/index.js +85 -0
- package/components/SessionDialog/sessionDialog.js +26 -0
- package/components/SessionDialogUI.jsx +261 -0
- package/components/SideNav/AnimationGroup/AnimationGroup.jsx +27 -0
- package/components/SideNav/Chart/ScoreChart.jsx +268 -0
- package/components/SideNav/Chart/__tests__/ScoreChart.test.js +22 -0
- package/components/SideNav/Chart/__tests__/__snapshots__/ScoreChart.test.js.snap +173 -0
- package/components/SideNav/Chart/index.js +3 -0
- package/components/SideNav/Content/LevelOneContent.jsx +208 -0
- package/components/SideNav/Content/LevelTwoContent.jsx +216 -0
- package/components/SideNav/Content/index.js +4 -0
- package/components/SideNav/Details/IndividualDetails.jsx +18 -0
- package/components/SideNav/Details/PracticeDetails.jsx +45 -0
- package/components/SideNav/Details/index.js +4 -0
- package/components/SideNav/Links/CmsSwitchLink.jsx +41 -0
- package/components/SideNav/Links/NavItemInline.jsx +54 -0
- package/components/SideNav/Links/NavLinkContainer.jsx +38 -0
- package/components/SideNav/Links/NavLinkDrawer.jsx +249 -0
- package/components/SideNav/Links/NavLinkInline.jsx +107 -0
- package/components/SideNav/Links/NavLinkToggle.jsx +34 -0
- package/components/SideNav/Links/index.js +13 -0
- package/components/SideNav/SideNav.md +50 -0
- package/components/SideNav/SideNav.stories.js +379 -0
- package/components/SideNav/UI/SideNavUI.jsx +333 -0
- package/components/SideNav/UI/default-content.json +99 -0
- package/components/SideNav/UI/index.js +3 -0
- package/components/SideNav/helpers.js +49 -0
- package/components/SideNav/index.js +53 -0
- package/components/Spinner/index.js +9 -0
- package/components/Tabs/Tab.js +26 -0
- package/components/Tabs/TabPanel.js +34 -0
- package/components/Tabs/Tabs.stories.js +120 -0
- package/components/Tabs/index.js +95 -0
- package/components/TextInput/TextInput.stories.js +118 -0
- package/components/TextInput/index.js +137 -0
- package/components/Tooltip/Tooltip.jsx +88 -0
- package/components/Tooltip/Tooltip.stories.js +80 -0
- package/components/Tooltip/index.js +3 -0
- package/components/Tooltip/position.js +68 -0
- package/components/UnwrappedSpinner/index.js +8 -0
- package/components/hooks/useGetConfig.js +74 -0
- package/components/index.js +126 -0
- package/dist/browser.js +3 -0
- package/dist/browser.js.LICENSE.txt +54 -0
- package/dist/browser.js.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.LICENSE.txt +54 -0
- package/dist/index.js.map +1 -0
- package/dist/react/index.js +3 -0
- package/dist/react/index.js.LICENSE.txt +71 -0
- package/dist/react/index.js.map +1 -0
- package/fonts/FontAwesome.otf +0 -0
- package/fonts/OFL.txt +92 -0
- package/fonts/Rubik-Black.ttf +0 -0
- package/fonts/Rubik-BlackItalic.ttf +0 -0
- package/fonts/Rubik-Bold.ttf +0 -0
- package/fonts/Rubik-BoldItalic.ttf +0 -0
- package/fonts/Rubik-Italic.ttf +0 -0
- package/fonts/Rubik-Light.ttf +0 -0
- package/fonts/Rubik-LightItalic.ttf +0 -0
- package/fonts/Rubik-Medium.ttf +0 -0
- package/fonts/Rubik-MediumItalic.ttf +0 -0
- package/fonts/Rubik-Regular.ttf +0 -0
- package/fonts/fontawesome-webfont.eot +0 -0
- package/fonts/fontawesome-webfont.svg +2671 -0
- package/fonts/fontawesome-webfont.ttf +0 -0
- package/fonts/fontawesome-webfont.woff +0 -0
- package/fonts/fontawesome-webfont.woff2 +0 -0
- package/images/favicon/android-chrome-192x192.png +0 -0
- package/images/favicon/android-chrome-256x256.png +0 -0
- package/images/favicon/apple-touch-icon.png +0 -0
- package/images/favicon/browserconfig.xml +9 -0
- package/images/favicon/favicon-16x16.png +0 -0
- package/images/favicon/favicon-32x32.png +0 -0
- package/images/favicon/favicon.ico +0 -0
- package/images/favicon/manifest.json +18 -0
- package/images/favicon/mstile-150x150.png +0 -0
- package/images/favicon/safari-pinned-tab.svg +32 -0
- package/images/hhs-logo-black.svg +10 -0
- package/images/hhs-logo-white.svg +10 -0
- package/images/icons/close-x.svg +6 -0
- package/images/icons/help-headset.svg +21 -0
- package/images/icons/svg/arrow-down.svg +1 -0
- package/images/icons/svg/arrow-download.svg +1 -0
- package/images/icons/svg/arrow-right.svg +1 -0
- package/images/icons/svg/calendar.svg +1 -0
- package/images/icons/svg/close.svg +1 -0
- package/images/icons/svg/download.svg +1 -0
- package/images/icons/svg/external.svg +1 -0
- package/images/icons/svg/file-upload.svg +1 -0
- package/images/icons/svg/print.svg +1 -0
- package/images/icons/svg/search.svg +7 -0
- package/images/icons/svg/tooltip-question.svg +6 -0
- package/images/icons/svg/trash.svg +1 -0
- package/images/icons/svg/upload.svg +1 -0
- package/images/qpp_logo_reversed.png +0 -0
- package/images/qpp_logo_rgb_color.png +0 -0
- package/index.js +31 -0
- package/jest/mediaFileTransformer.js +9 -0
- package/jest.config.js +188 -0
- package/lib/Chevron.jsx +32 -0
- package/lib/SvgComponents.jsx +539 -0
- package/lib/svg-definitions.svg +125 -0
- package/package.json +125 -0
- package/session/index.js +5 -0
- package/session/logout.js +65 -0
- package/session/refresh.js +49 -0
- package/session/ttl.js +37 -0
- package/styles/_global.scss +106 -0
- package/styles/_main.scss +15 -0
- package/styles/_paths.scss +1 -0
- package/styles/_qpp-style.scss +31 -0
- package/styles/components/_accordion.scss +289 -0
- package/styles/components/_alerts.scss +54 -0
- package/styles/components/_autocomplete.scss +47 -0
- package/styles/components/_breadcrumbs.scss +64 -0
- package/styles/components/_buttons.scss +580 -0
- package/styles/components/_error-page.scss +56 -0
- package/styles/components/_flash-notification.scss +98 -0
- package/styles/components/_fonts.scss +42 -0
- package/styles/components/_forms.scss +277 -0
- package/styles/components/_grid.scss +37 -0
- package/styles/components/_info-modal.scss +139 -0
- package/styles/components/_links.scss +12 -0
- package/styles/components/_modals.scss +18 -0
- package/styles/components/_notification-banner.scss +165 -0
- package/styles/components/_panels.scss +61 -0
- package/styles/components/_pie-chart.scss +13 -0
- package/styles/components/_score-chart.scss +164 -0
- package/styles/components/_spinner.scss +7 -0
- package/styles/components/_tables.scss +111 -0
- package/styles/components/_tabs.scss +69 -0
- package/styles/components/_text.scss +150 -0
- package/styles/components/_toggles.scss +3 -0
- package/styles/components/_tooltip.scss +23 -0
- package/styles/components/_variables.scss +157 -0
- package/styles/components/_wells.scss +92 -0
- package/styles/qppds/README.md +0 -0
- package/styles/qppds/base/_backgrounds.scss +7 -0
- package/styles/qppds/base/_fonts.scss +26 -0
- package/styles/qppds/base/_icon.scss +23 -0
- package/styles/qppds/base/_layout.scss +5 -0
- package/styles/qppds/base/_typography.scss +85 -0
- package/styles/qppds/base/index.scss +8 -0
- package/styles/qppds/components/_alert.scss +95 -0
- package/styles/qppds/components/_breadcrumbs.scss +70 -0
- package/styles/qppds/components/_button.scss +292 -0
- package/styles/qppds/components/_card.scss +175 -0
- package/styles/qppds/components/_dropdown.scss +55 -0
- package/styles/qppds/components/_footer.scss +597 -0
- package/styles/qppds/components/_header.scss +892 -0
- package/styles/qppds/components/_link.scss +52 -0
- package/styles/qppds/components/_modal.scss +118 -0
- package/styles/qppds/components/_page-header.scss +67 -0
- package/styles/qppds/components/_pagination.scss +227 -0
- package/styles/qppds/components/_search.scss +112 -0
- package/styles/qppds/components/_sidebar.scss +9 -0
- package/styles/qppds/components/_table.scss +139 -0
- package/styles/qppds/components/_tabs.scss +197 -0
- package/styles/qppds/components/_text-input.scss +60 -0
- package/styles/qppds/components/index.scss +16 -0
- package/styles/qppds/components/sidebar/_animations.scss +38 -0
- package/styles/qppds/components/sidebar/_cms.scss +61 -0
- package/styles/qppds/components/sidebar/_details.scss +58 -0
- package/styles/qppds/components/sidebar/_links.scss +444 -0
- package/styles/qppds/components/sidebar/_sidebar-animation.scss +125 -0
- package/styles/qppds/components/sidebar/_sidebar-tooltip.scss +33 -0
- package/styles/qppds/components/sidebar/_sidebar.scss +146 -0
- package/styles/qppds/components/sidebar/project-specific/_wi.scss +42 -0
- package/styles/qppds/index.scss +4 -0
- package/styles/qppds/settings/_functions.scss +4 -0
- package/styles/qppds/settings/_index.scss +3 -0
- package/styles/qppds/settings/mixins/_borders.scss +6 -0
- package/styles/qppds/settings/mixins/_focus.scss +28 -0
- package/styles/qppds/settings/mixins/_icons.scss +33 -0
- package/styles/qppds/settings/mixins/_index.scss +8 -0
- package/styles/qppds/settings/mixins/_layout.scss +74 -0
- package/styles/qppds/settings/mixins/_lists.scss +12 -0
- package/styles/qppds/settings/mixins/_table.scss +91 -0
- package/styles/qppds/settings/mixins/_type.scss +65 -0
- package/styles/qppds/settings/mixins/_visually-hidden.scss +30 -0
- package/styles/qppds/settings/variables/_color.scss +86 -0
- package/styles/qppds/settings/variables/_index.scss +3 -0
- package/styles/qppds/settings/variables/_layout.scss +67 -0
- package/styles/qppds/settings/variables/_type.scss +132 -0
- package/styles/qppds/utilities/_background-color.scss +134 -0
- package/styles/qppds/utilities/_color.scss +32 -0
- package/styles/qppds/utilities/_display-visibility.scss +83 -0
- package/styles/qppds/utilities/_flexbox.scss +240 -0
- package/styles/qppds/utilities/_font-family.scss +9 -0
- package/styles/qppds/utilities/_font-size.scss +8 -0
- package/styles/qppds/utilities/_font-weight.scss +8 -0
- package/styles/qppds/utilities/_height.scss +38 -0
- package/styles/qppds/utilities/_margin.scss +136 -0
- package/styles/qppds/utilities/_padding.scss +76 -0
- package/styles/qppds/utilities/_position.scss +24 -0
- package/styles/qppds/utilities/_text-align.scss +40 -0
- package/styles/qppds/utilities/_text-transform.scss +7 -0
- package/styles/qppds/utilities/_truncate.scss +8 -0
- package/styles/qppds/utilities/_width.scss +79 -0
- package/styles/qppds/utilities/index.scss +15 -0
- package/styles/qppds.scss +2 -0
- package/styles/third-party/_legacy-bootstrap.scss +19 -0
- package/styles/third-party/legacy-bootstrap/_buttons.scss +126 -0
- package/styles/third-party/legacy-bootstrap/_dropdowns.scss +211 -0
- package/styles/third-party/legacy-bootstrap/_forms.scss +510 -0
- package/styles/third-party/legacy-bootstrap/_grid.scss +73 -0
- package/styles/third-party/legacy-bootstrap/_mixins.scss +27 -0
- package/styles/third-party/legacy-bootstrap/_navbar.scss +644 -0
- package/styles/third-party/legacy-bootstrap/_navs.scss +193 -0
- package/styles/third-party/legacy-bootstrap/_normalize.scss +385 -0
- package/styles/third-party/legacy-bootstrap/_scaffolding.scss +116 -0
- package/styles/third-party/legacy-bootstrap/_variables.scss +858 -0
- package/styles/third-party/legacy-bootstrap/mixins/_buttons.scss +70 -0
- package/styles/third-party/legacy-bootstrap/mixins/_clearfix.scss +22 -0
- package/styles/third-party/legacy-bootstrap/mixins/_forms.scss +108 -0
- package/styles/third-party/legacy-bootstrap/mixins/_grid-framework.scss +86 -0
- package/styles/third-party/legacy-bootstrap/mixins/_grid.scss +112 -0
- package/styles/third-party/legacy-bootstrap/mixins/_labels.scss +12 -0
- package/styles/third-party/legacy-bootstrap/mixins/_nav-divider.scss +10 -0
- package/styles/third-party/legacy-bootstrap/mixins/_nav-vertical-align.scss +9 -0
- package/styles/third-party/legacy-bootstrap/mixins/_opacity.scss +7 -0
- package/styles/third-party/legacy-bootstrap/mixins/_panels.scss +30 -0
- package/styles/third-party/legacy-bootstrap/mixins/_reset-filter.scss +7 -0
- package/styles/third-party/legacy-bootstrap/mixins/_reset-text.scss +18 -0
- package/styles/third-party/legacy-bootstrap/mixins/_resize.scss +6 -0
- package/styles/third-party/legacy-bootstrap/mixins/_responsive-visibility.scss +25 -0
- package/styles/third-party/legacy-bootstrap/mixins/_size.scss +10 -0
- package/styles/third-party/legacy-bootstrap/mixins/_tab-focus.scss +9 -0
- package/styles/third-party/legacy-bootstrap/mixins/_table-row.scss +28 -0
- package/styles/third-party/legacy-bootstrap/mixins/_text-emphasis.scss +12 -0
- package/styles/third-party/legacy-bootstrap/mixins/_text-overflow.scss +8 -0
- package/styles/third-party/legacy-bootstrap/mixins/_vendor-prefixes.scss +182 -0
- package/styles/utility/_mixins.scss +46 -0
- package/styles/utility/_utilities.scss +73 -0
- package/test/components/Accordion.test.js +12 -0
- package/test/components/ErrorUI.test.js +33 -0
- package/test/components/FooterUI.test.js +90 -0
- package/test/components/HeaderUI.test.js +45 -0
- package/test/components/Infotip.test.js +73 -0
- package/test/components/SessionDialogUI.test.js +339 -0
- package/test/components/SideNavUI.test.js +23 -0
- package/test/components/Tooltip.test.js +147 -0
- package/test/index.test.js +8 -0
- package/test/session/session.test.js +221 -0
- package/test-setup.js +9 -0
- package/webpack.config.js +147 -0
- package/webpack.config.react.js +86 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://QPPStyle/webpack/bootstrap","webpack://QPPStyle/./node_modules/preact/dist/preact.module.js","webpack://QPPStyle/./node_modules/preact/hooks/dist/hooks.module.js","webpack://QPPStyle/./node_modules/preact/compat/dist/compat.module.js","webpack://QPPStyle/./node_modules/prop-types/index.js","webpack://QPPStyle/./node_modules/axios/lib/utils.js","webpack://QPPStyle/./lib/SvgComponents.jsx","webpack://QPPStyle/./node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack://QPPStyle/./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js","webpack://QPPStyle/./components/SideNav/helpers.js","webpack://QPPStyle/./node_modules/axios/index.js","webpack://QPPStyle/./node_modules/cookie/index.js","webpack://QPPStyle/./components/Header/hooks.js","webpack://QPPStyle/./components/SideNav/AnimationGroup/AnimationGroup.jsx","webpack://QPPStyle/./node_modules/@reach/utils/can-use-dom/dist/reach-utils-can-use-dom.esm.js","webpack://QPPStyle/./node_modules/axios/lib/defaults.js","webpack://QPPStyle/./node_modules/axios/lib/cancel/Cancel.js","webpack://QPPStyle/./components/Header/utag-helpers.js","webpack://QPPStyle/./session/logout.js","webpack://QPPStyle/./node_modules/jwt-decode/build/jwt-decode.esm.js","webpack://QPPStyle/./node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack://QPPStyle/./components/SanitizedContent/index.jsx","webpack://QPPStyle/./node_modules/cssfilter/lib/index.js","webpack://QPPStyle/./node_modules/xss/lib/util.js","webpack://QPPStyle/./components/hooks/useGetConfig.js","webpack://QPPStyle/./components/SideNav/Links/index.js","webpack://QPPStyle/./node_modules/@reach/portal/dist/reach-portal.esm.js","webpack://QPPStyle/./node_modules/@reach/utils/use-force-update/dist/reach-utils-use-force-update.esm.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/bind.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/buildURL.js","webpack://QPPStyle/./node_modules/axios/lib/core/enhanceError.js","webpack://QPPStyle/./node_modules/axios/lib/adapters/xhr.js","webpack://QPPStyle/./node_modules/axios/lib/core/createError.js","webpack://QPPStyle/./node_modules/axios/lib/cancel/isCancel.js","webpack://QPPStyle/./node_modules/axios/lib/core/mergeConfig.js","webpack://QPPStyle/./node_modules/axios/lib/env/data.js","webpack://QPPStyle/./components/Infotip/Infotip.jsx","webpack://QPPStyle/./components/SessionDialogUI.jsx","webpack://QPPStyle/./components/Modal/index.jsx","webpack://QPPStyle/./node_modules/react-modal/lib/index.js","webpack://QPPStyle/./node_modules/react-modal/lib/helpers/tabbable.js","webpack://QPPStyle/./node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack://QPPStyle/./node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack://QPPStyle/./node_modules/xss/lib/default.js","webpack://QPPStyle/./node_modules/cssfilter/lib/default.js","webpack://QPPStyle/./node_modules/cssfilter/lib/util.js","webpack://QPPStyle/./node_modules/xss/lib/parser.js","webpack://QPPStyle/./session/refresh.js","webpack://QPPStyle/./session/ttl.js","webpack://QPPStyle/./components/Header/HeaderMenuItem.jsx","webpack://QPPStyle/./lib/Chevron.jsx","webpack://QPPStyle/./components/SideNav/Details/index.js","webpack://QPPStyle/./components/SideNav/Chart/index.js","webpack://QPPStyle/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://QPPStyle/./index.js","webpack://QPPStyle/./components/Error/error.js","webpack://QPPStyle/./components/Error/ErrorUI.jsx","webpack://QPPStyle/./components/Error/Collapsible.jsx","webpack://QPPStyle/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://QPPStyle/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://QPPStyle/./components/Footer/footer.js","webpack://QPPStyle/./components/Footer/FooterUI.jsx","webpack://QPPStyle/./node_modules/axios/lib/axios.js","webpack://QPPStyle/./node_modules/axios/lib/core/Axios.js","webpack://QPPStyle/./node_modules/axios/lib/core/InterceptorManager.js","webpack://QPPStyle/./node_modules/axios/lib/core/dispatchRequest.js","webpack://QPPStyle/./node_modules/axios/lib/core/transformData.js","webpack://QPPStyle/./node_modules/process/browser.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://QPPStyle/./node_modules/axios/lib/core/settle.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/cookies.js","webpack://QPPStyle/./node_modules/axios/lib/core/buildFullPath.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/combineURLs.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/validator.js","webpack://QPPStyle/./node_modules/axios/lib/cancel/CancelToken.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/spread.js","webpack://QPPStyle/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://QPPStyle/./components/Tooltip/index.js","webpack://QPPStyle/./components/Tooltip/Tooltip.jsx","webpack://QPPStyle/./components/Tooltip/position.js","webpack://QPPStyle/./components/Infotip/InfotipIcon.jsx","webpack://QPPStyle/./components/Footer/LegacyFooterUI.jsx","webpack://QPPStyle/./components/Footer/Subscribe.jsx","webpack://QPPStyle/./components/Footer/SocialLinks.jsx","webpack://QPPStyle/./components/Header/header.js","webpack://QPPStyle/./components/Header/HeaderUI.jsx","webpack://QPPStyle/./components/Header/HeaderAccountMenu.jsx","webpack://QPPStyle/./node_modules/retry/index.js","webpack://QPPStyle/./node_modules/retry/lib/retry.js","webpack://QPPStyle/./node_modules/retry/lib/retry_operation.js","webpack://QPPStyle/./components/Modal/LegacyModal.jsx","webpack://QPPStyle/./node_modules/react-modal/lib/components/Modal.js","webpack://QPPStyle/./node_modules/react-modal/lib/components/ModalPortal.js","webpack://QPPStyle/./node_modules/react-modal/lib/helpers/focusManager.js","webpack://QPPStyle/./node_modules/react-modal/lib/helpers/scopeTab.js","webpack://QPPStyle/./node_modules/warning/warning.js","webpack://QPPStyle/./node_modules/exenv/index.js","webpack://QPPStyle/./node_modules/react-modal/lib/helpers/classList.js","webpack://QPPStyle/./node_modules/react-modal/lib/helpers/bodyTrap.js","webpack://QPPStyle/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://QPPStyle/./node_modules/xss/lib/index.js","webpack://QPPStyle/./node_modules/cssfilter/lib/css.js","webpack://QPPStyle/./node_modules/cssfilter/lib/parser.js","webpack://QPPStyle/./node_modules/xss/lib/xss.js","webpack://QPPStyle/./components/Modal/Modal.jsx","webpack://QPPStyle/./components/Header/HeaderMenuLink.js","webpack://QPPStyle/./components/Header/HeaderMenuButton.js","webpack://QPPStyle/./components/Header/NavigationButtonIcon.jsx","webpack://QPPStyle/./components/Header/HeaderMenuSignOutButton.js","webpack://QPPStyle/./session/index.js","webpack://QPPStyle/./components/Accordion/index.jsx","webpack://QPPStyle/./components/Header/HeaderCancel.jsx","webpack://QPPStyle/./components/Header/HeaderContainer.jsx","webpack://QPPStyle/./components/Header/HeaderLogo.jsx","webpack://QPPStyle/./components/NotificationBanner/index.js","webpack://QPPStyle/./components/Header/HeaderMobileButton.js","webpack://QPPStyle/./components/Header/ImpersonatorBanner.jsx","webpack://QPPStyle/./node_modules/@material-ui/icons/Close.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/typeof.js","webpack://QPPStyle/./node_modules/@material-ui/icons/utils/createSvgIcon.js","webpack://QPPStyle/./node_modules/react-is/index.js","webpack://QPPStyle/./node_modules/react-is/cjs/react-is.production.min.js","webpack://QPPStyle/./components/Button/index.js","webpack://QPPStyle/./components/Header/HelpIcon.jsx","webpack://QPPStyle/./components/SideNav/index.js","webpack://QPPStyle/./components/SideNav/UI/index.js","webpack://QPPStyle/./components/SideNav/UI/SideNavUI.jsx","webpack://QPPStyle/./node_modules/react-svg-inline/lib/index.js","webpack://QPPStyle/./node_modules/classnames/index.js","webpack://QPPStyle/./components/SideNav/Content/index.js","webpack://QPPStyle/./components/SideNav/Content/LevelOneContent.jsx","webpack://QPPStyle/./components/SideNav/Links/NavLinkContainer.jsx","webpack://QPPStyle/./components/SideNav/Links/NavLinkDrawer.jsx","webpack://QPPStyle/./components/SideNav/Links/NavLinkInline.jsx","webpack://QPPStyle/./components/SideNav/Links/NavLinkToggle.jsx","webpack://QPPStyle/./components/SideNav/Links/NavItemInline.jsx","webpack://QPPStyle/./components/SideNav/Content/LevelTwoContent.jsx","webpack://QPPStyle/./components/SideNav/Details/IndividualDetails.jsx","webpack://QPPStyle/./components/SideNav/Details/PracticeDetails.jsx","webpack://QPPStyle/./components/SideNav/Chart/ScoreChart.jsx","webpack://QPPStyle/./lib/svg-definitions.svg","webpack://QPPStyle/./components/SideNav/Links/CmsSwitchLink.jsx","webpack://QPPStyle/./components/SessionDialog/sessionDialog.js","webpack://QPPStyle/./node_modules/what-input/dist/what-input.js","webpack://QPPStyle/./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/capitalize.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/createChainedFunction.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://QPPStyle/./node_modules/clsx/dist/clsx.m.js","webpack://QPPStyle/./node_modules/is-in-browser/dist/module.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://QPPStyle/./node_modules/jss/dist/jss.esm.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/useTheme/useTheme.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","webpack://QPPStyle/./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","webpack://QPPStyle/./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","webpack://QPPStyle/./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","webpack://QPPStyle/./node_modules/hyphenate-style-name/index.js","webpack://QPPStyle/./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","webpack://QPPStyle/./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://QPPStyle/./node_modules/css-vendor/dist/css-vendor.esm.js","webpack://QPPStyle/./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","webpack://QPPStyle/./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://QPPStyle/./node_modules/@material-ui/utils/esm/deepmerge.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","webpack://QPPStyle/./node_modules/@material-ui/styles/esm/withStyles/withStyles.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/createBreakpoints.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/createMixins.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/colors/common.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/colors/grey.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/colors/indigo.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/colors/pink.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/colors/red.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/colors/orange.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/colors/blue.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/colors/green.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/colorManipulator.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/createPalette.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/createTypography.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/shadows.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/shape.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://QPPStyle/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://QPPStyle/./node_modules/@material-ui/system/esm/merge.js","webpack://QPPStyle/./node_modules/@material-ui/system/esm/breakpoints.js","webpack://QPPStyle/./node_modules/@material-ui/system/esm/spacing.js","webpack://QPPStyle/./node_modules/@material-ui/system/esm/memoize.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/createSpacing.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/transitions.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/zIndex.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/createTheme.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/defaultTheme.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/styles/withStyles.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/createSvgIcon.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/debounce.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/deprecatedPropType.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/isMuiElement.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/ownerDocument.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/ownerWindow.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/requirePropFactory.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/setRef.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/unsupportedProp.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/useControlled.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/useEventCallback.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/useForkRef.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/unstable_useId.js","webpack://QPPStyle/./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","webpack://QPPStyle/./node_modules/d3-path/src/path.js","webpack://QPPStyle/./node_modules/d3-shape/src/constant.js","webpack://QPPStyle/./node_modules/d3-shape/src/math.js","webpack://QPPStyle/./node_modules/d3-shape/src/arc.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/linear.js","webpack://QPPStyle/./node_modules/d3-shape/src/point.js","webpack://QPPStyle/./node_modules/d3-shape/src/line.js","webpack://QPPStyle/./node_modules/d3-shape/src/area.js","webpack://QPPStyle/./node_modules/d3-shape/src/descending.js","webpack://QPPStyle/./node_modules/d3-shape/src/identity.js","webpack://QPPStyle/./node_modules/d3-shape/src/pie.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/radial.js","webpack://QPPStyle/./node_modules/d3-shape/src/lineRadial.js","webpack://QPPStyle/./node_modules/d3-shape/src/areaRadial.js","webpack://QPPStyle/./node_modules/d3-shape/src/pointRadial.js","webpack://QPPStyle/./node_modules/d3-shape/src/array.js","webpack://QPPStyle/./node_modules/d3-shape/src/link/index.js","webpack://QPPStyle/./node_modules/d3-shape/src/symbol/circle.js","webpack://QPPStyle/./node_modules/d3-shape/src/symbol/cross.js","webpack://QPPStyle/./node_modules/d3-shape/src/symbol/diamond.js","webpack://QPPStyle/./node_modules/d3-shape/src/symbol/star.js","webpack://QPPStyle/./node_modules/d3-shape/src/symbol/square.js","webpack://QPPStyle/./node_modules/d3-shape/src/symbol/triangle.js","webpack://QPPStyle/./node_modules/d3-shape/src/symbol/wye.js","webpack://QPPStyle/./node_modules/d3-shape/src/symbol.js","webpack://QPPStyle/./node_modules/d3-shape/src/noop.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/basis.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/basisClosed.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/basisOpen.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/bundle.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/cardinal.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/catmullRom.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/linearClosed.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/monotone.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/natural.js","webpack://QPPStyle/./node_modules/d3-shape/src/curve/step.js","webpack://QPPStyle/./node_modules/d3-shape/src/offset/none.js","webpack://QPPStyle/./node_modules/d3-shape/src/order/none.js","webpack://QPPStyle/./node_modules/d3-shape/src/stack.js","webpack://QPPStyle/./node_modules/d3-shape/src/offset/expand.js","webpack://QPPStyle/./node_modules/d3-shape/src/offset/diverging.js","webpack://QPPStyle/./node_modules/d3-shape/src/offset/silhouette.js","webpack://QPPStyle/./node_modules/d3-shape/src/offset/wiggle.js","webpack://QPPStyle/./node_modules/d3-shape/src/order/appearance.js","webpack://QPPStyle/./node_modules/d3-shape/src/order/ascending.js","webpack://QPPStyle/./node_modules/d3-shape/src/order/descending.js","webpack://QPPStyle/./node_modules/d3-shape/src/order/insideOut.js","webpack://QPPStyle/./node_modules/d3-shape/src/order/reverse.js","webpack://QPPStyle/./node_modules/d3-selection/src/namespaces.js","webpack://QPPStyle/./node_modules/d3-selection/src/namespace.js","webpack://QPPStyle/./node_modules/d3-selection/src/creator.js","webpack://QPPStyle/./node_modules/d3-selection/src/selector.js","webpack://QPPStyle/./node_modules/d3-selection/src/selectorAll.js","webpack://QPPStyle/./node_modules/d3-selection/src/matcher.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/sparse.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/enter.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/data.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/sort.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/attr.js","webpack://QPPStyle/./node_modules/d3-selection/src/window.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/style.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/property.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/classed.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/text.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/html.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/raise.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/lower.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/insert.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/remove.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/clone.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/on.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/dispatch.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/index.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/select.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/selectAll.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/filter.js","webpack://QPPStyle/./node_modules/d3-selection/src/constant.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/exit.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/join.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/merge.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/order.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/call.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/nodes.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/node.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/size.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/empty.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/each.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/append.js","webpack://QPPStyle/./node_modules/d3-selection/src/selection/datum.js","webpack://QPPStyle/./node_modules/d3-selection/src/select.js","webpack://QPPStyle/./node_modules/d3-selection/src/create.js","webpack://QPPStyle/./node_modules/d3-selection/src/local.js","webpack://QPPStyle/./node_modules/d3-selection/src/sourceEvent.js","webpack://QPPStyle/./node_modules/d3-selection/src/point.js","webpack://QPPStyle/./node_modules/d3-selection/src/mouse.js","webpack://QPPStyle/./node_modules/d3-selection/src/selectAll.js","webpack://QPPStyle/./node_modules/d3-selection/src/touch.js","webpack://QPPStyle/./node_modules/d3-selection/src/touches.js","webpack://QPPStyle/./node_modules/@reach/auto-id/dist/reach-auto-id.esm.js","webpack://QPPStyle/./node_modules/@reach/utils/owner-document/dist/reach-utils-owner-document.esm.js","webpack://QPPStyle/./node_modules/@reach/utils/make-id/dist/reach-utils-make-id.esm.js","webpack://QPPStyle/./node_modules/@reach/utils/type-check/dist/reach-utils-type-check.esm.js","webpack://QPPStyle/./node_modules/@reach/utils/compose-refs/dist/reach-utils-compose-refs.esm.js","webpack://QPPStyle/./node_modules/@reach/utils/compose-event-handlers/dist/reach-utils-compose-event-handlers.esm.js","webpack://QPPStyle/./node_modules/@reach/visually-hidden/dist/reach-visually-hidden.esm.js","webpack://QPPStyle/./node_modules/@reach/observe-rect/dist/observe-rect.esm.js","webpack://QPPStyle/./node_modules/@reach/rect/dist/reach-rect.esm.js","webpack://QPPStyle/./node_modules/@reach/tooltip/dist/reach-tooltip.esm.js","webpack://QPPStyle/./node_modules/@reach/utils/get-document-dimensions/dist/reach-utils-get-document-dimensions.esm.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","f","a","u","h","parentNode","removeChild","v","arguments","length","children","defaultProps","y","type","props","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","current","_","this","context","k","indexOf","b","base","push","g","__r","debounceRendering","sort","some","__P","j","__n","ownerSVGElement","z","w","A","Array","isArray","x","P","N","M","e","appendChild","nextSibling","insertBefore","$","setProperty","test","H","style","cssText","replace","toLowerCase","slice","addEventListener","T","I","removeEventListener","setAttribute","removeAttribute","event","contextType","__E","render","O","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","L","diffed","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","C","checked","unmount","componentWillUnmount","S","firstChild","q","B","D","Consumer","Provider","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","resolve","setTimeout","__H","concat","F","useDebugValue","pop","requestAnimationFrame","clearTimeout","cancelAnimationFrame","filter","E","displayName","isReactComponent","__f","isPureReactComponent","R","for","$$typeof","map","count","only","toArray","__u","U","default","__R","__O","fallback","delete","revealOrder","size","W","Map","reverse","set","V","textContent","configurable","writable","Z","Y","cancelBubble","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","G","J","class","K","multiple","selected","defaultValue","className","Q","X","ReactCurrentDispatcher","readContext","nn","tn","en","rn","apply","un","on","ln","cn","fn","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","version","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cloneElement","createRef","Fragment","isValidElement","findDOMNode","Component","PureComponent","memo","forwardRef","flushSync","unstable_batchedUpdates","StrictMode","Suspense","SuspenseList","lazy","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","toString","val","isUndefined","isObject","isPlainObject","getPrototypeOf","isFunction","obj","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","merge","result","assignValue","extend","thisArg","trim","str","stripBOM","content","charCodeAt","MyApplicationsIcon","viewBox","transform","points","UserSignInIcon","MyTestDataIcon","fill","ReportDataIcon","ManageUsersIcon","AccountHomeIcon","FacilityBasedPreviewIcon","PaymentIcon","PhysicianCompareIcon","id","stroke","strokeWidth","HardshipIcon","fillRule","width","height","TargetIcon","strokeLinecap","x1","y1","x2","y2","ReportsIcon","HelpSupportIcon","DashboardIcon","AccountSettings","DetailsIcon","StarIcon","CliniciansIcon","GroupReporting","IndividualReporting","ChevronLeft","ChevronRight","ChevronDown","SwitchPractice","ScoreIncrease","TooltipIcon","NavCollapse","NavExpand","CloseXIcon","focusable","CloseXIcon2","BellOutline","EarlyClaims","CliniciansList","YoutubeIcon","TwitterIcon","stroke-Width","WiViewReportsIcon","WiViewProgressIcon","WiManageGroupIcon","condition","message","useIsomorphicLayoutEffect","submissionsUrl","dashboardUrl","manageUrl","feedbackUrl","physicianCompareUrl","reportsPortalUrl","facilityBasedPreviewBaseUrl","performanceFeedbackUrl","performanceYear","facilityBasedPreviewUrl","handleNavigation","linkCallbackFunction","label","currentTarget","pathname","hash","search","preventDefault","stopPropagation","utag","link","ga_event_category","ga_event_action","ga_event_label","page_title","title","page_url","location","parse","options","TypeError","opt","pairs","split","pairSplitRegExp","dec","decode","pair","eq_idx","substr","undefined","tryDecode","serialize","enc","encode","fieldContentRegExp","maxAge","isNaN","isFinite","Math","floor","domain","path","expires","toUTCString","httpOnly","secure","sameSite","decodeURIComponent","encodeURIComponent","useWindowWidth","windowSize","setWindowSize","handleResize","innerWidth","HeaderStateContext","HeaderStateProvider","RouterLink","currentOpenMenu","setCurrentOpenMenu","handleToggleMenu","closeMenus","propTypes","PropTypes","node","isRequired","func","useHeaderState","Error","hasDarkerBackground","darkerBackground","AnimationGroup","display","string","bool","canUseDOM","utils","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","defaults","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","XMLHttpRequest","process","transformRequest","rawValue","parser","encoder","JSON","stringify","stringifySafely","transformResponse","strictJSONParsing","responseType","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","method","Cancel","__CANCEL__","setUtagLink","eventCategory","eventAction","eventLabel","deleteImpersonatedUser","cookies","userHasApmPayments","localStorage","getItem","cookie","LogoutSession","revertQppHasAuthsCookie","qppHasAuthorizations","behindSSL","_window","logoutDestination","onSuccess","onError","url","Authorization","qpp_auth_token","err","console","log","atob","String","charAt","fromCharCode","toUpperCase","header","SafeNodeList","SafeHTMLCollection","_exenv","EE","SafeHTMLElement","HTMLElement","HTMLCollection","NodeList","defaultAllowedTags","defaultAllowedAttributes","SanitizedContent","html","customClassName","allowedTags","allowedAttributes","whiteList","reduce","tag","sanitizedHTML","array","DEFAULT","FilterCSS","filterCSS","arr","item","scope","spaceIndex","match","exec","index","useGetConfig","localStorageName","equalityCheckExclude","defaultContent","setResult","storageContent","Date","valueOf","expiration","origin","axios","storageItem","keys","every","includes","setItem","withGetConfig","WrappedComponent","NavLinkContainer","NavLinkDrawer","NavLinkInline","NavLinkToggle","NavItemInline","_ref","dispatch","_ref$type","containerRef","mountNode","portalNode","ownerDocument","body","args","params","paramsSerializer","serializedParams","parts","toISOString","join","hashmarkIndex","error","config","code","request","response","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","reject","onCanceled","requestData","requestHeaders","done","cancelToken","unsubscribe","signal","auth","username","password","unescape","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancel","abort","subscribe","aborted","send","config1","config2","getMergedValue","target","source","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","BUTTON_SIZE","buttonStyle","background","border","padding","WebkitTouchCallout","WebkitUserSelect","userSelect","touchHandlers","onTouchStart","onTouchEnd","activeElement","focus","blur","Infotip","lightIcon","aria-label","aria-hidden","float","ariaLabel","DEBUG_STYLE","fetchTtlIntervalMs","SessionDialogUI","handleOpenModal","handleCloseModal","refreshSession","signOut","startTimer","shouldShowDialog","shouldSignOut","minutesUntil","checkExpiry","onInterval","showImmediate","showModal","showError","expiry","exp","clearInterval","warningInterval","operation","retry","retries","factor","minTimeout","maxTimeout","attempt","forceTimeoutHandle","setInterval","minutesLeft","warningTimeout","getTime","useDesignSystem","isOpen","primary","onClick","secondary","onRequestClose","appElement","Modal","rest","_Modal","_Modal2","findTabbableDescendants","element","querySelectorAll","finished","el","shadowRoot","tabbable","tabbableNode","hidesContents","zeroSize","offsetWidth","offsetHeight","getComputedStyle","getPropertyValue","scrollWidth","scrollHeight","exception","warn","isTabIndexNotNaN","nodeName","disabled","href","parentElement","rootNode","getRootNode","host","visible","tabIndex","getAttribute","isTabIndexNaN","resetState","globalElement","assertNodeList","setElement","useElement","_safeHTMLElement","validateElement","hide","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","next","return","show","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","documentNotReadyOrSSRTesting","_warning","_warning2","nodeList","selector","portalOpenInstances","openInstances","PortalOpenInstances","_this","instance","Constructor","_classCallCheck","register","openInstance","emit","deregister","callback","subscribers","eventType","subscriber","getDefaultCSSWhiteList","getDefaultWhiteList","abbr","address","area","article","aside","audio","bdi","bdo","big","blockquote","br","caption","center","cite","col","colgroup","dd","del","details","div","dl","dt","em","figcaption","figure","font","footer","h1","h2","h3","h4","h5","h6","hr","img","ins","li","mark","nav","ol","pre","section","small","span","summary","sup","strong","strike","table","tbody","td","tfoot","th","thead","tr","tt","ul","video","defaultCSSFilter","escapeHtml","REGEXP_LT","REGEXP_GT","REGEXP_QUOTE","REGEXP_QUOTE_2","REGEXP_ATTR_VALUE_1","REGEXP_ATTR_VALUE_COLON","REGEXP_ATTR_VALUE_NEWLINE","REGEXP_DEFAULT_ON_TAG_ATTR_4","REGEXP_DEFAULT_ON_TAG_ATTR_7","REGEXP_DEFAULT_ON_TAG_ATTR_8","escapeQuote","unescapeQuote","escapeHtmlEntities","parseInt","escapeDangerHtml5Entities","clearNonPrintableCharacter","str2","len","friendlyAttrValue","escapeAttrValue","onTag","onIgnoreTag","onTagAttr","onIgnoreTagAttr","safeAttrValue","cssFilter","lastIndex","onIgnoreTagStripAll","StripTagBody","tags","isRemoveAllTag","removeList","posStart","isRemoveTag","isClosing","ret","end","position","remove","rethtml","lastPos","pos","stripCommentTag","retHtml","stripBlankChar","chars","char","REGEXP_URL_JAVASCRIPT","onAttr","onIgnoreAttr","trimRight","getTagName","tagName","REGEXP_ILLEGAL_ATTR_NAME","findNextEqual","findBeforeEqual","stripQuoteWrap","text","isQuoteWrapString","parseTag","tagStart","quoteStart","currentPos","currentTagName","currentHtml","chariterator","ic","parseAttr","retAttrs","tmpName","addAttr","RefreshSession","requestOptions","Accept","fetchTtl","token","time_remaining","ttl","menuSizes","1","2","3","4","excludedClickOutClasses","HeaderMenuItem","handleClick","isMobileMenuExpanded","columns","menuName","rows","subtitle","isSubMenuFullWidth","setSubMenuFullWidth","openMobileSubMenu","setOpenMobileSubMenu","windowWidth","menuButtonRef","menuRef","numColumns","menuIdentifier","shouldSetFullWidth","getBoundingClientRect","right","listener","contains","classList","aria-expanded","aria-controls","data-toggle","Chevron","hidden","data-columns","columnContent","cIndex","heading","items","isSubLink","SubMenuComponent","button","HeaderMenuButton","signout","HeaderMenuSignOutButton","HeaderMenuLink","sublink","xmlns","IndividualDetails","PracticeDetails","ScoreChart","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","QppStyleComponents","errorPage","ErrorPage","Footer","Header","sideNav","SessionDialog","rootElement","ErrorUI","errorTitle","errorDetails","showLabel","hideLabel","contentTitle","oneOfType","Collapsible","isExpanded","_toggleExpanded","toggleExpanded","_renderShowButton","renderShowButton","_renderHideButton","renderHideButton","isHidden","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","buildVersion","isFullWidth","isNewFooter","showHcdResearch","infoTipLabel","FooterUI","isIESupportPage","signUpNowLink","listServ","setListServ","setLink","data-track-category","data-track-action","data-track-label","rel","src","alt","Axios","mergeConfig","createInstance","defaultConfig","instanceConfig","CancelToken","isCancel","VERSION","all","promises","spread","InterceptorManager","dispatchRequest","validator","validators","interceptors","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","promise","responseInterceptorChain","chain","shift","newConfig","onFulfilled","onRejected","getUri","handlers","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","reason","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","noop","nextTick","browser","env","argv","versions","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizedName","write","toGMTString","RegExp","now","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","line","originURL","msie","userAgent","urlParsingNode","resolveURL","protocol","hostname","port","requestURL","thing","deprecatedWarnings","formatMessage","desc","opts","schema","allowUnknown","executor","resolvePromise","_listeners","onfulfilled","_resolve","payload","Tooltip","TEXT_COLOR","BACKGROUND_COLOR","useTooltip","trigger","tooltip","isVisible","triggerRect","tooltipPopupRef","triangleRef","tooltipRect","positionCssText","positionTriangle","TooltipPopup","color","positionTip","OFFSET","TRIANGLE_SCALE_X","TRIANGLE_SCALE_Y","isDirectionUp","collisions","top","bottom","innerHeight","left","maxLeft","centerLeft","min","max","pageXOffset","directionUp","pageYOffset","triangleTop","triangleLeft","triangleBorder","InfotipIcon","LegacyFooterUI","xlinkHref","Subscribe","action","acceptCharset","htmlFor","placeholder","SocialLinks","isLoginEnabled","skipToContentId","includeSkipToSidebar","showCancelButton","feedbackPerformanceYear","fbpPerformanceYear","showPhysicianCompareLink","showFacilityBasedPreviewLink","showCovidLink","showMaqi","isDevPre","HeaderUI","handleCancel","setIsMobileMenuExpanded","mapContentToRows","colIndex","row","defaultHeaderContent","Function","HeaderAccountMenu","hasAuthToken","hasAuthorizations","qpp_has_authorizations","hasNonRegistryAuthorizations","qpp_has_non_registry_authorizations","isDevPreAndNotAuthenticated","to","firstName","additionalLinks","devPreColumns","hasMenu","RetryOperation","timeouts","forever","Infinity","unref","maxRetryTime","randomize","createTimeout","random","round","pow","wrap","methods","original","op","mainError","_originalTimeouts","_timeouts","_options","_maxRetryTime","_fn","_errors","_attempts","_operationTimeout","_operationTimeoutCb","_timeout","_operationStart","_timer","_cachedTimeouts","reset","stop","currentTime","self","timeoutOps","cb","try","start","errors","attempts","counts","mainErrorCount","ReactModal","setAppElement","newProps","role","contentLabel","overlayClassName","displayModal","main","bodyOpenClassName","portalClassName","_extends","assign","_createClass","defineProperties","protoProps","staticProps","_react","_react2","_interopRequireDefault","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","newObj","_interopRequireWildcard","_safeHTMLElement2","_reactLifecyclesCompat","_possibleConstructorReturn","ReferenceError","isReact16","createHTMLElement","getCreatePortal","unstable_renderSubtreeIntoContainer","getParentElement","parentSelector","_Component","_temp","_len","_key","__proto__","removePortal","parent","portalRef","portal","renderPortal","defaultStyles","subClass","superClass","setPrototypeOf","_inherits","prevProps","prevParent","nextParent","snapshot","_props","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","overlay","htmlOpenClassName","afterOpen","onAfterOpen","ariaHideApp","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","preventScroll","aria","shouldCloseOnEsc","overlayRef","contentRef","overlayElement","contentElement","contentEl","backgroundColor","overflow","WebkitOverflowScrolling","borderRadius","outline","polyfill","_typeof","focusManager","_scopeTab2","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","_this$props","getElementsByTagName","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","overlayEl","close","closeWithoutTimeout","focusContent","contentHasFocus","handleKeyDown","keyCode","requestClose","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","buildClassName","which","additional","classNames","attributesFromObject","prefix","acc","moveFromContentToOverlay","prevState","add","_props2","contentStyles","overlayStyles","overlayProps","onMouseDown","contentProps","onKeyDown","onMouseUp","modal","testId","focusLaterElements","handleBlur","handleFocus","toFocus","modalElement","attachEvent","detachEvent","_tabbable","_tabbable2","needToFocus","shiftKey","head","tail","getActiveElement","checkSafari","warning","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","canUseViewport","screen","htmlElement","cls","htmlClassList","removeClass","_cls","docBodyClassList","at","classString","classListRef","poll","incrementReference","decrementReference","_arr","before","after","_i","instances","_arr2","_i2","check","_portalOpenInstances","opacity","cloneNode","lastChild","nextProps","nextState","__reactInternalSnapshotFlag","__reactInternalSnapshot","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","__suppressDeprecationWarning","FilterXSS","filterXSS","DedicatedWorkerGlobalScope","parseStyle","isNull","shallowCopyObject","css","sourcePosition","isWhite","cssLength","isParenthesisOpen","retCSS","addNewAttr","stripIgnoreTag","allowCommentTag","stripIgnoreTagBody","info","attrs","closing","getAttrs","whiteAttrList","attrsHtml","isWhiteAttr","overflowSeparator","setOverflowSeparator","closeButtonRef","documentElement","clientHeight","labelledby","describedby","data-testid","loading","loadingText","isNotExcluded","NavigationButtonIcon","useModal","setOpen","openModal","closeModal","showLogoutWarning","Accordion","setActive","setActiveState","ariaPressed","rotate","toggleAccordion","openAccordion","closeAccordion","aria-pressed","subTitle","centerItem","rightItem","maxHeight","HeaderCancel","jumpToLink","getElementById","HeaderContainer","HeaderLogo","NotificationBanner","expanded","_renderCloseButton","renderCloseButton","_collapseNotification","collapseNotification","_expandNotification","expandNotification","_setBannerHeight","setBannerHeight","notifications","isNotificationExpanded","bannerContainer","transition","collapsedBanner","collapsedWrapper","notification","dateDismissed","dateUpdated","isDateValid","date","storageNotification","markNotificationClosed","dismissable","enabled","notificationStatus","elem","expandedWrapper","HeaderMobileButton","data-target","ImpersonatorBanner","qpp_impersonated_user","user","reload","TextButton","React","_default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","hasPropertyDescriptor","_utils","createSvgIcon","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","Profiler","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","VARIANTS","SIZES","Button","variant","btnClass","HelpIcon","SideNav","onExpanded","onCollapsed","chartData","currentLevel","showDevPreDfpLink","showSelfNomination","showApmIncentivePaymentLink","isAltStyle","showReportsPortal","showTargetedReviewLink","SideNavUI","expand","collapse","SvgComponents","showReportingLinks","svgIcons","isExpandedState","setIsExpandedState","itemsState","setItemsState","currentLevelState","setCurrentLevelState","collapseRef","getLevelContent","LevelTwoContent","LevelOneContent","levelOneContent","getDynamicContent","contentItems","recursionId","openDrawersByDefault","linkActiveFunc","linkCallback","useTooltips","linkClass","containerRecursionId","getDynamicIcon","icon","itemsMarkup","divider","container","linkBack","linkHome","practiceDetails","practiceName","practiceTin","apmEntityId","vgId","cpcPlusId","pcfId","individualDetails","individualName","individualNpi","linkDrawer","isAlwaysOpen","openByDefault","rightIcon","leftIcon","listOfLinks","sidebarExpand","isHighlighted","leftBorderHighlightDisabled","largerDrawerBottomPadding","custom","chart","switchLink","navClassName","svg","devPre","internalReviewers","viewer","SVGIcons","_classnames2","cleanups","comment","defs","sketchMSShapeGroup","sketchMSPage","sketchMSLayerGroup","SVGInline","accessibilityLabel","accessibilityDesc","classSuffix","cleanupExceptions","componentProps","_objectWithoutProperties","cleanup","classes","svgClasses","svgStr","cleanupSvg","_pos","idCount","hasOwn","arg","argType","inner","getIcon","user_has_apm_payments","qpp_is_dev_pre","qpp_ehr_authorized","qpp_cms_internal_authorized","qpp_can_impersonate","lastName","canImpersonate","hasApmPayments","internalReviewerNames","ehrAuthorized","urlConditionMap","navLinks","IconComponent","Icon","sharedProps","filteredListOfLinks","staticDrawer","activeLink","setActiveLink","toggleActive","idx","isActive","setIsOpen","toggleDrawer","isLinkActive","buildLeftIconClasses","currentPage","isCurrentPage","targetItems","expandedClass","renderLeftIcon","hasDarkerTitle","isLeftBorderHighlightDisabled","isHiddenWhileCollapsed","isLeftBorderDisabled","highlightTitle","hasLargerDrawBottomPadding","adjustItemSpacing","renderDrawerLinksRecursively","urlExpressionToMatch","urlRegExp","svgRef","showTooltip","setShowTooltip","tooltipRef","existingMouseenter","onmouseover","existingMouseout","onmouseout","svgOffset","expandedStyle","altStyle","PAST_REPORTING_YEARS","chartActive","updateTime","practiceId","isConnectedUsersPage","roleAbbr","finalFeedbackOpen","isApmPaymentDetailsPage","links","apmDetailsUrl","linkLabel","practiceUrlSegment","renderId","WIDTH","HEIGHT","RADIUS","GAP_VALUE","legendToggler","legend","hasLegend","setHasLegend","quality","aci","pi","ia","cost","titleMapping","setTitleMapping","categories","getAdvancingCareLabel","redirectToCategory","categoryId","track","draw","scorePie","pie","maxContribution","categorySum","sum","select","selectAll","attr","chartArc","arc","innerRadius","outerRadius","append","finalScore","arcs","enter","tabindex","clientY","clientX","toggleLegend","CmsSwitchLink","factory","loaded","ask","ignoreKeys","specificKeys","registerOnChange","unRegisterOnChange","docElem","currentElement","currentInput","currentIntent","currentTimestamp","shouldPersist","formInputs","functionList","ignoreMap","specificMap","inputMap","keydown","keyup","mousedown","mousemove","MSPointerDown","MSPointerMove","pointerdown","pointermove","touchstart","touchend","isScrolling","mousePos","pointerMap","supportsPassive","addListeners","passive","setPersist","PointerEvent","setInput","setIntent","MSPointerEvent","detectWheel","clearElement","sessionStorage","doUpdate","eventKey","pointerType","ignoreMatch","specificMatch","shouldUpdate","validateTouch","persistInput","activeElem","checkClosest","fireFunctions","detectScrolling","timestamp","touchIsValid","onmousewheel","screenX","screenY","ElementPrototype","matches","msMatchesSelector","webkitMatchesSelector","closest","objPos","clearStorage","clear","formatMuiErrorMessage","capitalize","createChainedFunction","funcs","_len2","_key2","_objectWithoutPropertiesLoose","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","toVal","mix","tmp","_defineProperties","_setPrototypeOf","_inheritsLoose","_assertThisInitialized","plainObjectConstrurctor","cloneStyle","newStyle","createRule","decl","jss","declCopy","rule","plugins","onCreateRule","by","toCssValue","ignoreImportant","cssValue","indentStr","indent","toCss","_options$indent","fallbacks","_prop","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","escape","BaseStyleRule","isProcessed","renderer","renderable","sheet","Renderer","force","newValue","onChangeValue","isEmpty","isDefined","removeProperty","attached","_BaseStyleRule","StyleRule","selectorText","scoped","generateId","_proto2","applyTo","json","setSelector","replaceRule","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","styles","query","rules","atMatch","_proto","getRule","addRule","onProcessRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","keyframes","refKeyframe","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","defaultUpdateOptions","forceUpdateOptions","RuleList","raw","counter","ruleOptions","_this$options","unregister","update","updateOne","_this$options2","styleRule","onUpdate","nextValue","_nextValue","_prevValue","StyleSheet","deployed","attach","deploy","detach","insertRule","addRules","added","deleteRule","_this$rules","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","newPlugin","plugin","SheetsRegistry","globalThis$1","globalThis","createGenerateId","ruleCounter","jssId","classNamePrefix","minify","memoize","cssRule","attributeStyleMap","getHead","querySelector","findPrevNode","registry$1","insertionPoint","findHigherSheet","findHighestSheet","nodeValue","findCommentNode","getNonce","_insertRule","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","meta","createStyle","nonce","nextNode","insertionPointElement","insertStyle","Boolean","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","setup","createStyleSheet","removeStyleSheet","getDynamicStyles","extracted","hasCSSTOMSupport","mergeClasses","baseClasses","newClasses","nextClasses","key1","key2","subCache","useTheme","fnValuesNs","fnRuleNs","fnValues","fnRule","atPrefix","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","nested","getOptions","prevOptions","nestingLevel","replaceRef","isNested","isNestedConditional","uppercasePattern","msPattern","toHyphenLower","hName","convertCase","converted","hyphenatedProp","px","ms","percent","addCamelCasedVersion","regExp","units","margin","inset","motion","perspective","gap","grid","iterate","innerProp","_innerProp","unit","camelCasedOptions","_arrayLikeToArray","arr2","_unsupportedIterableToArray","minLen","from","_toConsumableArray","iter","js","vendor","isTouch","jsCssMap","Moz","Webkit","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","camelize","pascalize","mask","longhand","textOrientation","writingMode","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","substring","overscrollBehavior","propMap","order","flex2012","propMap$1","flex","propKeys","prefixCss","propertyDetectors","computed","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","p1","p2","prefixedValue","supportedValue","cacheKey","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","prop0","prop1","jssPreset","defaultOptions","disableGeneration","generateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seed","seedPrefix","getNextCounterId","styleSheet","theme","createGenerateClassName","sheetsCache","sheetsManager","sheetsRegistry","StylesContext","indexCounter","increment","deepmerge","clone","output","getStylesCreator","stylesOrCreator","themingEnabled","overrides","stylesWithOverrides","getClasses","stylesOptions","cacheClasses","lastProp","lastJSS","generate","_ref2","stylesCreator","sheetManager","refs","staticSheet","dynamicStyles","flip","direction","serverGenerateClassName","dynamicSheet","_ref3","_ref4","useSynchronousEffect","values","currentKey","makeStyles","classNamePrefixOption","_options$defaultTheme","defaultTheme","stylesOptions2","useStyles","getThemeProps","_options$withTheme","withTheme","WithStyles","innerRef","other","more","_defineProperty","createBreakpoints","breakpoints","_breakpoints$values","xs","sm","md","lg","xl","_breakpoints$unit","_breakpoints$step","step","up","between","endIndex","down","upperbound","createMixins","spacing","_toolbar","gutters","paddingLeft","paddingRight","toolbar","minHeight","black","white","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","clamp","decomposeColor","re","colors","hexToRgb","parseFloat","recomposeColor","getLuminance","rgb","hslToRgb","Number","toFixed","darken","coefficient","lighten","light","hint","paper","active","hover","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focusOpacity","activatedOpacity","dark","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","createPalette","palette","_palette$primary","_palette$secondary","_palette$error","_palette$warning","_palette$info","_palette$success","success","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","foreground","lumA","lumB","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","contrastText","types","grey","roundWithDeprecationWarning","caseAllCaps","textTransform","defaultFontFamily","createTypography","typography","_ref$fontFamily","fontFamily","_ref$fontSize","fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","fontWeight","lineHeight","letterSpacing","casing","variants","subtitle1","subtitle2","body1","body2","overline","createShadow","_slicedToArray","_s","_e","_n","_d","defaultBreakpoints","properties","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","_prop$split2","spacingKeys","createUnarySpacing","themeSpacing","abs","getStyleFromPropValue","cssProperties","transformer","propValue","cssProperty","transformed","getValue","styleFromPropValue","themeBreakpoints","_themeBreakpoints","breakpoint","handleBreakpoints","filterProps","createSpacing","spacingInput","mui","argument","easing","easeInOut","easeOut","easeIn","sharp","duration","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","_options$duration","durationOption","_options$easing","easingOption","_options$delay","delay","animatedProp","getAutoHeightDuration","constant","mobileStepper","speedDial","appBar","drawer","snackbar","createTheme","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","_options$typography","typographyInput","muiTheme","shadows","transitions","zIndex","_props$color","_props$component","_props$fontSize","htmlColor","titleAccess","_props$viewBox","root","muiName","flexShrink","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","debounce","wait","debounced","that","later","deprecatedPropType","isMuiElement","muiNames","ownerWindow","defaultView","requirePropFactory","componentNameInError","setRef","unsupportedProp","useControlled","controlled","defaultProp","isControlled","_React$useState","valueState","setValue","useEnhancedEffect","useEventCallback","useForkRef","refA","refB","refValue","useId","idOverride","defaultId","setDefaultId","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","tel","email","month","week","time","datetime","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","readOnly","isContentEditable","handleBlurVisible","useIsFocusVisible","onBlurVisible","doc","PI","tau","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","sqrt","l01","tan","acos","t01","t21","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","atan2","halfPi","asin","arcInnerRadius","arcOuterRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x00","y00","d2","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","r0","t0","t1","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","oc","ax","ay","bx","kc","lc","centroid","Linear","_context","areaStart","_line","areaEnd","NaN","lineStart","_point","lineEnd","point","defined","curve","defined0","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","identity","sortValues","descending","pa","curveRadialLinear","curveRadial","Radial","_curve","radial","lineRadial","angle","radius","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","linkSource","linkTarget","curveHorizontal","curveVertical","pointRadial","p3","linkHorizontal","linkVertical","linkRadial","tan30","tan30_2","kr","kx","ky","sqrt3","symbols","circle","cross","diamond","square","star","triangle","wye","Basis","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","beta","_basis","_beta","_x","_y","bundle","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","sign","slope3","h0","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","controlPoints","_t0","py","i0","i1","Step","_t","stepBefore","stepAfter","series","stackValue","offset","oz","kz","sz","sij","ki","si","none","yp","yn","s2","sij0","s3","sk","peaks","peak","vi","vj","sums","ascending","appearance","tops","bottoms","xhtml","xlink","xml","namespaces","space","local","creatorInherit","uri","namespaceURI","creatorFixed","fullname","namespace","empty","EnterNode","datum","_next","_parent","__data__","child","bindIndex","group","exit","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","attrRemove","attrRemoveNS","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","styleRemove","styleConstant","priority","styleFunction","styleValue","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_node","_names","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","lower","previousSibling","constantNull","selection_cloneShallow","selection_cloneDeep","filterEvents","mouseenter","mouseleave","filterContextListener","contextListener","related","relatedTarget","compareDocumentPosition","event1","event0","parseTypenames","typenames","onRemove","typename","__on","capture","onAdd","customEvent","sourceEvent","dispatchEvent","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","selectorAll","matcher","each","enterGroup","updateGroup","previous","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","selection","m0","m1","merges","group0","group1","compareNode","sortgroups","sortgroup","nodes","getAttributeNS","classed","creator","insert","deep","nextId","Local","createSVGPoint","matrixTransform","getScreenCTM","inverse","clientLeft","clientTop","changedTouches","identifier","touches","touch","serverHandoffComplete","genId","getOwnerDocument","makeId","_createForOfIteratorHelperLoose","allowArrayLike","it","assignRef","useComposedRefs","composeEventHandlers","theirHandler","ourHandler","_excluded","_ref$as","as","Comp","_ref$style","clip","whiteSpace","wordWrap","rafId","observedNodes","changedStates","newRect","callbacks","observe","wasEmpty","hasRectChanged","unobserve","useRect","nodeRef","observeOrOptions","deprecated_onChange","onChange","_observeOrOptions$obs","initialRectIsSet","initialRefIsSet","_React$useState2","setRect","onChangeRef","observer","_on","_on2","_on3","_on4","_on5","_states","TooltipStates","TooltipEvents","_excluded2","_excluded3","_excluded4","MOUSE_REST_TIMEOUT","LEAVE_TIMEOUT","restTimeout","leavingVisibleTimer","initial","Idle","states","clearContextId","MouseEnter","Focused","Focus","Visible","Rest","leave","MouseMove","MouseLeave","MouseDown","Dismissed","Blur","LeavingVisible","SelectWithKeyboard","GlobalMouseMove","TimeComplete","subscriptions","idProp","onPointerEnter","onPointerMove","onPointerLeave","onPointerDown","onMouseEnter","onMouseMove","onMouseLeave","onFocus","onBlur","forwardedRef","idFromProps","initialId","setId","isTooltipVisible","setIsVisible","ownRef","wrapMouseEvent","wrapPointerEventHandler","handler","handleMouseEnter","handleMouseMove","handleMouseLeave","handleMouseDown","_ref5","useDisabledTriggerOnSafari","__REACH_DISABLE_TOOLTIPS","DEPRECATED_ariaLabel","_useTooltip","realAriaLabel","_ref4$as","_ref4$position","hasAriaLabel","getStyles","visibility","_ownerDocument$docume","_ownerDocument$docume2","_getDocumentDimension","clientWidth","windowHeight","_transition","currentState","stateDef","changed","nextStateValue","nextDef"],"mappings":"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5E,MAAM3W,EAAEkE,EAAE8S,MAAM,KAAKzX,KAAK,MAAM2E,GAAG,MAAM,IAAI3D,EAAE,4BAA4B2D,EAAE2Q,Y,6BCEvlCrV,OAAOC,eAAeb,EAAS,aAAc,CAC3CmB,OAAO,IAETnB,EAAQwb,UAAYxb,EAAQ0f,aAAe1f,EAAQ2f,wBAAqBhH,EAExE,IAIgClI,EAJ5BmP,EAAS,EAAQ,KAMrB,IAAIC,IAF4BpP,EAFKmP,IAEgBnP,EAAInP,WAAamP,EAAM,CAAEpF,QAASoF,IAEtEpF,QAEbyU,EAAkBD,EAAGrE,UAAY1J,OAAOiO,YAAc,GAEjC/f,EAAQ2f,mBAAqBE,EAAGrE,UAAY1J,OAAOkO,eAAiB,GAE1EhgB,EAAQ0f,aAAeG,EAAGrE,UAAY1J,OAAOmO,SAAW,GAE3DjgB,EAAQwb,UAAYqE,EAAGrE,UAEvCxb,EAAQqL,QAAUyU,G,6bClBlB,IAAMI,EAAqB,CACzB,IACA,OACA,UACA,UACA,QACA,IACA,aACA,KACA,SACA,UACA,OACA,OACA,MACA,WACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,KACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,QACA,MACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,UACA,SACA,QACA,SACA,OACA,SACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,MACA,UACA,SACA,IACA,QAIIC,EAA2B,CAC/B,IAAK,CACH,SACA,MACA,SACA,eACA,OACA,QACA,OACA,UACA,SACA,WACA,WACA,WACA,MACA,UACA,SACA,SACA,OACA,WACA,KACA,OACA,OACA,MACA,YACA,YACA,QACA,SACA,MACA,WACA,OACA,aACA,OACA,UACA,cACA,WACA,MACA,WACA,WACA,OACA,UACA,UACA,QACA,SACA,WACA,OACA,QACA,OACA,aACA,MACA,SACA,QACA,OACA,QA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","file":"browser.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 54);\n","var n,l,u,i,t,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,i){var t,r,o,f={};for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return y(l,f,t,r,null)}function y(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function p(){return{current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?k(n):null}function b(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,r,o;n.__d&&(r=(t=(l=n).__v).__e,(o=l.__P)&&(u=[],(i=a({},t)).__v=t.__v+1,j(o,t,i,l.__n,void 0!==o.ownerSVGElement,null!=t.__h?[r]:null,u,null==r?k(t):r,t.__h),z(u,t),t.__e!=r&&b(t)))})}function w(n,l,u,i,t,r,o,f,s,a){var h,v,p,_,b,m,g,w=i&&i.__k||c,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||\"boolean\"==typeof _?null:\"string\"==typeof _||\"number\"==typeof _||\"bigint\"==typeof _?y(null,_,null,null,_):Array.isArray(_)?y(d,{children:_},null,null,null):_.__b>0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v<A;v++){if((p=w[v])&&_.key==p.key&&_.type===p.type){w[v]=void 0;break}p=null}j(n,_,p=p||e,t,r,o,f,s,a),b=_.__e,(v=_.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),\"function\"==typeof _.type&&_.__k===p.__k?_.__d=s=x(_,s,n):s=P(n,_,p,w,b,s),\"function\"==typeof u.type&&(u.__d=s)):s&&p.__e==s&&s.parentNode!=n&&(s=k(p))}for(u.__e=m,h=A;h--;)null!=w[h]&&(\"function\"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),N(w[h],w[h]));if(g)for(h=0;h<g.length;h++)M(g[h],g[++h],g[++h])}function x(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l=\"function\"==typeof i.type?x(i,l,u):P(u,i,i,t,i.__e,l));return l}function A(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){A(n,l)}):l.push(n)),l}function P(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else{for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,r),o=r}return void 0!==o?o:t.nextSibling}function C(n,l,u,i,t){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||H(n,r,null,u[r],i);for(r in l)t&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||H(n,r,l[r],u[r],i)}function $(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||s.test(l)?u:u+\"px\"}function H(n,l,u,i,t){var r;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||$(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])r=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?T:I,r):n.removeEventListener(l,r?T:I,r);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink[H:h]/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,r,o,f,e,c){var s,h,v,y,p,k,b,m,g,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if(\"function\"==typeof P){if(m=u.props,g=(s=P.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:(\"prototype\"in P&&P.prototype.render?u.__c=h=new P(m,x):(u.__c=h=new _(m,x),h.constructor=P,h.render=O),g&&g.sub(h),h.props=m,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=a({},h.__s)),a(h.__s,P.getDerivedStateFromProps(m,h.__s))),y=h.props,p=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==P.getDerivedStateFromProps&&m!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,x)||u.__v===i.__v){h.props=m,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,p,k)})}h.context=x,h.props=m,h.state=h.__s,(s=l.__r)&&s(u),h.__d=!1,h.__v=u,h.__P=n,s=h.render(h.props,h.state,h.context),h.state=h.__s,null!=h.getChildContext&&(t=a(a({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,p)),A=null!=s&&s.type===d&&null==s.key?s.props.children:s,w(n,Array.isArray(A)?A:[A],u,i,t,r,o,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,r,o,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,r,o,f,c){var s,a,v,y=i.props,p=u.props,d=u.type,_=0;if(\"svg\"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&\"setAttribute\"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),o=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(o=o&&n.call(l.childNodes),a=(y=i.props||e).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||\"\"))}if(C(l,p,y,r,c),v)u.__k=[];else if(_=u.props.children,w(l,Array.isArray(_)?_:[_],u,i,t,r&&\"foreignObject\"!==d,o,f,o?o[0]:i.__k&&k(i,0),c),null!=o)for(_=o.length;_--;)null!=o[_]&&h(o[_]);c||(\"value\"in p&&void 0!==(_=p.value)&&(_!==y.value||_!==l.value||\"progress\"===d&&!_)&&H(l,\"value\",_,y.value,!1),\"checked\"in p&&void 0!==(_=p.checked)&&_!==l.checked&&H(l,\"checked\",_,y.checked,!1))}return l}function M(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,r;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&N(t[r],u,\"function\"!=typeof n.type);i||null==n.__e||h(n.__e),n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function S(u,i,t){var r,o,f;l.__&&l.__(u,i),o=(r=\"function\"==typeof t)?null:t&&t.__k||i.__k,f=[],j(i,u=(!r&&t||i).__k=v(d,null,[u]),o||e,e,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),z(f,u)}function q(n,l){S(n,l,q)}function B(l,u,i){var t,r,o,f=a({},l.props);for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),y(l.type,f,t||l.key,r||l.ref,null)}function D(n,l){var u={__c:l=\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=c.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,t=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;export{S as render,q as hydrate,v as createElement,v as h,d as Fragment,p as createRef,i as isValidElement,_ as Component,B as cloneElement,D as createContext,A as toChildArray,l as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){var t;for(i.sort(function(n,t){return n.__v.__b-t.__v.__b});t=i.pop();)if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=null},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{g(n)}catch(n){u=n}}),u&&n.__e(u,r.__v))};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u,r=n.__c;\"function\"==typeof r&&(n.__c=void 0,r()),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as c,useDebugValue as f}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as d,Fragment as v,render as p,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function S(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:C(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=S({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:d(d(n).map(t))},k={map:N,forEach:N,count:function(n){return n?d(n).length:0},only:function(n){var t=d(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:d},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function F(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function M(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=S({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var T=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function D(n){return this.getChildContext=function(){return n.context},n.children}function I(n){var t=this,e=n.i;t.componentWillUnmount=function(){p(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n)}}),p(s(D,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function W(n,t){return s(I,{__v:n,i:t})}(M.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),T(t,n,r)):u()};e?e(o):o()}},M.prototype.render=function(n){this.u=null,this.o=new Map;var t=d(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},M.prototype.componentDidUpdate=M.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){T(n,e,t)})};var j=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=\"undefined\"!=typeof document,z=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function B(n,t,e){return null==t.__k&&(t.textContent=\"\"),p(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function $(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function q(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=q,n.nativeEvent=n};var G,J={configurable:!0,get:function(){return this.class}},K=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){var u=-1===t.indexOf(\"-\");for(var o in r={},e){var i=e[o];V&&\"children\"===o&&\"noscript\"===t||\"value\"===o&&\"defaultValue\"in e&&null==i||(\"defaultValue\"===o&&\"value\"in e&&null==e.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":/ondoubleclick/i.test(o)?o=\"ondblclick\":/^onchange(textarea|input)/i.test(o+t)&&!z(e.type)?o=\"oninput\":/^onfocus$/i.test(o)?o=\"onfocusin\":/^onblur$/i.test(o)?o=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():u&&P.test(o)?o=o.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===i&&(i=void 0),r[o]=i)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=d(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=d(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r,e.class!=e.className&&(J.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",J))}n.$$typeof=j,K&&K(n)};var Q=h.__r;h.__r=function(n){Q&&Q(n),G=n.__c};var X={ReactCurrentDispatcher:{current:{readContext:function(n){return G.__n[n.__c].props.value}}}},nn=\"17.0.2\";function tn(n){return s.bind(null,n)}function en(n){return!!n&&n.$$typeof===j}function rn(n){return en(n)?y.apply(null,arguments):n}function un(n){return!!n.__k&&(p(null,n),!0)}function on(n){return n&&(n.base||1===n.nodeType&&n)||null}var ln=function(n,t){return n(t)},cn=function(n,t){return n(t)},fn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:c,useDebugValue:f,version:\"17.0.2\",Children:k,render:B,hydrate:$,unmountComponentAtNode:un,createPortal:W,createElement:s,createContext:_,createFactory:tn,cloneElement:rn,createRef:b,Fragment:v,isValidElement:en,findDOMNode:on,Component:a,PureComponent:E,memo:g,forwardRef:x,flushSync:cn,unstable_batchedUpdates:ln,StrictMode:v,Suspense:L,SuspenseList:M,lazy:F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:X};export{nn as version,k as Children,B as render,$ as hydrate,un as unmountComponentAtNode,W as createPortal,tn as createFactory,rn as cloneElement,en as isValidElement,on as findDOMNode,E as PureComponent,g as memo,x as forwardRef,cn as flushSync,ln as unstable_batchedUpdates,fn as StrictMode,L as Suspense,M as SuspenseList,F as lazy,X as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED};\n//# sourceMappingURL=compat.module.js.map\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","import React from 'react';\n\nexport const MyApplicationsIcon = () => (\n <svg className=\"my-applications\" viewBox=\"0 0 25 25\">\n <g>\n <g transform=\"translate(0.000000, 0.629018)\">\n <polygon points=\"12 23.0964379 24 15.374457 24 16.3397046 12 24.0616855 0 16.3397046 0 15.374457\"></polygon>\n <polygon points=\"12 19.2701998 24 11.5482189 24 12.5134666 12 20.2354474 0 12.5134666 0 11.5482189\"></polygon>\n <path d=\"M23.25,8.20460469 L12,0.965247611 L0.75,8.20460469 L12,15.4439618 L23.25,8.20460469 Z M24,7.72198089 L24,8.6872285 L12,16.4092094 L0,8.6872285 L0,7.72198089 L12,0 L24,7.72198089 Z\"></path>\n </g>\n </g>\n </svg>\n);\n\nexport const UserSignInIcon = () => (\n <svg className=\"user-sign-in\" viewBox=\"0 0 25 25\">\n <path\n d=\"M26.6,22.9c-1.2-2.3-3.3-4-5.7-4.7l-2.5-0.7c-0.1,0-0.1,0-0.1-0.1c0,0,0-0.1,0-0.2l1.8-2\n c1.5-1.6,2.1-3.8,1.9-5.9l-0.3-2.4c-0.3-2.3-1.5-4.3-3.4-5.5l-0.1,0c-1.2-0.8-2.6-1.1-4-1.1c-1.5,0-2.9,0.4-4.3,1.3\n c-1.8,1.2-2.9,3-3.2,5.1L6.2,9.1c-0.3,2.2,0.3,4.5,1.8,6.2l1.7,1.9c0,0,0,0,0,0.1c0,0.1,0,0.1,0,0.2c0,0.1-0.1,0.1-0.1,0.1l-2.5,0.7\n c-2.4,0.7-4.5,2.4-5.7,4.7c-0.5,1-0.5,2.3,0.1,3.3c0.7,1,1.8,1.6,2.9,1.6h19.3c1.2,0,2.3-0.6,2.9-1.6C27.2,25.3,27.2,24,26.6,22.9z\n M11.1,18.1c0.2-0.4,0.2-0.9,0.1-1.4c-0.1-0.2-0.2-0.4-0.3-0.5l-1.7-1.9C8,13,7.5,11.1,7.7,9.3l0.4-2.6c0.3-1.7,1.2-3.2,2.6-4.1\n c1-0.7,2.2-1,3.4-1c1.2,0,2.3,0.3,3.3,1l0.1,0h0C19,3.6,20,5.2,20.2,7l0.3,2.4c0.2,1.7-0.3,3.4-1.5,4.7l-1.8,2\n c-0.1,0.2-0.2,0.3-0.3,0.5c-0.2,0.4-0.1,0.9,0.1,1.4c0.2,0.4,0.6,0.7,1,0.9l2.5,0.7c2.1,0.6,3.8,2,4.8,3.9c0.3,0.6,0.3,1.3-0.1,1.8\n c-0.3,0.5-0.9,0.9-1.6,0.9H4.4c-0.7,0-1.2-0.4-1.6-0.9c-0.3-0.6-0.3-1.2,0-1.8l0,0c1-1.9,2.7-3.3,4.8-3.9l2.5-0.7\n C10.5,18.8,10.9,18.5,11.1,18.1z\"\n />\n </svg>\n);\n\nexport const MyTestDataIcon = () => (\n <svg className=\"my-test-data\" viewBox=\"0 0 24 24\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z\" />\n </svg>\n);\n\nexport const ReportDataIcon = () => (\n <svg className=\"report-data\" viewBox=\"0 0 35 35\">\n <title>report-data</title>\n <g>\n <polygon points=\"11.5,15.5 12.6,16.5 16.9,11.8 16.9,26.3 18.1,26.3 18.1,11.8 22.4,16.5 23.5,15.5 17.5,9 \t\" />\n <path\n d=\"M32.8,17.5c0-2.1-0.4-4.1-1.2-6c-2.3-5.5-7.8-9.4-14.1-9.4c-6.7,0-12.4,4.3-14.4,10.3c-0.5,1.6-0.9,3.3-0.9,5\n c0,3.7,1.3,7.1,3.5,9.8c2.8,3.4,7,5.5,11.8,5.5c3.2,0,6.1-1,8.6-2.6C30.1,27.4,32.8,22.8,32.8,17.5z M17.5,31.6c-3.1,0-6-1-8.3-2.7\n c-3.5-2.6-5.8-6.7-5.8-11.4c0-1.5,0.2-2.9,0.6-4.2c1.8-5.7,7.2-9.9,13.5-9.9c5.9,0,10.9,3.6,13.1,8.8c0.7,1.7,1.1,3.5,1.1,5.4\n c0,6-3.7,11.1-8.9,13.1C21.1,31.3,19.3,31.6,17.5,31.6z\"\n />\n </g>\n </svg>\n);\n\nexport const ManageUsersIcon = () => (\n <svg className=\"manage-users-svg\" viewBox=\"0 0 25 25\">\n <g>\n <path\n d=\"M4.4,10.8V0.2H3.6v10.7c-1.9,0.2-3.4,1.8-3.4,3.8s1.5,3.6,3.4,3.8v6.4h0.9v-6.4c1.9-0.2,3.4-1.8,3.4-3.8\n S6.3,11.1,4.4,10.8z M4,17.6c-1.6,0-3-1.3-3-3s1.3-3,3-3s3,1.3,3,3S5.6,17.6,4,17.6z\"\n />\n <path\n d=\"M12.9,2.3V0.2h-0.9v2.2c-1.9,0.2-3.4,1.8-3.4,3.8c0,2,1.5,3.6,3.4,3.8v14.9h0.9V9.9c1.9-0.2,3.4-1.8,3.4-3.8\n C16.3,4.2,14.8,2.6,12.9,2.3z M12.5,9.1c-1.6,0-3-1.3-3-3s1.3-3,3-3s3,1.3,3,3S14.1,9.1,12.5,9.1z\"\n />\n <path\n d=\"M24.8,18.9c0-2-1.5-3.6-3.4-3.8V0.2h-0.9v14.9c-1.9,0.2-3.4,1.8-3.4,3.8s1.5,3.6,3.4,3.8v2.2h0.9v-2.2\n C23.3,22.4,24.8,20.8,24.8,18.9z M21,21.8c-1.6,0-3-1.3-3-3c0-1.6,1.3-3,3-3s3,1.3,3,3C24,20.5,22.6,21.8,21,21.8z\"\n />\n </g>\n </svg>\n);\n\nexport const AccountHomeIcon = () => (\n <svg className=\"account-home-icon\" viewBox=\"0 0 25 25\">\n <path d=\"M8.5,24 L8.5,15 C8.5,14.7238576 8.72385763,14.5 9,14.5 L16,14.5 C16.2761424,14.5 16.5,14.7238576 16.5,15 L16.5,24 L22.5,24 L22.5,9.238536 L12.5,1.14329791 L2.5,9.238536 L2.5,24 L8.5,24 Z M1.68540089,8.61137756 L12.1854009,0.111377565 C12.3688463,-0.0371258549 12.6311537,-0.0371258549 12.8145991,0.111377565 L23.3145991,8.61137756 C23.4318689,8.70631024 23.5,8.8491212 23.5,9 L23.5,24.5 C23.5,24.7761424 23.2761424,25 23,25 L2,25 C1.72385763,25 1.5,24.7761424 1.5,24.5 L1.5,9 C1.5,8.8491212 1.56813111,8.70631024 1.68540089,8.61137756 Z M9.5,15.5 L9.5,24 L15.5,24 L15.5,15.5 L9.5,15.5 Z\"></path>\n </svg>\n);\n\nexport const FacilityBasedPreviewIcon = () => (\n <svg className=\"facility-based-preview-svg\" viewBox=\"0 0 25 25\">\n <g>\n <path d=\"M24.498 23.234l-5.359-5.262c.427-.79.651-1.672.651-2.575 0-1.848-.959-3.582-2.521-4.596V4.792a.513.513 0 0 0-.155-.366L12.762.152A.533.533 0 0 0 12.389 0H.547A.523.523 0 0 0 .02.518v22.154c0 .286.236.517.527.517h16.194a.523.523 0 0 0 .528-.517v-1.954l4.896 4.807c.311.306.726.475 1.166.475.441 0 .855-.169 1.167-.475a1.601 1.601 0 0 0 0-2.29zm-9.03-18.96h-2.552V1.768l1.276 1.253 1.276 1.253zm.746 16.255v1.625H1.074V1.036h10.787v3.756c0 .286.236.518.528.518h3.825v4.955a5.705 5.705 0 0 0-2.03-.373c-3.091 0-5.606 2.47-5.606 5.505 0 3.036 2.515 5.505 5.606 5.505.697 0 1.386-.128 2.03-.373zm.397-1.35l-.136.08a4.61 4.61 0 0 1-2.291.608c-2.51 0-4.551-2.005-4.551-4.47 0-2.464 2.041-4.47 4.551-4.47.806 0 1.599.21 2.291.608 1.394.8 2.26 2.28 2.26 3.862 0 .847-.242 1.671-.7 2.384a4.561 4.561 0 0 1-1.424 1.397zm7.141 5.614a.597.597 0 0 1-.42.171.596.596 0 0 1-.421-.171l-5.206-5.112a5.64 5.64 0 0 0 .84-.827h.001l5.206 5.113a.577.577 0 0 1 0 .826z\" />\n <path d=\"M12.28 12.348a3.542 3.542 0 0 0-1.738 3.05c0 .285.236.517.527.517a.523.523 0 0 0 .528-.518c0-.89.462-1.7 1.235-2.167a.513.513 0 0 0 .174-.712.533.533 0 0 0-.726-.17zM16.018 12.307a3.691 3.691 0 0 0-1.834-.486.523.523 0 0 0-.528.518c0 .286.237.518.528.518.458 0 .909.119 1.302.345a.533.533 0 0 0 .722-.186.513.513 0 0 0-.19-.709z\" />\n </g>\n </svg>\n);\n\nexport const PaymentIcon = () => (\n <svg className=\"payment-icon\" viewBox=\"0 0 25 25\">\n <g>\n <path d=\"M12.1618195,20.7968379 L12.1618195,12.9463878 C10.781964,12.4923749 9.69910643,12.0472873 8.91321499,11.6111111 C8.11242203,11.1666644 7.51873961,10.6203736 7.1321499,9.97222222 C6.7455602,9.32407083 6.55226824,8.5 6.55226824,7.5 C6.55226824,6.14814139 7.0447025,5.01389347 8.0295858,4.09722222 C9.01446909,3.18055097 10.3905237,2.65740806 12.1577909,2.52777778 L12.1577909,0.611111111 C12.1577909,0.425925 12.2130172,0.277778333 12.3234714,0.166666667 C12.4339256,0.055555 12.5811957,0 12.765286,0 L13.2899408,0 C13.4740312,0 13.6213012,0.055555 13.7317554,0.166666667 C13.8422096,0.277778333 13.8974359,0.425925 13.8974359,0.611111111 L13.8974359,2.55555556 C15.057205,2.66666722 16.0512779,2.97221972 16.8796844,3.47222222 C17.7080909,3.97222472 18.3339887,4.56944097 18.7573964,5.26388889 C19.1808042,5.95833681 19.4109137,6.65740389 19.4477318,7.36111111 C19.4477318,7.50926 19.3971077,7.63888833 19.295858,7.75 C19.1946083,7.86111167 19.0519404,7.91666667 18.8678501,7.91666667 L18.3155819,7.91666667 C18.1867186,7.91666667 18.0578573,7.87500042 17.9289941,7.79166667 C17.8001308,7.70833292 17.7264958,7.56481583 17.7080868,7.36111111 C17.5976326,6.43518056 17.1051983,5.67129931 16.2307692,5.06944444 C15.5784594,4.62047057 14.8006641,4.33896279 13.8973694,4.22491735 L13.8973694,11.7499783 C15.4069766,12.2314839 16.5851371,12.6944422 17.4319527,13.1388889 C18.2787682,13.5833356 18.9184725,14.1203672 19.3510848,14.75 C19.7836971,15.3796328 20,16.1944394 20,17.1944444 C20,18.7500078 19.4615438,19.9861065 18.3846154,20.9027778 C17.3076869,21.819449 15.8119754,22.3425919 13.8974359,22.4722222 L13.8974359,24.3888889 C13.8974359,24.574075 13.8422096,24.7222217 13.7317554,24.8333333 C13.6213012,24.944445 13.4740312,25 13.2899408,25 L12.765286,25 C12.5811957,25 12.4339256,24.944445 12.3234714,24.8333333 C12.2130172,24.7222217 12.1577909,24.574075 12.1577909,24.3888889 L12.1577909,22.4444444 C10.9059766,22.3518514 9.81985996,22.0648172 8.89940828,21.5833333 C7.97895661,21.1018494 7.27482164,20.5046332 6.78698225,19.7916667 C6.29914286,19.0787001 6.03681807,18.3148189 6,17.5 C6,17.3518511 6.05522627,17.2222228 6.16568047,17.1111111 C6.27613467,17 6.41420036,16.9444444 6.57988166,16.9444444 L7.1321499,16.9444444 C7.4635125,16.9444444 7.66600884,17.1296278 7.73964497,17.5 C7.86850821,18.3888933 8.37474903,19.1666633 9.25838264,19.8333333 C9.97320875,20.3726414 10.9410143,20.6938096 12.1618195,20.7968379 Z M13.8973694,20.8073012 C15.2350836,20.7193579 16.2613967,20.4085927 16.9763314,19.875 C17.8323514,19.2361079 18.260355,18.3425983 18.260355,17.1944444 C18.260355,16.4907372 18.0532565,15.9120393 17.6390533,15.4583333 C17.22485,15.0046274 16.6219632,14.6064832 15.8303748,14.2638889 C15.3408921,14.052044 14.6965598,13.8065676 13.8973694,13.5274567 L13.8973694,20.8073012 Z M12.1618195,4.19615363 C11.0995324,4.28099937 10.2283731,4.54894668 9.54832347,5 C8.71071245,5.55555833 8.29191321,6.38888333 8.29191321,7.5 C8.29191321,8.22222583 8.48060298,8.81944208 8.85798817,9.29166667 C9.23537335,9.76389125 9.80144264,10.1712946 10.556213,10.5138889 C10.9788577,10.7057296 11.5140579,10.9193435 12.1618195,11.1547327 L12.1618195,4.19615363 Z\"></path>\n </g>\n </svg>\n);\n\nexport const PhysicianCompareIcon = () => (\n <svg className=\"physician-compare-icon\" viewBox=\"0 0 25 25\">\n <g id=\"Page-1\" stroke=\"none\" strokeWidth=\"1\">\n <g id=\"Physician-Compare_Physician-Compare\">\n <path d=\"M19.2204301,5 L18.1451613,5 C17.7419355,5 17.4731183,5.2601626 17.4731183,5.6504065 C17.4731183,6.04065041 17.7419355,6.30081301 18.1451613,6.30081301 L19.2204301,6.30081301 C19.3548387,6.30081301 19.4892473,6.43089431 19.4892473,6.56097561 L19.4892473,11.8943089 C19.4892473,13.3252033 18.2795699,14.6260163 16.6666667,14.6260163 C15.0537634,14.6260163 13.844086,13.4552846 13.844086,11.8943089 L13.844086,6.56097561 C13.844086,6.43089431 13.9784946,6.30081301 14.1129032,6.30081301 L15.188172,6.30081301 C15.5913978,6.30081301 15.8602151,6.04065041 15.8602151,5.6504065 C15.8602151,5.2601626 15.5913978,5 15.188172,5 L14.1129032,5 C13.3064516,5 12.5,5.6504065 12.5,6.56097561 L12.5,11.8943089 C12.5,13.8455285 13.9784946,15.5365854 15.9946237,15.9268293 C15.8602151,18.398374 14.6505376,19.699187 12.5,19.699187 L12.2311828,19.699187 C9.40860215,19.699187 8.33333333,17.2276423 8.33333333,15.6666667 L8.33333333,14.495935 C9.67741935,14.1056911 10.6182796,12.9349593 10.6182796,11.504065 C10.7526882,9.81300813 9.27419355,8.38211382 7.52688172,8.38211382 C5.77956989,8.38211382 4.16666667,9.81300813 4.16666667,11.504065 C4.16666667,13.0650407 5.37634409,14.3658537 6.98924731,14.6260163 L6.98924731,15.6666667 C6.98924731,18.2682927 8.87096774,21 12.2311828,21 L12.5,21 C15.4569892,21 17.2043011,19.1788618 17.3387097,15.796748 C19.3548387,15.5365854 20.8333333,13.8455285 20.8333333,11.7642276 L20.8333333,6.56097561 C20.8333333,5.6504065 20.1612903,5 19.2204301,5 Z M5.77956989,11.504065 C5.77956989,10.5934959 6.58602151,9.94308943 7.39247312,9.94308943 C8.19892473,9.94308943 9.00537634,10.7235772 9.00537634,11.504065 C9.00537634,12.2845528 8.33333333,13.195122 7.52688172,13.195122 C6.72043011,13.195122 5.77956989,12.4146341 5.77956989,11.504065 Z\"></path>\n <path d=\"M20.718232,0 L4.14364641,0 C1.79558011,0 0,1.82291667 0,3.90625 L0,21.09375 C0,23.3072917 1.93370166,25 4.14364641,25 L20.8563536,25 C23.2044199,25 25,23.1770833 25,21.09375 L25,3.90625 C24.8618785,1.82291667 23.0662983,0 20.718232,0 Z M23.480663,21.09375 C23.480663,22.5260417 22.2375691,23.6979167 20.718232,23.6979167 L4.14364641,23.6979167 C2.62430939,23.6979167 1.38121547,22.5260417 1.38121547,21.09375 L1.38121547,3.90625 C1.38121547,2.47395833 2.62430939,1.30208333 4.14364641,1.30208333 L20.8563536,1.30208333 C22.3756906,1.30208333 23.6187845,2.47395833 23.6187845,3.90625 L23.6187845,21.09375 L23.480663,21.09375 Z\"></path>\n </g>\n </g>\n </svg>\n);\n\nexport const HardshipIcon = () => (\n <svg className=\"hardship-icon\" viewBox=\"0 0 25 25\" version=\"1.1\">\n <g>\n <g transform=\"translate(2.000000, 0.000000)\" fillRule=\"nonzero\">\n <path d=\"M18.7721739,2.6119403 L14.4991304,2.6119403 L12.4813043,2.6119403 C12.5178261,2.44402985 12.5543478,2.2761194 12.5543478,2.0988806 C12.5543478,0.942164179 11.6321739,0 10.5,0 C9.36782609,0 8.44565217,0.942164179 8.44565217,2.0988806 C8.44565217,2.2761194 8.47304348,2.44402985 8.51869565,2.6119403 L6.49173913,2.6119403 L2.21869565,2.6119403 C0.995217391,2.6119403 0,3.62873134 0,4.8880597 L0,22.733209 C0,23.983209 0.995217391,25 2.21869565,25 L18.7721739,25 C19.9956522,25 21,23.983209 21,22.7238806 L21,4.8880597 C21,3.62873134 19.9956522,2.6119403 18.7721739,2.6119403 Z M10.5,0.932835821 C11.13,0.932835821 11.6413043,1.45522388 11.6413043,2.0988806 C11.6413043,2.31343284 11.5682609,2.5 11.4769565,2.66791045 C11.403913,2.7891791 11.3126087,2.9011194 11.2030435,2.99440299 C11.1482609,3.04104478 11.0843478,3.08768657 11.0204348,3.125 C10.9747826,3.14365672 10.9382609,3.17164179 10.8926087,3.19029851 C10.7647826,3.22761194 10.6369565,3.26492537 10.5,3.26492537 C10.3630435,3.26492537 10.2352174,3.22761194 10.1165217,3.18097015 C10.0708696,3.16231343 10.0343478,3.14365672 9.98869565,3.11567164 C9.92478261,3.07835821 9.86086957,3.03171642 9.80608696,2.98507463 C9.6873913,2.89179104 9.59608696,2.77052239 9.52304348,2.63992537 C9.43173913,2.47201493 9.36782609,2.29477612 9.36782609,2.08955224 C9.35869565,1.45522388 9.87,0.932835821 10.5,0.932835821 Z M20.0869565,22.7238806 C20.0869565,23.4608209 19.5026087,24.0671642 18.7721739,24.0671642 L2.21869565,24.0671642 C1.4973913,24.0671642 0.903913043,23.4701493 0.903913043,22.7238806 L0.903913043,4.8880597 C0.913043478,4.14179104 1.4973913,3.54477612 2.21869565,3.54477612 L6.49173913,3.54477612 L6.49173913,4.38432836 C6.49173913,4.95335821 6.93913043,5.41044776 7.49608696,5.41044776 L13.503913,5.41044776 C14.0608696,5.41044776 14.5082609,4.95335821 14.5082609,4.38432836 L14.5082609,3.54477612 L18.7813043,3.54477612 C19.5026087,3.54477612 20.096087,4.14179104 20.096087,4.8880597 L20.096087,22.7238806 L20.0869565,22.7238806 L20.0869565,22.7238806 Z\"></path>\n <g transform=\"translate(4.000000, 9.000000)\">\n <rect x=\"3.50571429\" y=\"7.24\" width=\"7.97142857\" height=\"1\"></rect>\n <rect x=\"0.848571429\" y=\"7.24\" width=\"1.37142857\" height=\"1\"></rect>\n <rect x=\"6.50571429\" y=\"2.17\" width=\"4.97142857\" height=\"1\"></rect>\n <polygon points=\"2.13428571 4.04 0.402857143 2.01 1.01142857 1.31 2.13428571 2.62 4.03714286 0.41 4.64571429 1.11\"></polygon>\n </g>\n </g>\n </g>\n </svg>\n);\n\nexport const TargetIcon = () => (\n <svg className=\"target-icon stroke-based-icon\" viewBox=\"0 0 25 25\">\n <g strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(1.000000, 1.000000)\">\n <path\n d=\"M15.6521739,13.3410862 C14.9799955,14.9155188 13.3391142,15.8471825 11.6426584,15.617619 C9.9462025,15.3880555 8.61194453,14.0537975 8.38238102,12.3573416 C8.15281751,10.6608858 9.08448121,9.0200045 10.6589138,8.34782609\"\n strokeLinecap=\"round\"\n ></path>\n <path\n d=\"M19.826087,11.4686261 C19.5475194,15.6524455 16.0240274,18.8752139 11.8318419,18.780577 C7.63965639,18.6859401 4.26519733,15.3074531 4.17572893,11.1153254 C4.08626053,6.92319774 7.31350554,3.40382874 11.4978365,3.13043478\"\n strokeLinecap=\"round\"\n ></path>\n <path\n d=\"M22.9565217,10.4801044 C22.9565217,10.8094757 22.9565217,11.1488279 22.9565217,11.4781992 C22.9565217,16.1251852 20.1544991,20.3136359 15.8592987,22.0872623 C11.5640982,23.8608888 6.62327363,22.8696906 3.3445233,19.5766243 C0.065772964,16.283558 -0.903887735,11.3384639 0.888438166,7.05103466 C2.68076407,2.7636054 6.8813862,-0.0200950351 11.5283306,0 C11.867683,0 12.2070354,0 12.5264259,0\"\n strokeLinecap=\"round\"\n ></path>\n <path\n d=\"M23.4104348,8.34782609 C23.4626087,8.69217391 23.5147826,9.04695652 23.546087,9.39130435\"\n strokeLinecap=\"round\"\n ></path>\n <path d=\"M19.0559527,8.3085908 L16.1993898,7.27346855 C15.9679825,7.18675289 15.7867762,7.00255341 15.7042523,6.77015223 L14.6758896,3.9211919 C14.5392501,3.60164864 14.6150694,3.23112279 14.8663271,2.99053153 L17.5610181,0.255529619 C17.7680939,0.0454487694 18.069052,-0.043464617 18.357445,0.020237671 C18.6458381,0.083939959 18.8810085,0.291277194 18.9797777,0.568915255 L19.7415278,2.61067015 C19.8301804,2.85007338 20.017334,3.04018548 20.2557092,3.13297955 L22.4076532,3.94968151 C22.6793557,4.05644917 22.8788566,4.29253202 22.938341,4.57768034 C22.9978255,4.86282867 22.9092906,5.15867892 22.7028314,5.36466513 L19.960531,8.07117744 C19.7289278,8.31564041 19.3782081,8.40768945 19.0559527,8.3085908 Z\"></path>\n <line\n x1=\"12.5217391\"\n y1=\"10.4347826\"\n x2=\"16.6956522\"\n y2=\"6.26086957\"\n strokeLinecap=\"round\"\n ></line>\n </g>\n </g>\n </svg>\n);\n\nexport const ReportsIcon = () => (\n <svg className=\"reports-icon\" viewBox=\"0 0 25 25\">\n <g>\n <path d=\"M17.933,0 C18.1717358,0 18.3968908,0.110656353 18.5402903,0.296256203 L22.7874693,5.70648432 C22.9255465,5.88258285 23,6.10021604 23,6.324 L23,24 C23,24.5521424 22.5521424,25 22,25 L3,25 C2.44785763,25 2,24.5521424 2,24 L2,1 C2,0.447857625 2.44785763,0 3,0 L17.933,0 Z M16.937,1 L3,1 L3,24 L22,24 L22,7 L18.4371948,7 C17.6087677,7 16.9371948,6.32842712 16.9371948,5.5 L16.937,1 Z M16.5,20 C16.7761424,20 17,20.2238576 17,20.5 C17,20.7761424 16.7761424,21 16.5,21 L8.5,21 C8.22385763,21 8,20.7761424 8,20.5 C8,20.2238576 8.22385763,20 8.5,20 L16.5,20 Z M12.5,6 C12.7761424,6 13,6.22385763 13,6.5 L12.999,16.41 L15.4105156,14 C15.5840819,13.8264336 15.8535063,13.8071485 16.0483745,13.9421445 L16.1176224,14 C16.3128845,14.1952621 16.3128845,14.5118446 16.1176224,14.7071068 L16.1176224,14.7071068 L12.8535534,17.9711757 C12.6582912,18.1664379 12.3417088,18.1664379 12.1464466,17.9711757 L12.1464466,17.9711757 L8.88237764,14.7071068 C8.6871155,14.5118446 8.6871155,14.1952621 8.88237764,14 C9.07763979,13.8047379 9.39422228,13.8047379 9.58948443,14 L9.58948443,14 L11.999,16.41 L12,6.5 C12,6.22385763 12.2238576,6 12.5,6 Z M17.937,1.148 L17.9371948,5.5 C17.9371948,5.77614237 18.1610524,6 18.4371948,6 L21.746,6 L17.937,1.148 Z\"></path>\n </g>\n </svg>\n);\n\nexport const HelpSupportIcon = () => (\n <svg className=\"help-support\" viewBox=\"0 0 25 25\">\n <g>\n <path\n d=\"M12.5,0.3C5.8,0.3,0.3,5.8,0.3,12.5s5.5,12.2,12.2,12.2s12.2-5.5,12.2-12.2S19.2,0.3,12.5,0.3z M12.5,23.8\n c-6.2,0-11.3-5.1-11.3-11.3S6.3,1.2,12.5,1.2s11.3,5.1,11.3,11.3S18.7,23.8,12.5,23.8z\"\n />\n <path\n d=\"M12.5,10.7h-0.4c-0.1,0-0.3,0-0.3,0.1c-0.1,0.1-0.1,0.2-0.1,0.3v8c0,0.1,0,0.3,0.1,0.3\n c0.1,0.1,0.2,0.1,0.3,0.1h0.4c0.1,0,0.3,0,0.3-0.1c0.1-0.1,0.1-0.2,0.1-0.3v-8c0-0.1,0-0.3-0.1-0.3C12.8,10.7,12.7,10.7,12.5,10.7z\"\n />\n <path\n d=\"M12.6,6.7h-0.5c-0.1,0-0.3,0-0.4,0.1c-0.1,0.1-0.1,0.3-0.1,0.4v0.5c0,0.1,0,0.3,0.1,0.3\n c0.1,0.1,0.2,0.1,0.3,0.1h0.5c0.1,0,0.3,0,0.4-0.1C13,7.9,13,7.8,13,7.6V7.2c0-0.1,0-0.3-0.1-0.4C12.8,6.7,12.7,6.7,12.6,6.7z\"\n />\n </g>\n </svg>\n);\n\nexport const DashboardIcon = () => (\n <svg className=\"dashboard-icon\" viewBox=\"0 0 25 25\">\n <g>\n <path\n d=\"M22.2,12.8H12.1V2.8c0-0.3-0.2-0.5-0.5-0.5h-0.1c-6.2,0-11.2,5-11.2,11.2c0,6.2,5,11.2,11.2,11.2\n c6.2,0,11.2-5,11.2-11.2v-0.1C22.7,13.1,22.5,12.8,22.2,12.8z M11.6,13.9h10c-0.2,5.4-4.7,9.7-10.1,9.7c-5.6,0-10.2-4.6-10.2-10.2\n c0-5.4,4.3-9.9,9.7-10.1v10C11.1,13.7,11.3,13.9,11.6,13.9z\"\n />\n <path\n d=\"M24.7,9.9l0-0.1C24,4.9,20.1,1,15.2,0.3l-0.1,0l0,0c-0.1,0-0.3,0-0.4,0.1c-0.1,0.1-0.2,0.2-0.2,0.4V10\n c0,0.3,0.2,0.5,0.5,0.5h9.2c0.2,0,0.3-0.1,0.4-0.2C24.7,10.2,24.7,10.1,24.7,9.9z M23.5,9.5h-8v-8C19.5,2.2,22.8,5.5,23.5,9.5z\"\n />\n </g>\n </svg>\n);\n\nexport const AccountSettings = () => (\n <svg className=\"account-settings\" viewBox=\"0 0 25 25\">\n <g>\n <path\n d=\"M12.5,6.5c-3.3,0-6,2.7-6,6s2.7,6,6,6s6-2.7,6-6S15.8,6.5,12.5,6.5z M12.5,17.5c-2.8,0-5-2.3-5-5s2.3-5,5-5\n s5,2.3,5,5S15.3,17.5,12.5,17.5z\"\n />\n <path\n d=\"M24.5,9.8l-3-0.7c-0.1-0.2-0.2-0.4-0.2-0.6l1.6-2.6c0.1-0.2,0.1-0.4-0.1-0.6l-3.1-3.1\n c-0.1-0.2-0.4-0.2-0.6-0.1l-2.6,1.6c-0.2-0.1-0.4-0.2-0.6-0.3l-0.7-3c-0.1-0.2-0.2-0.3-0.5-0.3h-4.4c-0.2,0-0.4,0.1-0.5,0.4l-0.7,3\n C9,3.6,8.8,3.7,8.6,3.8L5.9,2.2C5.7,2,5.5,2.1,5.3,2.2L2.2,5.3C2.1,5.5,2.1,5.8,2.2,5.9l1.6,2.6C3.7,8.7,3.6,8.9,3.6,9.1l-3,0.7\n c-0.2,0-0.4,0.2-0.4,0.5v4.4c0,0.2,0.2,0.4,0.4,0.5l3,0.7c0.1,0.2,0.2,0.4,0.2,0.6l-1.6,2.6c-0.1,0.2-0.1,0.4,0.1,0.6l3.1,3.1\n c0.2,0.2,0.4,0.2,0.6,0.1l2.6-1.6c0.2,0.1,0.4,0.2,0.6,0.3l0.7,3c0,0.2,0.2,0.4,0.5,0.4h4.4c0.2,0,0.4-0.2,0.5-0.4l0.7-3\n c0.2-0.1,0.4-0.2,0.6-0.3l2.6,1.6c0.2,0.1,0.4,0.1,0.6-0.1l3.1-3.1c0.1-0.2,0.2-0.4,0.1-0.6l-1.6-2.6c0.1-0.2,0.2-0.4,0.2-0.6\n l3-0.7c0.2,0,0.4-0.2,0.4-0.5v-4.4C24.8,10.1,24.7,9.9,24.5,9.8z M20.7,15.3c-0.1,0.3-0.3,0.7-0.4,1c-0.1,0.1-0.1,0.3,0,0.5\n l1.6,2.5l-2.6,2.6l-2.5-1.6c-0.1-0.1-0.3-0.1-0.4,0c-0.3,0.1-0.6,0.3-1,0.4c-0.2,0-0.3,0.2-0.3,0.3l-0.7,2.9h-3.7L10,21\n c0-0.2-0.2-0.3-0.3-0.3c-0.4-0.1-0.7-0.3-1-0.4c-0.1-0.1-0.3-0.1-0.5,0l-2.5,1.6l-2.6-2.6l1.6-2.5c0.1-0.1,0.1-0.3,0-0.5\n c-0.2-0.3-0.3-0.7-0.4-1C4.3,15.1,4.2,15,4,15l-2.9-0.7v-3.7L4,10c0.2,0,0.3-0.2,0.3-0.3c0.1-0.3,0.2-0.6,0.4-1\n c0.1-0.1,0.1-0.3,0-0.5L3.1,5.8l2.6-2.6l2.5,1.6c0.1,0.1,0.3,0.1,0.4,0c0.3-0.1,0.6-0.3,1-0.4C9.8,4.3,10,4.2,10,4l0.7-2.9h3.7\n L15,4c0,0.2,0.2,0.3,0.3,0.3c0.4,0.1,0.7,0.3,1,0.4c0.1,0.1,0.3,0.1,0.5,0l2.5-1.6l2.6,2.6l-1.6,2.5c-0.1,0.1-0.1,0.3,0,0.5\n c0.2,0.3,0.3,0.7,0.4,1C20.7,9.8,20.8,10,21,10l2.9,0.7v3.7L21,15C20.8,15,20.7,15.1,20.7,15.3z\"\n />\n </g>\n </svg>\n);\n\nexport const DetailsIcon = () => (\n <svg className=\"details-icon\" viewBox=\"0 0 25 25\">\n <g>\n <path\n d=\"M21.8,0.4H3.2c-1.2,0-2.1,1-2.1,2.1v20c0,1.2,1,2.1,2.1,2.1h18.6c1.2,0,2.1-1,2.1-2.1v-20\n C23.9,1.3,23,0.4,21.8,0.4z M22.9,22.5c0,0.6-0.5,1.1-1.1,1.1H3.2c-0.6,0-1.1-0.5-1.1-1.1v-20c0-0.6,0.5-1.1,1.1-1.1h18.6\n c0.6,0,1.1,0.5,1.1,1.1V22.5z\"\n />\n <rect x=\"6.2\" y=\"17.3\" width=\"1.6\" height=\"1\" />\n <rect x=\"6.2\" y=\"12.4\" width=\"1.6\" height=\"1\" />\n <rect x=\"6.2\" y=\"7.4\" width=\"1.6\" height=\"1\" />\n <rect x=\"9.3\" y=\"17.3\" width=\"6.1\" height=\"1\" />\n <rect x=\"9.3\" y=\"12.4\" width=\"9.3\" height=\"1\" />\n <rect x=\"9.3\" y=\"7.4\" width=\"6.5\" height=\"1\" />\n </g>\n </svg>\n);\n\nexport const StarIcon = () => (\n <svg className=\"star-icon\" viewBox=\"0 0 25 25\">\n <path\n d=\"M24.7,9.4c-0.1-0.1-0.2-0.1-0.3-0.2L16.6,8L13,0.9c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1,0-0.3,0-0.4,0\n c0,0-0.2,0.1-0.2,0.2L8.4,8L0.6,9.2c-0.3,0-0.5,0.3-0.5,0.6c0,0.1,0.1,0.2,0.2,0.3L6,15.7l-1.3,7.9c-0.1,0.3,0.1,0.6,0.4,0.7h0.1\n c0.1,0,0.2,0,0.3-0.1l7-3.7l7,3.7c0.1,0,0.2,0.1,0.3,0.1c0.3,0,0.6-0.3,0.6-0.6v-0.1l-1.3-7.9l5.6-5.6C24.9,10,24.9,9.6,24.7,9.4z\n M7.1,15.8c0-0.2,0-0.4-0.2-0.5l-5.1-5.1l7-1.1C9,9.1,9.1,9,9.2,8.8l3.2-6.4l3.2,6.4C15.7,9,15.8,9.1,16,9.1l7,1.1l-4.9,5\n c-0.1,0.1-0.3,0.4-0.3,0.6l1.4,7l-6.7-3.2c-0.2-0.1-0.4-0.1-0.5,0l-6.3,3.3L7.1,15.8z\"\n />\n </svg>\n);\n\nexport const CliniciansIcon = () => (\n <svg className=\"clinicians-icon\" viewBox=\"0 0 25 25\">\n <g>\n <path d=\"M24.7,18.8 L24.7,18.8 C24,17.4 22.7,16.3 21.1,15.9 L19.5,15.4 C19.5,15.4 19.4,15.4 19.4,15.3 L19.4,15.2 L19.4,15.2 L20.5,13.9 C21.4,12.9 21.8,11.5 21.7,10.2 L21.5,8.7 C21.3,7.3 20.6,6.1 19.4,5.4 L19.3,5.3 C18.6,4.8 17.7,4.6 16.8,4.6 C15.9,4.6 15,4.9 14.1,5.4 C13.9,5.5 13.8,5.6 13.6,5.8 L13.5,5.9 L13.5,5.9 C13.1,5.1 12.7,4.4 11.9,3.9 L11.9,3.9 C11.1,3.3 10,3 9.1,3 C8,3 7,3.3 6.2,3.9 C5,4.7 4.2,5.9 4,7.3 L3.7,9.1 C3.5,10.6 3.9,12.1 4.9,13.3 L6.1,14.6 C6.1,14.6 6.1,14.6 6.2,14.7 C6.2,14.8 6.2,14.9 6.2,14.9 C6.2,15 6.1,15.1 6,15.1 L4.3,15.6 C2.6,16.1 1.2,17.3 0.4,18.8 C-3.46944695e-16,19.5 -3.46944695e-16,20.3 0.4,21 C0.8,21.6 1.5,22 2.3,22 L10.8,22 L15.7,22 C16,22 16.2,21.9 16.4,21.9 L22.8,21.9 C23.5,21.9 24.2,21.5 24.6,20.9 C25,20.2 25,19.5 24.7,18.8 Z M15.7,21.3 L10.4,21.2 L9,21.2 L2.3,21.3 C1.2,21.3 0.5,20.1 1.1,19.2 C1.8,17.8 3.1,16.8 4.5,16.4 L6.2,15.9 C6.8,15.7 7.1,15.1 6.9,14.5 C6.8,14.4 6.8,14.3 6.7,14.2 L5.5,12.9 C4.6,11.9 4.2,10.6 4.4,9.3 L4.7,7.5 C5,6.3 5.6,5.2 6.6,4.5 C7.4,4 8.2,3.8 9.1,3.8 C9.9,3.8 10.7,4 11.4,4.5 L11.4,4.5 C12.2,5 12.8,5.8 13.2,6.7 C13.3,7 13.4,7.3 13.4,7.7 L13.4,7.7 L13.6,9.4 C13.7,10.5 13.4,11.5 12.8,12.4 C12.7,12.5 12.6,12.7 12.5,12.8 L12.3,13 L11.2,14.2 C11.1,14.3 11,14.4 11,14.5 C10.8,15.1 11.1,15.6 11.7,15.8 L12.8,16.2 L13.5,16.4 C13.8,16.5 13.8,16.5 14,16.6 C15.3,17.1 16.3,18 17,19.2 C17.5,20.1 16.8,21.3 15.7,21.3 Z M13.1,14.2 L14.2,15.4 L14.2,15.4 L14.2,15.5 L14.1,15.6 L14,15.6 C13.9,15.6 13.8,15.6 13.8,15.6 L12.2,15 C12.1,15 12,14.9 11.9,14.8 C11.8,14.7 11.8,14.6 11.9,14.5 L12,14.4 L12.8,13.5 C12.9,13.9 13,14 13.1,14.2 Z M23.8,20.4 C23.6,20.7 23.2,21 22.8,21 L17.5,21 L17.5,21 C17.9,20.3 17.9,19.5 17.6,18.8 C17,17.7 16,16.7 14.9,16.1 C15.1,15.8 15.1,15.5 15,15.2 C15,15.1 14.9,15 14.8,14.9 L13.7,13.7 C13.5,13.5 13.4,13.3 13.2,13.1 L13.2,13.1 C14,12 14.4,10.7 14.3,9.3 L14.1,7.6 C14.1,7.4 14,7.1 14,6.9 C14,6.9 14,6.9 14,6.8 L14.1,6.7 C14.3,6.5 14.5,6.3 14.7,6.2 C15.4,5.8 16.1,5.5 16.8,5.5 C17.5,5.5 18.2,5.6 18.8,6 L18.9,6.1 L18.9,6.1 C19.8,6.7 20.5,7.7 20.6,8.9 L20.8,10.4 C20.9,11.5 20.6,12.5 19.9,13.4 L18.8,14.7 C18.7,14.8 18.6,14.9 18.6,15 C18.5,15.3 18.5,15.6 18.7,15.9 C18.8,16.2 19.3,16.3 19.6,16.4 L21.2,16.9 C22.5,17.3 23.4,18.3 24,19.5 C24.1,19.6 24.1,20.1 23.8,20.4 Z\"></path>\n </g>\n </svg>\n);\n\nexport const GroupReporting = () => (\n <svg className=\"group-reporting\" viewBox=\"0 0 25 25\">\n <g>\n <path\n d=\"M16.9,9C12.5,9,9,12.6,9,16.9s3.6,7.9,7.9,7.9c4.4,0,7.9-3.6,7.9-7.9S21.2,9,16.9,9z M16.9,23.8\n c-3.8,0-6.9-3.1-6.9-6.9s3.1-6.9,6.9-6.9s6.9,3.1,6.9,6.9S20.6,23.8,16.9,23.8z\"\n />\n <polygon points=\"13.5,17.2 14.3,17.9 16.5,15.5 16.5,20.6 17.4,20.6 17.4,15.5 19.6,17.9 20.4,17.2 17,13.5 \t\" />\n <rect x=\"8.5\" y=\"4\" width=\"2\" height=\"2.2\" />\n <rect x=\"12.9\" y=\"4\" width=\"2\" height=\"2.2\" />\n <rect x=\"8.5\" y=\"8.8\" width=\"2\" height=\"2.2\" />\n <path\n d=\"M7.2,21.9h-2V1h13v5.2l0,0v0.6c0,0.1,0,0.3,0.1,0.3c0.2,0,0.1,0,0.2,0h0.3c0.1,0,0.3,0,0.3-0.1\n c0,0,0-0.1,0-0.2V1.5c0,0,0,0,0-0.1V0.6c0-0.2-0.1-0.4-0.3-0.4l0,0l0,0l0,0h-0.1c0,0,0,0,0.1,0H7.6l0,0H4.8c-0.2,0-0.4,0.2-0.4,0.4\n v21.3H0.6c-0.1,0-0.2,0-0.3,0.1s-0.1,0.2-0.1,0.3v0.3c0,0.1,0,0.2,0.1,0.3C0.4,23,0.5,23,0.6,23h6.6c0.1,0,0.2,0,0.3-0.1\n c0.1-0.1,0.1-0.2,0.1-0.3v-0.3c0-0.1,0-0.2-0.1-0.3C7.4,21.9,7.3,21.9,7.2,21.9z\"\n />\n </g>\n </svg>\n);\n\nexport const IndividualReporting = () => (\n <svg className=\"individual-reporting\" viewBox=\"0 0 25 25\">\n <g>\n <path\n d=\"M5.1,5.6C5.3,4.3,6.6,3,7.7,2.3c0.9-0.6,1.8-0.9,2.8-0.9c0.9,0,1.9,0.3,2.7,0.8l0,0c1.2,0.8,2,2,2.3,3.4l0,0\n l0,0c0,0.1,0,0.4,0.1,0.4c0.1,0,0.2,0,0.2,0h0.3c0.1,0,0.2,0,0.2-0.1V5.8l0,0c0,0,0,0,0-0.1l0,0l0,0c-0.2-1.7-1.2-3.2-2.6-4.1l0,0\n c-0.9-0.6-2-0.9-3.2-0.9s-2.3,0.4-3.3,1c-1.4,0.9-2.8,2.4-3,4l-0.3,2C3.6,9.3,3.6,11,4.8,12.3l1.3,1.5c0,0,0,0,0.1,0.1\n c0,0.1,0,0.2,0,0.3S6.1,14.3,6,14.4L4,15c-1.9,0.6-2.6,1.9-3.5,3.7c-0.4,0.8-0.4,1.7,0.1,2.5s1.3,1.2,2.2,1.2h3.8l0,0h0.1\n c0.1,0,0.3,0,0.3-0.1s0-0.2,0-0.3v-0.2c0-0.1,0-0.3-0.1-0.3c-0.1-0.1-0.1,0-0.2,0H5.2l0,0H2.8c-1.2,0-2-1.3-1.4-2.4\n c0.8-1.6,1.3-2.7,3-3.2l2-0.6c0.7-0.2,1-0.9,0.8-1.6c-0.1-0.2-0.2-0.3-0.3-0.4l-1.4-1.5c-1-1.1-1-2.6-0.7-4.1L5.1,5.6z\"\n />\n <path\n d=\"M16.9,8.6c-4.4,0-7.9,3.6-7.9,7.9s3.6,7.9,7.9,7.9s7.9-3.6,7.9-7.9S21.3,8.6,16.9,8.6z M16.9,23.4\n c-3.8,0-6.9-3.1-6.9-6.9s3.1-6.9,6.9-6.9s6.9,3.1,6.9,6.9S20.7,23.4,16.9,23.4z\"\n />\n <polygon points=\"13.6,16.8 14.3,17.5 16.6,15.1 16.6,20.2 17.4,20.2 17.4,15.1 19.7,17.5 20.4,16.8 17,13.1 \t\" />\n </g>\n </svg>\n);\n\nexport const ChevronLeft = () => (\n <svg className=\"chevron-left\" viewBox=\"0 0 1792 1792\">\n <title>chevron-left</title>\n <g>\n <path d=\"M1427 301l-531 531 531 531q19 19 19 45t-19 45l-166 166q-19 19-45 19t-45-19l-742-742q-19-19-19-45t19-45l742-742q19-19 45-19t45 19l166 166q19 19 19 45t-19 45z\" />\n </g>\n </svg>\n);\n\nexport const ChevronRight = () => (\n <svg className=\"chevron-right\" viewBox=\"0 0 1792 1792\">\n <title>chevron-right</title>\n <g>\n <path d=\"M1363 877l-742 742q-19 19-45 19t-45-19l-166-166q-19-19-19-45t19-45l531-531-531-531q-19-19-19-45t19-45l166-166q19-19 45-19t45 19l742 742q19 19 19 45t-19 45z\" />\n </g>\n </svg>\n);\n\nexport const ChevronDown = () => (\n <svg className=\"chevron-down\" viewBox=\"0 0 1792 1792\">\n <title>chevron-down</title>\n <g>\n <path d=\"M1683 808l-742 741q-19 19-45 19t-45-19l-742-741q-19-19-19-45.5t19-45.5l166-165q19-19 45-19t45 19l531 531 531-531q19-19 45-19t45 19l166 165q19 19 19 45.5t-19 45.5z\" />\n </g>\n </svg>\n);\n\nexport const SwitchPractice = () => (\n <svg className=\"switch-practice\" viewBox=\"0 0 15 15\">\n <title>switch-practice</title>\n <g>\n <path\n d=\"M14,8.7h-1.8c-0.1,0-0.2,0.1-0.3,0.2c-0.2,0.4-0.3,0.7-0.5,1.1c-0.9,1.4-2.4,2.2-4,2.2c-1.2,0-2.3-0.5-3.2-1.3l1.3-1.3\n c0.1-0.1,0.2-0.3,0.2-0.4c0-0.3-0.3-0.6-0.6-0.6H1c-0.3,0-0.6,0.3-0.6,0.6v4.1C0.4,13.7,0.7,14,1,14c0.2,0,0.3-0.1,0.4-0.2l1.2-1.2\n c1.3,1.2,3,2,4.8,2c3.4,0,6.1-2.3,6.9-5.5c0,0,0,0,0-0.1C14.3,8.8,14.2,8.7,14,8.7z\"\n />\n <path\n d=\"M14,1c-0.2,0-0.3,0.1-0.4,0.2l-1.2,1.2c-1.3-1.2-3.1-2-4.9-2C4.1,0.4,1.4,2.7,0.6,6c0,0,0,0,0,0.1c0,0.2,0.1,0.3,0.3,0.3\n h1.8C2.9,6.3,3,6.2,3,6.1C3.2,5.7,3.3,5.4,3.5,5c0.9-1.4,2.4-2.2,4-2.2c1.2,0,2.3,0.5,3.2,1.3L9.4,5.3C9.3,5.4,9.3,5.6,9.3,5.7\n c0,0.3,0.3,0.6,0.6,0.6H14c0.3,0,0.6-0.3,0.6-0.6V1.6C14.6,1.3,14.3,1,14,1z\"\n />\n </g>\n </svg>\n);\n\nexport const ScoreIncrease = () => (\n <svg className=\"score-increase\" viewBox=\"0 0 15 15\">\n <g>\n <path\n d=\"M9.7,4c0,0.4,0.3,0.7,0.7,0.7h2.2l-4.1,4L5.8,6.4C5.4,6,5.1,6,4.8,6.3l-4.5,4.3c-0.3,0.2-0.3,0.7-0.1,1\n s0.6,0.3,0.9,0.1l4.1-3.9L7.9,10c0.2,0.4,0.7,0.5,1,0.1l4.8-4.6v2.7c0,0.4,0.3,0.7,0.6,0.7c0.4,0,0.6-0.4,0.6-0.7V3.9\n c0-0.4-0.3-0.7-0.6-0.7h-3.9C10,3.2,9.7,3.6,9.7,4z\"\n />\n </g>\n </svg>\n);\n\nexport const TooltipIcon = () => (\n <svg className=\"tooltip-icon\" viewBox=\"0 0 15 15\">\n <g>\n <path\n d=\"M7.5,0.2c-4,0-7.3,3.3-7.3,7.3s3.3,7.3,7.3,7.3s7.3-3.3,7.3-7.3S11.5,0.2,7.5,0.2z M7.5,13.6c-3.4,0-6.1-2.7-6.1-6.1\n s2.7-6.1,6.1-6.1s6.1,2.7,6.1,6.1S10.9,13.6,7.5,13.6z\"\n />\n <path\n d=\"M8,9.9H6.9c-0.1,0-0.1,0-0.2,0.1s-0.1,0.1-0.1,0.2v1c0,0.1,0,0.1,0.1,0.2c0.1,0.1,0.1,0.1,0.2,0.1H8c0.1,0,0.1,0,0.2-0.1\n c0.1-0.1,0.1-0.1,0.1-0.2v-1c0-0.1,0-0.1-0.1-0.2C8.2,10,8.1,9.9,8,9.9z\"\n />\n <path\n d=\"M9.1,3.9C8.7,3.7,8.2,3.6,7.6,3.6S6.5,3.7,6,3.9C5.6,4.1,5.3,4.4,5,4.8C4.8,5.1,4.7,5.5,4.7,5.9c0,0.1,0,0.1,0.1,0.2\n c0,0.1,0.1,0.1,0.2,0.1h1c0.2,0,0.3-0.1,0.3-0.3c0.1-0.7,0.6-1.1,1.3-1.1c0.3,0,0.6,0.1,0.8,0.3c0.2,0.2,0.3,0.4,0.3,0.7\n c0,0.2-0.1,0.3-0.2,0.5C8.3,6.5,8.1,6.7,7.8,7S7.3,7.6,7.1,7.9C6.9,8.1,6.8,8.4,6.7,8.8c0,0.1,0,0.2,0,0.4c0,0.1,0,0.1,0.1,0.2\n c0,0,0.1,0.1,0.2,0.1h1.1c0.1,0,0.1,0,0.2-0.1s0.1-0.1,0.1-0.2c0-0.1,0-0.2,0.1-0.4c0-0.2,0.1-0.4,0.3-0.6C8.9,7.8,9,7.7,9.2,7.5\n c0.4-0.4,0.6-0.7,0.8-1s0.3-0.6,0.3-1c0-0.3-0.1-0.6-0.3-0.9C9.8,4.3,9.5,4.1,9.1,3.9z\"\n />\n </g>\n </svg>\n);\n\nexport const NavCollapse = () => (\n <svg className=\"nav-collapse\" viewBox=\"0 0 25 25\">\n <title>nav-collapse</title>\n <g>\n <polygon points=\"6.8,9.1 10,12.1 0.1,12.1 0.1,12.9 10,12.9 6.8,15.9 7.5,16.6 12,12.5 7.5,8.4 \t\" />\n <polygon points=\"24.9,12.1 15,12.1 18.2,9.1 17.5,8.4 13,12.5 17.5,16.6 18.2,15.9 15,12.9 24.9,12.9 \" />\n </g>\n </svg>\n);\n\nexport const NavExpand = () => (\n <svg className=\"nav-expand\" viewBox=\"0 0 25 25\">\n <title>nav-expand</title>\n <g>\n <polygon points=\"5.2,9.1 4.5,8.4 0.1,12.5 4.5,16.6 5.2,15.9 2,12.9 11,12.9 11,12.1 2,12.1 \" />\n <polygon points=\"20.5,8.4 19.8,9.1 23,12.1 14,12.1 14,12.9 23,12.9 19.8,15.9 20.5,16.6 24.9,12.5 \" />\n </g>\n </svg>\n);\n\nexport const CloseXIcon = () => (\n <svg className=\"closex\" viewBox=\"0 0 15 15\" focusable=\"false\">\n <g strokeWidth=\"1\" transform=\"translate(-968.000000, -236.000000)\">\n <path d=\"M982.725141,249.399456 L976.82556,243.499875 L982.725141,237.600294 C983.091286,237.234148 983.091286,236.640905 982.725141,236.274609 C982.359295,235.908464 981.765752,235.908464 981.399456,236.274609 L975.499875,242.17419 L969.600294,236.274609 C969.234448,235.908464 968.640905,235.908464 968.274609,236.274609 C967.908464,236.640155 967.908464,237.233998 968.274609,237.600294 L974.17419,243.499875 L968.274609,249.399456 C967.908464,249.765602 967.908464,250.358845 968.274609,250.725141 C968.640755,251.091286 969.233998,251.091286 969.600294,250.725141 L975.499875,244.82556 L981.399456,250.725141 C981.765602,251.091286 982.359295,251.091286 982.725141,250.725141 C983.091286,250.358995 983.091286,249.765752 982.725141,249.399456 Z\"></path>\n </g>\n </svg>\n);\n\nexport const CloseXIcon2 = () => (\n <svg viewBox=\"0 0 16 16\" focusable=\"false\">\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <path\n d=\"M0.292893219,0.292893219 C0.683417511,-0.0976310729 1.31658249,-0.0976310729 1.70710678,0.292893219 L1.70710678,0.292893219 L8,6.585 L14.2928932,0.292893219 C14.6834175,-0.0976310729 15.3165825,-0.0976310729 15.7071068,0.292893219 C16.0675907,0.65337718 16.0953203,1.22060824 15.7902954,1.61289944 L15.7071068,1.70710678 L9.415,8 L15.7071068,14.2928932 L15.7902954,14.3871006 C16.0953203,14.7793918 16.0675907,15.3466228 15.7071068,15.7071068 C15.3165825,16.0976311 14.6834175,16.0976311 14.2928932,15.7071068 L14.2928932,15.7071068 L8,9.415 L1.70710678,15.7071068 C1.31658249,16.0976311 0.683417511,16.0976311 0.292893219,15.7071068 C-0.0675907428,15.3466228 -0.0953202783,14.7793918 0.209704612,14.3871006 L0.292893219,14.2928932 L6.585,8 L0.292893219,1.70710678 L0.209704612,1.61289944 C-0.0953202783,1.22060824 -0.0675907428,0.65337718 0.292893219,0.292893219 Z\"\n fill=\"#242424\"\n fillRule=\"nonzero\"\n ></path>\n </g>\n </svg>\n);\n\nexport const BellOutline = () => (\n <svg className=\"bell-outline\" viewBox=\"0 0 448 512\">\n <path d=\"M433.884 366.059C411.634 343.809 384 316.118 384 208c0-79.394-57.831-145.269-133.663-157.83A31.845 31.845 0 0 0 256 32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 6.75 2.095 13.008 5.663 18.17C121.831 62.731 64 128.606 64 208c0 108.118-27.643 135.809-49.893 158.059C-16.042 396.208 5.325 448 48.048 448H160c0 35.29 28.71 64 64 64s64-28.71 64-64h111.943c42.638 0 64.151-51.731 33.941-81.941zM224 480c-17.645 0-32-14.355-32-32h64c0 17.645-14.355 32-32 32zm175.943-64H48.048c-14.223 0-21.331-17.296-11.314-27.314C71.585 353.836 96 314.825 96 208c0-70.741 57.249-128 128-128 70.74 0 128 57.249 128 128 0 106.419 24.206 145.635 59.257 180.686C421.314 398.744 414.11 416 399.943 416z\" />\n </svg>\n);\n\nexport const EarlyClaims = () => (\n <svg className=\"early-claims-icon\" viewBox=\"0 0 25 25\">\n <g id=\"Claims-Icon-list\">\n <g id=\"Claims-Icon\" transform=\"translate(2.000000, 0.000000)\">\n <g id=\"Lines\" transform=\"translate(3.000000, 8.000000)\">\n <polygon points=\"0 1 15 1 15 0 0 0\"></polygon>\n <polygon points=\"0 4 15 4 15 3 0 3\"></polygon>\n <polygon points=\"0 7 15 7 15 6 0 6\"></polygon>\n <polygon points=\"0 10 15 10 15 9 0 9\"></polygon>\n <polygon points=\"0 13 15 13 15 12 0 12\"></polygon>\n </g>\n <path d=\"M1,24 L1,1 L16,1 L16,5.5 C16,5.776 16.224,6 16.5,6 L20,6 L20,24 L1,24 Z M17,1.851 L19.446,5 L17,5 L17,1.851 Z M20.895,5.235 L16.979,0.193 C16.884,0.071 16.738,0 16.583,0 L0.5,0 C0.224,0 0,0.224 0,0.5 L0,24.5 C0,24.776 0.224,25 0.5,25 L20.5,25 C20.776,25 21,24.776 21,24.5 L21,5.542 C21,5.43 20.963,5.322 20.895,5.235 Z\"></path>\n </g>\n </g>\n </svg>\n);\n\nexport const CliniciansList = () => (\n <svg className=\"clinicians-list-icon\" viewBox=\"0 0 25 25\">\n <g>\n <path\n className=\"st0\"\n d=\"M21.8,0.4H3.2c-1.2,0-2.1,1-2.1,2.1v20c0,1.2,1,2.1,2.1,2.1h18.6c1.2,0,2.1-1,2.1-2.1v-20\n C23.9,1.3,23,0.4,21.8,0.4z M22.9,22.5c0,0.6-0.5,1.1-1.1,1.1H3.2c-0.6,0-1.1-0.5-1.1-1.1v-20c0-0.6,0.5-1.1,1.1-1.1h18.6\n c0.6,0,1.1,0.5,1.1,1.1V22.5z\"\n />\n <rect x=\"6.2\" y=\"17.3\" className=\"st0\" width=\"1.6\" height=\"1\" />\n <rect x=\"6.2\" y=\"12.4\" className=\"st0\" width=\"1.6\" height=\"1\" />\n <rect x=\"6.2\" y=\"7.4\" className=\"st0\" width=\"1.6\" height=\"1\" />\n <rect x=\"9.3\" y=\"17.3\" className=\"st0\" width=\"6.1\" height=\"1\" />\n <rect x=\"9.3\" y=\"12.4\" className=\"st0\" width=\"9.3\" height=\"1\" />\n <rect x=\"9.3\" y=\"7.4\" className=\"st0\" width=\"6.5\" height=\"1\" />\n </g>\n </svg>\n);\n\nexport const YoutubeIcon = () => (\n <svg className=\"youtube-icon\" width=\"19px\" height=\"14px\" viewBox=\"0 0 19 14\">\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g\n transform=\"translate(-801.000000, -179.000000)\"\n fill=\"#242424\"\n fillRule=\"nonzero\"\n >\n <g transform=\"translate(763.000000, 140.000000)\">\n <g transform=\"translate(38.000000, 39.000000)\">\n <path\n d=\"M17.7486957,2.84298208 C17.551087,2.10010036 16.9670652,1.51515412 16.2265217,1.3162724 C14.8843478,0.955555556 9.5,0.955555556 9.5,0.955555556 C9.5,0.955555556 4.11565217,0.955555556 2.77347826,1.3162724 C2.03293478,1.51515412 1.44891304,2.10010036 1.25130435,2.84298208 C0.891304348,4.19030824 0.891304348,7 0.891304348,7 C0.891304348,7 0.891304348,9.80969176 1.25130435,11.1570179 C1.44891304,11.8998996 2.03293478,12.4848459 2.77347826,12.6837276 C4.11565217,13.0444444 9.5,13.0444444 9.5,13.0444444 C9.5,13.0444444 14.8843478,13.0444444 16.2265217,12.6837276 C16.9670652,12.4848459 17.551087,11.8998996 17.7486957,11.1570179 C18.1086957,9.80969176 18.1086957,7 18.1086957,7 C18.1086957,7 18.1086957,4.19030824 17.7486957,2.84298208 Z M7.73913043,9.5513405 L7.73913043,4.4486595 L12.2391304,7 L7.73913043,9.5513405 Z\"\n id=\"Youtube-icon\"\n ></path>\n </g>\n </g>\n </g>\n </g>\n </svg>\n);\n\nexport const TwitterIcon = () => (\n <svg className=\"twitter-icon\" width=\"19px\" height=\"16px\" viewBox=\"0 0 19 16\">\n <g stroke=\"none\" stroke-Width=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g\n transform=\"translate(-763.000000, -177.000000)\"\n fill=\"#242424\"\n fillRule=\"nonzero\"\n >\n <g transform=\"translate(763.000000, 140.000000)\">\n <g transform=\"translate(0.000000, 37.000000)\">\n <path\n d=\"M16.9243259,4.73901817 C16.9243259,4.57725788 16.9243259,4.41549759 16.916868,4.25373729 C17.6626567,3.71698723 18.3114928,3.05524058 18.826087,2.30526104 C18.1250456,2.6067234 17.3867149,2.81260014 16.6260105,2.90083303 C17.4240043,2.43025763 18.0206352,1.68763083 18.3040349,0.812654705 C17.5507884,1.25381914 16.7304209,1.56263424 15.8727639,1.72439454 C14.425934,0.202377237 12.0021209,0.128849832 10.4583384,1.56263424 C9.46643951,2.48172682 9.04133999,3.8566893 9.35457121,5.16547712 C6.28192201,5.01106957 3.41063575,3.5846379 1.47158528,1.22440818 C0.457312727,2.94494947 0.971906889,5.15077164 2.65738922,6.26103547 C2.04584253,6.24632999 1.45666951,6.0845697 0.919701685,5.79046007 C0.919701685,5.80516555 0.919701685,5.81987104 0.919701685,5.83457652 C0.919701685,7.62864522 2.20245815,9.17272074 3.99235089,9.53300502 C3.42555152,9.68741258 2.83637849,9.7094708 2.26212124,9.59917969 C2.76179963,11.1359025 4.20117171,12.1873444 5.83444883,12.2167553 C4.4771135,13.2681972 2.80654695,13.8343583 1.08377519,13.8343583 C0.778001843,13.8343583 0.4722285,13.8123 0.173913043,13.7828891 C1.93397424,14.8784474 3.96251934,15.4666667 6.04326965,15.4666667 C13.0760565,15.4666667 16.9243259,9.71682354 16.9243259,4.73901817 Z\"\n id=\"twitter-icon\"\n ></path>\n </g>\n </g>\n </g>\n </g>\n </svg>\n);\n\nexport const WiViewReportsIcon = () => (\n <svg className=\"wi-view-reports\" viewBox=\"0 0 25 25\">\n <title>WI View Reports</title>\n <g>\n <path d=\"M20.8680556,0.0569444444 L3.37638889,0.0569444444 C3.11944444,0.0569444444 2.9125,0.265277778 2.9125,0.520833333 L2.9125,2.07777778 L1.35555556,2.07777778 C1.09861111,2.07777778 0.891666667,2.28472222 0.891666667,2.54027778 L0.891666667,24.4763889 C0.891666667,24.7333333 1.09861111,24.9402778 1.35555556,24.9402778 L18.8472222,24.9402778 C19.1027778,24.9402778 19.3097222,24.7319444 19.3097222,24.4763889 L19.3097222,22.9208333 L20.8680556,22.9208333 C21.1236111,22.9208333 21.3305556,22.7125 21.3305556,22.4583333 L21.3305556,0.522222222 C21.3305556,0.265277778 21.1236111,0.0569444444 20.8680556,0.0569444444 Z M1.82222222,24.0111111 L1.82222222,3.00833333 L18.3861111,3.00833333 L18.3861111,24.0125 L1.82222222,24.0125 L1.82222222,24.0111111 Z M18.8472222,2.07777778 L3.84305556,2.07777778 L3.84305556,0.986111111 L20.4027778,0.986111111 L20.4027778,21.9930556 L19.3097222,21.9930556 L19.3097222,2.54166667 C19.3097222,2.28611111 19.1027778,2.07777778 18.8472222,2.07777778 Z\"></path>\n <path d=\"M14.8069444,7.05138889 L5.4,7.05138889 C5.14305556,7.05138889 4.93611111,7.25972222 4.93611111,7.51666667 C4.93611111,7.77222222 5.14305556,7.97916667 5.4,7.97916667 L14.8069444,7.97916667 C15.0638889,7.97916667 15.2708333,7.77083333 15.2708333,7.51666667 C15.2708333,7.25972222 15.0638889,7.05138889 14.8069444,7.05138889 Z\"></path>\n <path d=\"M14.8069444,11.0472222 L5.4,11.0472222 C5.14305556,11.0472222 4.93611111,11.2569444 4.93611111,11.5138889 C4.93611111,11.7694444 5.14305556,11.9763889 5.4,11.9763889 L14.8069444,11.9763889 C15.0638889,11.9763889 15.2708333,11.7680556 15.2708333,11.5138889 C15.2708333,11.2569444 15.0638889,11.0472222 14.8069444,11.0472222 Z\"></path>\n <path d=\"M14.8069444,15.0416667 L5.4,15.0416667 C5.14305556,15.0416667 4.93611111,15.25 4.93611111,15.5069444 C4.93611111,15.7638889 5.14305556,15.9722222 5.4,15.9722222 L14.8069444,15.9722222 C15.0638889,15.9722222 15.2708333,15.7638889 15.2708333,15.5069444 C15.2708333,15.25 15.0638889,15.0416667 14.8069444,15.0416667 Z\"></path>\n <path d=\"M14.8069444,18.5819444 L5.4,18.5819444 C5.14305556,18.5819444 4.93611111,18.7902778 4.93611111,19.0472222 C4.93611111,19.3041667 5.14305556,19.5125 5.4,19.5125 L14.8069444,19.5125 C15.0638889,19.5125 15.2708333,19.3041667 15.2708333,19.0472222 C15.2708333,18.7902778 15.0638889,18.5819444 14.8069444,18.5819444 Z\"></path>\n </g>\n </svg>\n);\n\nexport const WiViewProgressIcon = () => (\n <svg className=\"wi-view-progress\" viewBox=\"0 0 25 25\">\n <title>WI View Progress</title>\n <g>\n <path d=\"M22.2,25.5H2.8c-1.8,0-3.3-1.5-3.3-3.3V2.8C-0.5,1,1-0.5,2.8-0.5h19.4c1.8,0,3.3,1.5,3.3,3.3v19.4C25.5,24,24,25.5,22.2,25.5z M2.8,0.5c-1.3,0-2.3,1-2.3,2.3v19.4c0,1.3,1,2.3,2.3,2.3h19.4c1.3,0,2.3-1,2.3-2.3V2.8c0-1.3-1-2.3-2.3-2.3H2.8z\" />\n <path d=\"M7.8,18.8c0.5,0,0.9-0.4,0.9-0.9v-4.6c0-0.5-0.4-0.9-0.9-0.9s-0.9,0.4-0.9,0.9v4.6C6.9,18.3,7.3,18.8,7.8,18.8z\" />\n <path d=\"M17.4,18.8c0.5,0,0.9-0.4,0.9-0.9V7.4c0-0.5-0.4-0.9-0.9-0.9c-0.5,0-0.9,0.4-0.9,0.9v10.5C16.5,18.3,16.9,18.8,17.4,18.8z\" />\n <path d=\"M12.6,18.8c0.5,0,0.9-0.4,0.9-0.9v-7.5c0-0.5-0.4-0.9-0.9-0.9c-0.5,0-0.9,0.4-0.9,0.9v7.5C11.7,18.3,12.1,18.8,12.6,18.8z\" />\n </g>\n </svg>\n);\n\nexport const WiManageGroupIcon = () => (\n <svg className=\"wi-manage-group\" viewBox=\"0 0 25 25\">\n <title>WI Manage Group</title>\n <g>\n <path d=\"M12.7775,0.110555556 C12.6219444,-0.0366666667 12.3783333,-0.0366666667 12.2227778,0.110555556 L0.125833333,11.5741667 C0.0455555556,11.6502778 0,11.7561111 0,11.8669444 L0,24.5969444 C0,24.7030556 0.0430555556,24.8069444 0.118055556,24.8819444 C0.193055556,24.9569444 0.296944444,25 0.403333333,25 L24.5969444,25 C24.7030556,25 24.8069444,24.9569444 24.8819444,24.8819444 C24.9569444,24.8066667 25,24.7027778 25,24.5966667 L25,11.8669444 C25,11.7561111 24.9544444,11.6505556 24.8741667,11.5741667 L12.7775,0.110555556 Z M0.806388889,12.0402778 L12.5,0.958611111 L24.1936111,12.0402778 L24.1936111,24.1936111 L0.806388889,24.1936111 L0.806388889,12.0402778 Z\"></path>\n <path d=\"M18.1452778,12.2311111 L14.785,12.2311111 L14.785,8.87083333 C14.785,8.76472222 14.7419444,8.66083333 14.6669444,8.58583333 C14.5919444,8.51083333 14.4880556,8.46777778 14.3819444,8.46777778 L10.6183333,8.46777778 C10.5122222,8.46777778 10.4083333,8.51083333 10.3333333,8.58583333 C10.2583333,8.66083333 10.2152778,8.76472222 10.2152778,8.87083333 L10.2152778,12.2311111 L6.855,12.2311111 C6.74888889,12.2311111 6.645,12.2741667 6.57,12.3491667 C6.495,12.4241667 6.45194444,12.5280556 6.45194444,12.6341667 L6.45194444,16.3975 C6.45194444,16.5036111 6.495,16.6075 6.57,16.6825 C6.645,16.7575 6.74888889,16.8005556 6.855,16.8005556 L10.2152778,16.8005556 L10.2152778,20.1608333 C10.2152778,20.2669444 10.2583333,20.3708333 10.3333333,20.4458333 C10.4083333,20.5208333 10.5122222,20.5638889 10.6183333,20.5638889 L14.3816667,20.5638889 C14.4877778,20.5638889 14.5916667,20.5208333 14.6666667,20.4458333 C14.7416667,20.3708333 14.7847222,20.2669444 14.7847222,20.1608333 L14.7847222,16.8011111 L18.145,16.8011111 C18.2511111,16.8011111 18.355,16.7580556 18.43,16.6830556 C18.505,16.6080556 18.5480556,16.5041667 18.5480556,16.3980556 L18.5480556,12.6344444 C18.5480556,12.5283333 18.505,12.4244444 18.43,12.3494444 C18.3552778,12.2741667 18.2513889,12.2311111 18.1452778,12.2311111 Z M17.7419444,15.9947222 L14.3816667,15.9947222 C14.2755556,15.9947222 14.1716667,16.0377778 14.0966667,16.1127778 C14.0216667,16.1877778 13.9786111,16.2916667 13.9786111,16.3977778 L13.9786111,19.7580556 L11.0213889,19.7580556 L11.0213889,16.3977778 C11.0213889,16.2916667 10.9783333,16.1877778 10.9033333,16.1127778 C10.8283333,16.0377778 10.7244444,15.9947222 10.6183333,15.9947222 L7.25805556,15.9947222 L7.25805556,13.0375 L10.6183333,13.0375 C10.7244444,13.0375 10.8283333,12.9944444 10.9033333,12.9194444 C10.9783333,12.8444444 11.0213889,12.7405556 11.0213889,12.6344444 L11.0213889,9.27416667 L13.9783333,9.27416667 L13.9783333,12.6344444 C13.9783333,12.7405556 14.0213889,12.8444444 14.0963889,12.9194444 C14.1713889,12.9944444 14.2752778,13.0375 14.3813889,13.0375 L17.7416667,13.0375 L17.7416667,15.9947222 L17.7419444,15.9947222 Z\"></path>\n </g>\n </svg>\n);\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import { useLayoutEffect, useEffect } from 'react';\nimport { canUseDOM } from '../../can-use-dom/dist/reach-utils-can-use-dom.esm.js';\n\n/**\n * React currently throws a warning when using useLayoutEffect on the server. To\n * get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also\n * need affected components to render on the server. One example is when setting\n * a component's descendants to retrieve their index values.\n *\n * Important to note that using this hook as an escape hatch will break the\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\n * any server/client mismatch.\n *\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\n * likely that the component in question shouldn't be rendered on the server at\n * all, so a better approach would be to lazily render those in a parent\n * component after client-side hydration.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n *\n * @param effect\n * @param deps\n */\n\nvar useIsomorphicLayoutEffect = /*#__PURE__*/canUseDOM() ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","const submissionsUrl = '/user/submissions';\nconst dashboardUrl = '/user/dashboard';\nconst manageUrl = '/user/manage-access';\nconst feedbackUrl = `${submissionsUrl}/feedback`;\nconst physicianCompareUrl = `${submissionsUrl}/doctors-clinicians-preview`;\nconst reportsPortalUrl = `${submissionsUrl}/reports`;\nconst facilityBasedPreviewBaseUrl = `${submissionsUrl}/facility-based-preview`;\n\nconst performanceFeedbackUrl = (performanceYear) => {\n if (performanceYear) {\n return `${feedbackUrl}/${performanceYear}`;\n } else {\n return feedbackUrl;\n }\n};\n\nconst facilityBasedPreviewUrl = (performanceYear) => {\n return `${facilityBasedPreviewBaseUrl}/${performanceYear}`;\n};\n\nconst handleNavigation = (e, linkCallbackFunction, label) => {\n if (linkCallbackFunction) {\n const { pathname, hash, search } = e.currentTarget;\n e.preventDefault();\n e.stopPropagation();\n linkCallbackFunction(`${pathname}${hash}${search}`);\n }\n window?.utag?.link({\n ga_event_category: 'side navbar',\n ga_event_action: 'click',\n ga_event_label: label,\n page_title: `${window.document.title}`,\n page_url: `${window.location.pathname}`,\n event: 'trackEvent',\n });\n};\n\nmodule.exports = {\n submissionsUrl,\n dashboardUrl,\n feedbackUrl,\n manageUrl,\n physicianCompareUrl,\n performanceFeedbackUrl,\n facilityBasedPreviewUrl,\n handleNavigation,\n reportsPortalUrl,\n facilityBasedPreviewBaseUrl,\n};\n","module.exports = require('./lib/axios');","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\nvar pairSplitRegExp = /; */;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(pairSplitRegExp);\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var eq_idx = pair.indexOf('=');\n\n // skip things that don't look like key=value\n if (eq_idx < 0) {\n continue;\n }\n\n var key = pair.substr(0, eq_idx).trim()\n var val = pair.substr(++eq_idx, pair.length).trim();\n\n // quoted values\n if ('\"' == val[0]) {\n val = val.slice(1, -1);\n }\n\n // only assign once\n if (undefined == obj[key]) {\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","import React, { createContext, useState, useEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nexport function useWindowWidth() {\n const [windowSize, setWindowSize] = useState(undefined);\n useEffect(() => {\n function handleResize() {\n setWindowSize(window.innerWidth);\n }\n window.addEventListener('resize', handleResize);\n handleResize();\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n return windowSize;\n}\n\nexport const HeaderStateContext = createContext(null);\n\nexport const HeaderStateProvider = ({ children, RouterLink }) => {\n const [currentOpenMenu, setCurrentOpenMenu] = useState('');\n\n const handleToggleMenu = (name) => {\n if (currentOpenMenu === name) {\n return setCurrentOpenMenu('');\n }\n return setCurrentOpenMenu(name);\n };\n\n const closeMenus = () => setCurrentOpenMenu('');\n return (\n <HeaderStateContext.Provider\n value={{ currentOpenMenu, handleToggleMenu, closeMenus, RouterLink }}\n >\n {children}\n </HeaderStateContext.Provider>\n );\n};\nHeaderStateProvider.propTypes = {\n children: PropTypes.node.isRequired,\n RouterLink: PropTypes.func,\n};\nHeaderStateProvider.defaultProps = {\n RouterLink: null,\n};\n\nexport const useHeaderState = () => {\n const context = useContext(HeaderStateContext);\n if (context === undefined) {\n throw new Error('useHeaderState must be used within a HeaderStateProvider');\n }\n return context;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst hasDarkerBackground = (darkerBackground) => {\n return darkerBackground ? 'background-highlight' : '';\n}\n\nconst AnimationGroup = ({ display, className, children, darkerBackground }) => {\n return (\n <div\n className={`animation-group animation-group-${className || 'default'}${\n display ? ' animation-group-enter' : ' animation-group-exit'\n } ${hasDarkerBackground(darkerBackground)}`}\n >\n {children}\n </div>\n );\n};\n\nAnimationGroup.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n display: PropTypes.bool,\n darkerBackground: PropTypes.bool\n};\n\nexport default AnimationGroup;\n","function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n\nexport { canUseDOM };\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","export const setUtagLink = (eventCategory, eventAction, eventLabel) =>\n window?.utag?.link({\n ga_event_category: eventCategory,\n ga_event_action: eventAction,\n ga_event_label: eventLabel,\n page_title: `${window.document.title}`,\n page_url: `${window.location.pathname}`,\n event: 'trackEvent',\n });\n","import cookie from 'cookie';\nimport axios from 'axios';\n\nexport const deleteImpersonatedUser = (cookies) => {\n const userHasApmPayments = localStorage.getItem('user_has_apm_payments');\n if (\n cookies.hasOwnProperty('qpp_impersonated_user', 'user_has_apm_payments')\n ) {\n document.cookie = `user_has_apm_payments=${userHasApmPayments}; Path=/;`;\n document.cookie =\n 'qpp_impersonated_user=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\n }\n};\n\nexport const revertQppHasAuthsCookie = () => {\n const { qppHasAuthorizations, behindSSL } = JSON.parse(\n localStorage.getItem('impersonatorAuthValues')\n )\n if (qppHasAuthorizations) {\n document.cookie = `qpp_has_authorizations=${qppHasAuthorizations};path=/${\n behindSSL ? ';secure' : ''\n }`\n }\n}\n\n/**\n * Makes an API request to end the user session.\n * @param {Object} [_window] The DOM Window\n * @return {Function} Returns a promise\n */\nconst LogoutSession = (_window) => {\n let cookies = cookie.parse(_window.document.cookie);\n let logoutDestination = '/logout-confirmation';\n\n if (cookies.hasOwnProperty('qpp_auth_token')) {\n let onSuccess = () => {\n // redirect to login/logged out screen\n deleteImpersonatedUser(cookies);\n _window.location.pathname = logoutDestination;\n };\n\n let onError = () => {\n // delete cookie and redirect login/logged out screen\n deleteImpersonatedUser(cookies);\n _window.location.pathname = logoutDestination;\n };\n\n return axios({\n method: 'POST',\n url: '/user/session-logout',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${cookies.qpp_auth_token}`,\n },\n })\n .then(onSuccess, onError)\n .catch(function (err) {\n console.log(err);\n });\n } else {\n _window.location.pathname = logoutDestination;\n }\n};\n\nexport default LogoutSession;\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","import React from 'react';\nimport xss from 'xss';\nimport PropTypes from 'prop-types';\n\n// Override the default allowed HTML tags\nconst defaultAllowedTags = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'b',\n 'blockquote',\n 'br',\n 'button',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hr',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'mark',\n 'meter',\n 'nav',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'svg',\n 'use',\n 'polygon',\n 'circle',\n 'g',\n 'path',\n];\n\n// Override the default allowed HTML attributes for all tags\nconst defaultAllowedAttributes = {\n '*': [\n 'action',\n 'alt',\n 'aria-*',\n 'autocomplete',\n 'cite',\n 'class',\n 'cols',\n 'colspan',\n 'data-*',\n 'datetime',\n 'disabled',\n 'download',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'href',\n 'hreflang',\n 'id',\n 'lang',\n 'list',\n 'max',\n 'maxlength',\n 'minlength',\n 'media',\n 'method',\n 'min',\n 'multiple',\n 'name',\n 'novalidate',\n 'open',\n 'pattern',\n 'placeholder',\n 'readonly',\n 'rel',\n 'required',\n 'reversed',\n 'rows',\n 'rowspan',\n 'sandbox',\n 'scope',\n 'scoped',\n 'selected',\n 'size',\n 'sizes',\n 'span',\n 'spellcheck',\n 'src',\n 'srcset',\n 'start',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'target',\n 'title',\n 'type',\n 'value',\n 'width',\n 'wrap',\n 'fill',\n 'stroke',\n ' stroke-width',\n 'd',\n 'points',\n 'viewbox',\n 'x',\n 'y',\n 'cx',\n 'cy',\n 'r',\n 'xmlns',\n 'xmlns:xlink',\n 'xlink:href',\n 'version',\n 'preserveaspectratio',\n 'enable-background',\n ],\n};\n\nconst SanitizedContent = ({\n html = '<div/>',\n customClassName = null,\n allowedTags = defaultAllowedTags,\n allowedAttributes = defaultAllowedAttributes,\n}) => {\n const whiteList = allowedTags.reduce((map, tag) => {\n map[tag] = allowedAttributes['*'];\n return map;\n }, {});\n const sanitizedHTML = xss(html, { whiteList });\n return (\n <div\n {...(customClassName && { className: customClassName })}\n dangerouslySetInnerHTML={{ __html: sanitizedHTML }}\n />\n );\n};\n\nSanitizedContent.propTypes = {\n html: PropTypes.string,\n customClassName: PropTypes.string,\n allowedTags: PropTypes.array,\n allowedAttributes: PropTypes.array,\n};\n\nexport default SanitizedContent;\n","/**\n * cssfilter\n *\n * @author 老雷<leizongmin@gmail.com>\n */\n\nvar DEFAULT = require('./default');\nvar FilterCSS = require('./css');\n\n\n/**\n * XSS过滤\n *\n * @param {String} css 要过滤的CSS代码\n * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr\n * @return {String}\n */\nfunction filterCSS (html, options) {\n var xss = new FilterCSS(options);\n return xss.process(html);\n}\n\n\n// 输出\nexports = module.exports = filterCSS;\nexports.FilterCSS = FilterCSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\n\n// 在浏览器端使用\nif (typeof window !== 'undefined') {\n window.filterCSS = module.exports;\n}\n","module.exports = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, \"\");\n },\n spaceIndex: function (str) {\n var reg = /\\s|\\n|\\t/;\n var match = reg.exec(str);\n return match ? match.index : -1;\n },\n};\n","import React from 'react';\nimport axios from 'axios';\nimport { useState, useEffect } from 'react';\n\n// The content is populated with the following priority order:\n// 1. Use the content in localStorage if it's there\n// 2. If not, make a call to get it from a QPPFE endpoint.\n// Hydrate the localStorage item with the response if localStorage item doesn't match call content.\n// 3. If the call fails, use the default content\nconst useGetConfig = ({\n url = '',\n localStorageName = '',\n equalityCheckExclude = [],\n timeout = 30,\n defaultContent,\n}) => {\n const [result, setResult] = useState();\n\n if (!url || !localStorageName) {\n throw new Error('Arguments for url and localStorageName are required');\n }\n\n useEffect(() => {\n const storageContent = JSON.parse(localStorage.getItem(localStorageName));\n if (\n storageContent?.content &&\n new Date().valueOf() < storageContent.expiration\n ) {\n setResult(storageContent);\n } else {\n const origin = window.location.origin;\n axios\n .get(`${origin}${url}`)\n .then(({ data: { data = {} } }) => {\n const expiration = new Date().valueOf() + timeout * 60 * 1000;\n const storageItem = {\n expiration,\n };\n if (\n data?.content &&\n storageContent?.content &&\n Object.keys(data.content).every((key) => {\n if (equalityCheckExclude.includes(key)) {\n return true;\n }\n return data.content[key] === storageContent.content[key];\n })\n ) {\n storageItem.content = storageContent.content;\n } else {\n storageItem.content = data.content;\n }\n\n localStorage.setItem(localStorageName, JSON.stringify(storageItem));\n setResult(storageItem);\n })\n .catch((e) => {\n setResult({ content: defaultContent, expiration: 0 });\n });\n }\n }, []);\n\n return result;\n};\n\nexport const withGetConfig = (Component, options) => {\n function WrappedComponent(props) {\n const result = useGetConfig(options);\n return <Component result={result} {...props} />;\n }\n return WrappedComponent;\n};\n\nexport default useGetConfig;\n","import NavLinkContainer from './NavLinkContainer';\nimport NavLinkDrawer from './NavLinkDrawer';\nimport NavLinkInline from './NavLinkInline';\nimport NavLinkToggle from './NavLinkToggle';\nimport NavItemInline from './NavItemInline';\n\nexport {\n NavLinkContainer,\n NavLinkDrawer,\n NavLinkInline,\n NavLinkToggle,\n NavItemInline,\n};\n","import { useRef, useEffect, createElement } from 'react';\nimport { useIsomorphicLayoutEffect } from '@reach/utils/use-isomorphic-layout-effect';\nimport { useForceUpdate } from '@reach/utils/use-force-update';\nimport { createPortal } from 'react-dom';\nimport warning from 'tiny-warning';\n\n/**\n * Welcome to @reach/portal!\n *\n * Creates and appends a DOM node to the end of `document.body` and renders a\n * React tree into it. Useful for rendering a natural React element hierarchy\n * with a different DOM hierarchy to prevent parent styles from clipping or\n * hiding content (for popovers, dropdowns, and modals).\n *\n * @see Docs https://reach.tech/portal\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/portal\n * @see React https://reactjs.org/docs/portals.html\n */\n/**\n * Portal\n *\n * @see Docs https://reach.tech/portal#portal\n */\n\nvar Portal = function Portal(_ref) {\n var children = _ref.children,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? \"reach-portal\" : _ref$type,\n containerRef = _ref.containerRef;\n var mountNode = useRef(null);\n var portalNode = useRef(null);\n var forceUpdate = useForceUpdate();\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n if (containerRef != null) {\n process.env.NODE_ENV !== \"production\" ? warning(typeof containerRef === \"object\" && \"current\" in containerRef, \"@reach/portal: Invalid value passed to the `containerRef` of a \" + \"`Portal`. The portal will be appended to the document body, but if \" + \"you want to attach it to another DOM node you must pass a valid \" + \"React ref object to `containerRef`.\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(containerRef ? containerRef.current != null : true, \"@reach/portal: A ref was passed to the `containerRef` prop of a \" + \"`Portal`, but no DOM node was attached to it. Be sure to pass the \" + \"ref to a DOM component.\\n\\nIf you are forwarding the ref from \" + \"another component, be sure to use the React.forwardRef API. \" + \"See https://reactjs.org/docs/forwarding-refs.html.\") : void 0;\n }\n }, [containerRef]);\n }\n\n useIsomorphicLayoutEffect(function () {\n // This ref may be null when a hot-loader replaces components on the page\n if (!mountNode.current) return; // It's possible that the content of the portal has, itself, been portaled.\n // In that case, it's important to append to the correct document element.\n\n var ownerDocument = mountNode.current.ownerDocument;\n var body = (containerRef == null ? void 0 : containerRef.current) || ownerDocument.body;\n portalNode.current = ownerDocument == null ? void 0 : ownerDocument.createElement(type);\n body.appendChild(portalNode.current);\n forceUpdate();\n return function () {\n if (portalNode.current && body) {\n body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate, containerRef]);\n return portalNode.current ? /*#__PURE__*/createPortal(children, portalNode.current) : /*#__PURE__*/createElement(\"span\", {\n ref: mountNode\n });\n};\n/**\n * @see Docs https://reach.tech/portal#portal-props\n */\n\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = \"Portal\";\n} ////////////////////////////////////////////////////////////////////////////////\n\nexport default Portal;\nexport { Portal };\n","import { useState, useCallback } from 'react';\n\n/**\n * Forces a re-render, similar to `forceUpdate` in class components.\n */\n\nfunction useForceUpdate() {\n var _useState = useState(Object.create(null)),\n dispatch = _useState[1];\n\n return useCallback(function () {\n dispatch(Object.create(null));\n }, []);\n}\n\nexport { useForceUpdate };\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","module.exports = {\n \"version\": \"0.24.0\"\n};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\nimport InfotipIcon from './InfotipIcon';\n\nconst BUTTON_SIZE = '16px';\n\nconst buttonStyle = {\n background: 'transparent',\n border: 0,\n padding: 0,\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n WebkitTouchCallout: 'none',\n WebkitUserSelect: 'none',\n userSelect: 'none',\n};\n\n// Use basic touch handlers for mobile \"tap-to-open\" ui. Mobile touch\n// is currently not supported by @reach/tooltip; this may change in future.\n// Leverages @reach/tooltip \"focus\" behavior to open tooltip on tap,\n// and close tooltip on second tap or loss of focus.\n// TODO: We may want to improve this by tracking touch positions to ensure\n// that a 'touchend' event must be reasonably close to the tooltip target.\nconst touchHandlers = {\n onTouchStart: (e) => {\n e.stopPropagation();\n },\n onTouchEnd: (e) => {\n if (document.activeElement !== e.currentTarget) {\n e.preventDefault();\n e.currentTarget.focus();\n } else {\n e.preventDefault();\n e.currentTarget.blur();\n }\n },\n};\n\n/**\n * Tooltip with styled information icon\n */\nconst Infotip = ({ label, lightIcon, ...props }) => (\n <Tooltip label={label} {...props}>\n <button\n type=\"button\"\n aria-label=\"Information\"\n style={buttonStyle}\n {...touchHandlers}\n >\n <InfotipIcon\n lightIcon={lightIcon}\n width={BUTTON_SIZE}\n height={BUTTON_SIZE}\n aria-hidden\n style={{ float: 'left' }}\n />\n </button>\n </Tooltip>\n);\n\nInfotip.propTypes = {\n label: PropTypes.string.isRequired,\n ariaLabel: PropTypes.string,\n lightIcon: PropTypes.bool,\n DEBUG_STYLE: PropTypes.bool,\n};\n\nInfotip.defaultProps = {\n ariaLabel: undefined,\n lightIcon: false,\n DEBUG_STYLE: undefined,\n};\n\nexport default Infotip;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport cookie from 'cookie';\nimport retry from 'retry';\nimport jwtDecode from 'jwt-decode';\n\nimport Modal from './Modal';\nimport RefreshSession from '../session/refresh';\nimport LogoutSession from '../session/logout';\nimport fetchTtl from '../session/ttl';\n\nconst fetchTtlIntervalMs = 60000;\n\nexport default class SessionDialogUI extends Component {\n /**\n * Create a SessionDialogUI component.\n * @param {object} props - Configuration options. See SessionDialog for more\n */\n constructor(props) {\n super(props);\n\n this.handleOpenModal = this.handleOpenModal.bind(this);\n this.handleCloseModal = this.handleCloseModal.bind(this);\n this.refreshSession = this.refreshSession.bind(this);\n this.signOut = this.signOut.bind(this);\n this.startTimer = this.startTimer.bind(this);\n this.shouldShowDialog = this.shouldShowDialog.bind(this);\n this.shouldSignOut = this.shouldSignOut.bind(this);\n this.minutesUntil = this.minutesUntil.bind(this);\n this.checkExpiry = this.checkExpiry.bind(this);\n this.onInterval = this.onInterval.bind(this);\n\n if (props.showImmediate === true) {\n this.state = {\n showModal: true,\n showError: false,\n };\n } else {\n this.state = {\n showModal: false,\n showError: false,\n };\n\n this.startTimer();\n }\n }\n\n /**\n * Extracts the token exp value as a JavaScript date.\n * @param {Object} cookies - An object representation of the cookie store\n * @returns {(date|null)} The token expiration date, if found\n */\n getTokenExpiry(cookies) {\n let expiry = null;\n\n if (cookies.hasOwnProperty('qpp_auth_token') && cookies.qpp_auth_token) {\n // See https://tools.ietf.org/html/rfc7519\n // `exp` is a NumericDate representing \"seconds since the epoch\"\n // and it needs to be milliseconds to get a JavaScript date from it.\n const { exp } = jwtDecode(cookies.qpp_auth_token);\n expiry = new Date(exp * 1000);\n }\n\n return expiry;\n }\n\n checkExpiry(expiry) {\n if (expiry) {\n if (this.shouldShowDialog(expiry)) {\n this.handleOpenModal();\n } else if (this.shouldSignOut(expiry)) {\n this.signOut();\n clearInterval(this.warningInterval);\n }\n } else {\n clearInterval(this.warningInterval);\n }\n }\n\n onInterval() {\n const cookies = cookie.parse(document.cookie);\n\n if (cookies.hasOwnProperty('qpp_auth_token') && cookies.qpp_auth_token) {\n const operation = retry.operation({\n retries: 5,\n factor: 1,\n minTimeout: 1000,\n maxTimeout: 1000,\n });\n\n operation.attempt(() => {\n fetchTtl(cookies.qpp_auth_token)\n .then(this.checkExpiry)\n .catch((error) => {\n if (operation.retry(error)) {\n // try again before giving up\n return;\n }\n clearInterval(this.warningInterval);\n // sign an inactive user out\n this.forceTimeoutHandle = setTimeout(this.signOut, 120 * 1000);\n this.setState({\n showModal: false,\n showError: true,\n });\n });\n });\n }\n }\n\n /**\n * Checks whether the user is within a specified number of minutes before\n * their session token expires. If so, show a warning dialog. If the\n * expiration has been reached, sign the user out.\n */\n startTimer() {\n clearInterval(this.warningInterval);\n\n this.warningInterval = setInterval(this.onInterval, fetchTtlIntervalMs);\n }\n\n /**\n * Returns whether the current time is within the timeout range of expiry.\n * @param {date|number} expiry - Expiration date to check against\n * @returns {boolean}\n */\n shouldShowDialog(expiry) {\n if (typeof expiry === 'number') {\n const minutesLeft = expiry / 60;\n\n return !this.state.showModal && minutesLeft <= this.props.warningTimeout;\n } else {\n return (\n !this.state.showModal &&\n this.minutesUntil(expiry) <= this.props.warningTimeout\n );\n }\n }\n\n /**\n * Returns whether the current time has reached the expiration date.\n * @param {date|number} expiry - Expiration date to check against\n * @returns {boolean}\n */\n shouldSignOut(expiry) {\n if (typeof expiry === 'number') {\n return expiry <= 1;\n } else {\n return this.minutesUntil(expiry) <= 0;\n }\n }\n\n /**\n * Returns number of minutes until the expiration date.\n * @param {date} expiry - Expiration date to check against\n * @returns {number}\n */\n minutesUntil(expiry) {\n return (expiry - new Date().getTime()) / 60000;\n }\n\n /**\n * Sets the modal state to visible.\n */\n handleOpenModal() {\n this.setState({\n showModal: true,\n showError: false,\n });\n }\n\n /**\n * Sets the modal state to hidden.\n */\n handleCloseModal() {\n this.setState({\n showModal: false,\n showError: false,\n });\n }\n\n /**\n * Handles the user requesting their session be extended.\n */\n refreshSession() {\n RefreshSession({\n window,\n onSuccess: () => {\n this.startTimer();\n },\n });\n\n this.handleCloseModal();\n }\n\n /**\n * Handles the user requesting their session be ended.\n */\n signOut() {\n if (this.forceTimeoutHandle) {\n clearTimeout(this.forceTimeoutHandle);\n }\n LogoutSession(window);\n this.handleCloseModal();\n }\n\n render() {\n return (\n <React.Fragment>\n <Modal\n useDesignSystem\n title=\"You will be signed out within two minutes\"\n isOpen={this.state.showModal}\n primary={{\n title: 'Keep me signed in',\n onClick: this.refreshSession,\n }}\n secondary={{\n title: 'Sign me out now',\n onClick: this.signOut,\n }}\n onRequestClose={this.handleCloseModal}\n >\n <p>\n You have been inactive for thirty minutes. For your security, we\n will sign you out automatically.\n </p>\n </Modal>\n\n <Modal\n useDesignSystem\n title=\"Technical Difficulties\"\n isOpen={this.state.showError}\n primary={{\n title: 'Sign Out',\n onClick: this.signOut,\n }}\n onRequestClose={this.signOut}\n >\n <p>\n We’re experiencing technical difficulties. Please log in again to\n continue. For your security, we will sign you out automatically\n within two minutes.\n </p>\n </Modal>\n </React.Fragment>\n );\n }\n}\n\nSessionDialogUI.propTypes = {\n showImmediate: PropTypes.bool,\n warningTimeout: PropTypes.number,\n appElement: PropTypes.string,\n};\n\nSessionDialogUI.defaultProps = {\n showImmediate: false,\n warningTimeout: 2,\n appElement: undefined,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport LegacyModal from './LegacyModal';\nimport DsModal from './Modal';\n\nconst Modal = ({ useDesignSystem, ...rest }) => {\n if (useDesignSystem) {\n return <DsModal {...rest} />;\n }\n return <LegacyModal {...rest} />;\n};\n\nModal.propTypes = {\n useDesignSystem: PropTypes.bool,\n};\nModal.defaultProps = {\n useDesignSystem: false,\n};\nModal.displayName = 'Modal';\n\nexport default Modal;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","/**\n * default settings\n *\n * @author Zongmin Lei<leizongmin@gmail.com>\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar getDefaultCSSWhiteList = require(\"cssfilter\").getDefaultWhiteList;\nvar _ = require(\"./util\");\n\nfunction getDefaultWhiteList() {\n return {\n a: [\"target\", \"href\", \"title\"],\n abbr: [\"title\"],\n address: [],\n area: [\"shape\", \"coords\", \"href\", \"alt\"],\n article: [],\n aside: [],\n audio: [\n \"autoplay\",\n \"controls\",\n \"crossorigin\",\n \"loop\",\n \"muted\",\n \"preload\",\n \"src\",\n ],\n b: [],\n bdi: [\"dir\"],\n bdo: [\"dir\"],\n big: [],\n blockquote: [\"cite\"],\n br: [],\n caption: [],\n center: [],\n cite: [],\n code: [],\n col: [\"align\", \"valign\", \"span\", \"width\"],\n colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n dd: [],\n del: [\"datetime\"],\n details: [\"open\"],\n div: [],\n dl: [],\n dt: [],\n em: [],\n figcaption: [],\n figure: [],\n font: [\"color\", \"size\", \"face\"],\n footer: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n header: [],\n hr: [],\n i: [],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\"],\n ins: [\"datetime\"],\n li: [],\n mark: [],\n nav: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n section: [],\n small: [],\n span: [],\n sub: [],\n summary: [],\n sup: [],\n strong: [],\n strike: [],\n table: [\"width\", \"border\", \"align\", \"valign\"],\n tbody: [\"align\", \"valign\"],\n td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n tfoot: [\"align\", \"valign\"],\n th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n thead: [\"align\", \"valign\"],\n tr: [\"rowspan\", \"align\", \"valign\"],\n tt: [],\n u: [],\n ul: [],\n video: [\n \"autoplay\",\n \"controls\",\n \"crossorigin\",\n \"loop\",\n \"muted\",\n \"playsinline\",\n \"poster\",\n \"preload\",\n \"src\",\n \"height\",\n \"width\",\n ],\n };\n}\n\nvar defaultCSSFilter = new FilterCSS();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n return html.replace(REGEXP_LT, \"<\").replace(REGEXP_GT, \">\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n // unescape attribute value firstly\n value = friendlyAttrValue(value);\n\n if (name === \"href\" || name === \"src\") {\n // filter `href` and `src` attribute\n // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n value = _.trim(value);\n if (value === \"#\") return \"#\";\n if (\n !(\n value.substr(0, 7) === \"http://\" ||\n value.substr(0, 8) === \"https://\" ||\n value.substr(0, 7) === \"mailto:\" ||\n value.substr(0, 4) === \"tel:\" ||\n value.substr(0, 11) === \"data:image/\" ||\n value.substr(0, 6) === \"ftp://\" ||\n value.substr(0, 2) === \"./\" ||\n value.substr(0, 3) === \"../\" ||\n value[0] === \"#\" ||\n value[0] === \"/\"\n )\n ) {\n return \"\";\n }\n } else if (name === \"background\") {\n // filter `background` attribute (maybe no use)\n // `javascript:`\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n } else if (name === \"style\") {\n // `expression()`\n REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n return \"\";\n }\n // `url()`\n REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n }\n if (cssFilter !== false) {\n cssFilter = cssFilter || defaultCSSFilter;\n value = cssFilter.process(value);\n }\n }\n\n // escape `<>\"` before returns\n value = escapeAttrValue(value);\n return value;\n}\n\n// RegExp list\nvar REGEXP_LT = /</g;\nvar REGEXP_GT = />/g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /"/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /:?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 =\n /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 =\n /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n return str.replace(REGEXP_QUOTE, \""\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n return code[0] === \"x\" || code[0] === \"X\"\n ? String.fromCharCode(parseInt(code.substr(1), 16))\n : String.fromCharCode(parseInt(code, 10));\n });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n return str\n .replace(REGEXP_ATTR_VALUE_COLON, \":\")\n .replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n var str2 = \"\";\n for (var i = 0, len = str.length; i < len; i++) {\n str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n }\n return _.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n str = unescapeQuote(str);\n str = escapeHtmlEntities(str);\n str = escapeDangerHtml5Entities(str);\n str = clearNonPrintableCharacter(str);\n return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n str = escapeQuote(str);\n str = escapeHtml(str);\n return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n if (typeof next !== \"function\") {\n next = function () {};\n }\n\n var isRemoveAllTag = !Array.isArray(tags);\n function isRemoveTag(tag) {\n if (isRemoveAllTag) return true;\n return _.indexOf(tags, tag) !== -1;\n }\n\n var removeList = [];\n var posStart = false;\n\n return {\n onIgnoreTag: function (tag, html, options) {\n if (isRemoveTag(tag)) {\n if (options.isClosing) {\n var ret = \"[/removed]\";\n var end = options.position + ret.length;\n removeList.push([\n posStart !== false ? posStart : options.position,\n end,\n ]);\n posStart = false;\n return ret;\n } else {\n if (!posStart) {\n posStart = options.position;\n }\n return \"[removed]\";\n }\n } else {\n return next(tag, html, options);\n }\n },\n remove: function (html) {\n var rethtml = \"\";\n var lastPos = 0;\n _.forEach(removeList, function (pos) {\n rethtml += html.slice(lastPos, pos[0]);\n lastPos = pos[1];\n });\n rethtml += html.slice(lastPos);\n return rethtml;\n },\n };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n var retHtml = \"\";\n var lastPos = 0;\n while (lastPos < html.length) {\n var i = html.indexOf(\"<!--\", lastPos);\n if (i === -1) {\n retHtml += html.slice(lastPos);\n break;\n }\n retHtml += html.slice(lastPos, i);\n var j = html.indexOf(\"-->\", i);\n if (j === -1) {\n break;\n }\n lastPos = j + 3;\n }\n return retHtml;\n}\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n var chars = html.split(\"\");\n chars = chars.filter(function (char) {\n var c = char.charCodeAt(0);\n if (c === 127) return false;\n if (c <= 31) {\n if (c === 10 || c === 13) return true;\n return false;\n }\n return true;\n });\n return chars.join(\"\");\n}\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onTag = onTag;\nexports.onIgnoreTag = onIgnoreTag;\nexports.onTagAttr = onTagAttr;\nexports.onIgnoreTagAttr = onIgnoreTagAttr;\nexports.safeAttrValue = safeAttrValue;\nexports.escapeHtml = escapeHtml;\nexports.escapeQuote = escapeQuote;\nexports.unescapeQuote = unescapeQuote;\nexports.escapeHtmlEntities = escapeHtmlEntities;\nexports.escapeDangerHtml5Entities = escapeDangerHtml5Entities;\nexports.clearNonPrintableCharacter = clearNonPrintableCharacter;\nexports.friendlyAttrValue = friendlyAttrValue;\nexports.escapeAttrValue = escapeAttrValue;\nexports.onIgnoreTagStripAll = onIgnoreTagStripAll;\nexports.StripTagBody = StripTagBody;\nexports.stripCommentTag = stripCommentTag;\nexports.stripBlankChar = stripBlankChar;\nexports.cssFilter = defaultCSSFilter;\nexports.getDefaultCSSWhiteList = getDefaultCSSWhiteList;\n","/**\n * cssfilter\n *\n * @author 老雷<leizongmin@gmail.com>\n */\n\nfunction getDefaultWhiteList () {\n // 白名单值说明:\n // true: 允许该属性\n // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许\n // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许\n // 除上面列出的值外均表示不允许\n var whiteList = {};\n\n whiteList['align-content'] = false; // default: auto\n whiteList['align-items'] = false; // default: auto\n whiteList['align-self'] = false; // default: auto\n whiteList['alignment-adjust'] = false; // default: auto\n whiteList['alignment-baseline'] = false; // default: baseline\n whiteList['all'] = false; // default: depending on individual properties\n whiteList['anchor-point'] = false; // default: none\n whiteList['animation'] = false; // default: depending on individual properties\n whiteList['animation-delay'] = false; // default: 0\n whiteList['animation-direction'] = false; // default: normal\n whiteList['animation-duration'] = false; // default: 0\n whiteList['animation-fill-mode'] = false; // default: none\n whiteList['animation-iteration-count'] = false; // default: 1\n whiteList['animation-name'] = false; // default: none\n whiteList['animation-play-state'] = false; // default: running\n whiteList['animation-timing-function'] = false; // default: ease\n whiteList['azimuth'] = false; // default: center\n whiteList['backface-visibility'] = false; // default: visible\n whiteList['background'] = true; // default: depending on individual properties\n whiteList['background-attachment'] = true; // default: scroll\n whiteList['background-clip'] = true; // default: border-box\n whiteList['background-color'] = true; // default: transparent\n whiteList['background-image'] = true; // default: none\n whiteList['background-origin'] = true; // default: padding-box\n whiteList['background-position'] = true; // default: 0% 0%\n whiteList['background-repeat'] = true; // default: repeat\n whiteList['background-size'] = true; // default: auto\n whiteList['baseline-shift'] = false; // default: baseline\n whiteList['binding'] = false; // default: none\n whiteList['bleed'] = false; // default: 6pt\n whiteList['bookmark-label'] = false; // default: content()\n whiteList['bookmark-level'] = false; // default: none\n whiteList['bookmark-state'] = false; // default: open\n whiteList['border'] = true; // default: depending on individual properties\n whiteList['border-bottom'] = true; // default: depending on individual properties\n whiteList['border-bottom-color'] = true; // default: current color\n whiteList['border-bottom-left-radius'] = true; // default: 0\n whiteList['border-bottom-right-radius'] = true; // default: 0\n whiteList['border-bottom-style'] = true; // default: none\n whiteList['border-bottom-width'] = true; // default: medium\n whiteList['border-collapse'] = true; // default: separate\n whiteList['border-color'] = true; // default: depending on individual properties\n whiteList['border-image'] = true; // default: none\n whiteList['border-image-outset'] = true; // default: 0\n whiteList['border-image-repeat'] = true; // default: stretch\n whiteList['border-image-slice'] = true; // default: 100%\n whiteList['border-image-source'] = true; // default: none\n whiteList['border-image-width'] = true; // default: 1\n whiteList['border-left'] = true; // default: depending on individual properties\n whiteList['border-left-color'] = true; // default: current color\n whiteList['border-left-style'] = true; // default: none\n whiteList['border-left-width'] = true; // default: medium\n whiteList['border-radius'] = true; // default: 0\n whiteList['border-right'] = true; // default: depending on individual properties\n whiteList['border-right-color'] = true; // default: current color\n whiteList['border-right-style'] = true; // default: none\n whiteList['border-right-width'] = true; // default: medium\n whiteList['border-spacing'] = true; // default: 0\n whiteList['border-style'] = true; // default: depending on individual properties\n whiteList['border-top'] = true; // default: depending on individual properties\n whiteList['border-top-color'] = true; // default: current color\n whiteList['border-top-left-radius'] = true; // default: 0\n whiteList['border-top-right-radius'] = true; // default: 0\n whiteList['border-top-style'] = true; // default: none\n whiteList['border-top-width'] = true; // default: medium\n whiteList['border-width'] = true; // default: depending on individual properties\n whiteList['bottom'] = false; // default: auto\n whiteList['box-decoration-break'] = true; // default: slice\n whiteList['box-shadow'] = true; // default: none\n whiteList['box-sizing'] = true; // default: content-box\n whiteList['box-snap'] = true; // default: none\n whiteList['box-suppress'] = true; // default: show\n whiteList['break-after'] = true; // default: auto\n whiteList['break-before'] = true; // default: auto\n whiteList['break-inside'] = true; // default: auto\n whiteList['caption-side'] = false; // default: top\n whiteList['chains'] = false; // default: none\n whiteList['clear'] = true; // default: none\n whiteList['clip'] = false; // default: auto\n whiteList['clip-path'] = false; // default: none\n whiteList['clip-rule'] = false; // default: nonzero\n whiteList['color'] = true; // default: implementation dependent\n whiteList['color-interpolation-filters'] = true; // default: auto\n whiteList['column-count'] = false; // default: auto\n whiteList['column-fill'] = false; // default: balance\n whiteList['column-gap'] = false; // default: normal\n whiteList['column-rule'] = false; // default: depending on individual properties\n whiteList['column-rule-color'] = false; // default: current color\n whiteList['column-rule-style'] = false; // default: medium\n whiteList['column-rule-width'] = false; // default: medium\n whiteList['column-span'] = false; // default: none\n whiteList['column-width'] = false; // default: auto\n whiteList['columns'] = false; // default: depending on individual properties\n whiteList['contain'] = false; // default: none\n whiteList['content'] = false; // default: normal\n whiteList['counter-increment'] = false; // default: none\n whiteList['counter-reset'] = false; // default: none\n whiteList['counter-set'] = false; // default: none\n whiteList['crop'] = false; // default: auto\n whiteList['cue'] = false; // default: depending on individual properties\n whiteList['cue-after'] = false; // default: none\n whiteList['cue-before'] = false; // default: none\n whiteList['cursor'] = false; // default: auto\n whiteList['direction'] = false; // default: ltr\n whiteList['display'] = true; // default: depending on individual properties\n whiteList['display-inside'] = true; // default: auto\n whiteList['display-list'] = true; // default: none\n whiteList['display-outside'] = true; // default: inline-level\n whiteList['dominant-baseline'] = false; // default: auto\n whiteList['elevation'] = false; // default: level\n whiteList['empty-cells'] = false; // default: show\n whiteList['filter'] = false; // default: none\n whiteList['flex'] = false; // default: depending on individual properties\n whiteList['flex-basis'] = false; // default: auto\n whiteList['flex-direction'] = false; // default: row\n whiteList['flex-flow'] = false; // default: depending on individual properties\n whiteList['flex-grow'] = false; // default: 0\n whiteList['flex-shrink'] = false; // default: 1\n whiteList['flex-wrap'] = false; // default: nowrap\n whiteList['float'] = false; // default: none\n whiteList['float-offset'] = false; // default: 0 0\n whiteList['flood-color'] = false; // default: black\n whiteList['flood-opacity'] = false; // default: 1\n whiteList['flow-from'] = false; // default: none\n whiteList['flow-into'] = false; // default: none\n whiteList['font'] = true; // default: depending on individual properties\n whiteList['font-family'] = true; // default: implementation dependent\n whiteList['font-feature-settings'] = true; // default: normal\n whiteList['font-kerning'] = true; // default: auto\n whiteList['font-language-override'] = true; // default: normal\n whiteList['font-size'] = true; // default: medium\n whiteList['font-size-adjust'] = true; // default: none\n whiteList['font-stretch'] = true; // default: normal\n whiteList['font-style'] = true; // default: normal\n whiteList['font-synthesis'] = true; // default: weight style\n whiteList['font-variant'] = true; // default: normal\n whiteList['font-variant-alternates'] = true; // default: normal\n whiteList['font-variant-caps'] = true; // default: normal\n whiteList['font-variant-east-asian'] = true; // default: normal\n whiteList['font-variant-ligatures'] = true; // default: normal\n whiteList['font-variant-numeric'] = true; // default: normal\n whiteList['font-variant-position'] = true; // default: normal\n whiteList['font-weight'] = true; // default: normal\n whiteList['grid'] = false; // default: depending on individual properties\n whiteList['grid-area'] = false; // default: depending on individual properties\n whiteList['grid-auto-columns'] = false; // default: auto\n whiteList['grid-auto-flow'] = false; // default: none\n whiteList['grid-auto-rows'] = false; // default: auto\n whiteList['grid-column'] = false; // default: depending on individual properties\n whiteList['grid-column-end'] = false; // default: auto\n whiteList['grid-column-start'] = false; // default: auto\n whiteList['grid-row'] = false; // default: depending on individual properties\n whiteList['grid-row-end'] = false; // default: auto\n whiteList['grid-row-start'] = false; // default: auto\n whiteList['grid-template'] = false; // default: depending on individual properties\n whiteList['grid-template-areas'] = false; // default: none\n whiteList['grid-template-columns'] = false; // default: none\n whiteList['grid-template-rows'] = false; // default: none\n whiteList['hanging-punctuation'] = false; // default: none\n whiteList['height'] = true; // default: auto\n whiteList['hyphens'] = false; // default: manual\n whiteList['icon'] = false; // default: auto\n whiteList['image-orientation'] = false; // default: auto\n whiteList['image-resolution'] = false; // default: normal\n whiteList['ime-mode'] = false; // default: auto\n whiteList['initial-letters'] = false; // default: normal\n whiteList['inline-box-align'] = false; // default: last\n whiteList['justify-content'] = false; // default: auto\n whiteList['justify-items'] = false; // default: auto\n whiteList['justify-self'] = false; // default: auto\n whiteList['left'] = false; // default: auto\n whiteList['letter-spacing'] = true; // default: normal\n whiteList['lighting-color'] = true; // default: white\n whiteList['line-box-contain'] = false; // default: block inline replaced\n whiteList['line-break'] = false; // default: auto\n whiteList['line-grid'] = false; // default: match-parent\n whiteList['line-height'] = false; // default: normal\n whiteList['line-snap'] = false; // default: none\n whiteList['line-stacking'] = false; // default: depending on individual properties\n whiteList['line-stacking-ruby'] = false; // default: exclude-ruby\n whiteList['line-stacking-shift'] = false; // default: consider-shifts\n whiteList['line-stacking-strategy'] = false; // default: inline-line-height\n whiteList['list-style'] = true; // default: depending on individual properties\n whiteList['list-style-image'] = true; // default: none\n whiteList['list-style-position'] = true; // default: outside\n whiteList['list-style-type'] = true; // default: disc\n whiteList['margin'] = true; // default: depending on individual properties\n whiteList['margin-bottom'] = true; // default: 0\n whiteList['margin-left'] = true; // default: 0\n whiteList['margin-right'] = true; // default: 0\n whiteList['margin-top'] = true; // default: 0\n whiteList['marker-offset'] = false; // default: auto\n whiteList['marker-side'] = false; // default: list-item\n whiteList['marks'] = false; // default: none\n whiteList['mask'] = false; // default: border-box\n whiteList['mask-box'] = false; // default: see individual properties\n whiteList['mask-box-outset'] = false; // default: 0\n whiteList['mask-box-repeat'] = false; // default: stretch\n whiteList['mask-box-slice'] = false; // default: 0 fill\n whiteList['mask-box-source'] = false; // default: none\n whiteList['mask-box-width'] = false; // default: auto\n whiteList['mask-clip'] = false; // default: border-box\n whiteList['mask-image'] = false; // default: none\n whiteList['mask-origin'] = false; // default: border-box\n whiteList['mask-position'] = false; // default: center\n whiteList['mask-repeat'] = false; // default: no-repeat\n whiteList['mask-size'] = false; // default: border-box\n whiteList['mask-source-type'] = false; // default: auto\n whiteList['mask-type'] = false; // default: luminance\n whiteList['max-height'] = true; // default: none\n whiteList['max-lines'] = false; // default: none\n whiteList['max-width'] = true; // default: none\n whiteList['min-height'] = true; // default: 0\n whiteList['min-width'] = true; // default: 0\n whiteList['move-to'] = false; // default: normal\n whiteList['nav-down'] = false; // default: auto\n whiteList['nav-index'] = false; // default: auto\n whiteList['nav-left'] = false; // default: auto\n whiteList['nav-right'] = false; // default: auto\n whiteList['nav-up'] = false; // default: auto\n whiteList['object-fit'] = false; // default: fill\n whiteList['object-position'] = false; // default: 50% 50%\n whiteList['opacity'] = false; // default: 1\n whiteList['order'] = false; // default: 0\n whiteList['orphans'] = false; // default: 2\n whiteList['outline'] = false; // default: depending on individual properties\n whiteList['outline-color'] = false; // default: invert\n whiteList['outline-offset'] = false; // default: 0\n whiteList['outline-style'] = false; // default: none\n whiteList['outline-width'] = false; // default: medium\n whiteList['overflow'] = false; // default: depending on individual properties\n whiteList['overflow-wrap'] = false; // default: normal\n whiteList['overflow-x'] = false; // default: visible\n whiteList['overflow-y'] = false; // default: visible\n whiteList['padding'] = true; // default: depending on individual properties\n whiteList['padding-bottom'] = true; // default: 0\n whiteList['padding-left'] = true; // default: 0\n whiteList['padding-right'] = true; // default: 0\n whiteList['padding-top'] = true; // default: 0\n whiteList['page'] = false; // default: auto\n whiteList['page-break-after'] = false; // default: auto\n whiteList['page-break-before'] = false; // default: auto\n whiteList['page-break-inside'] = false; // default: auto\n whiteList['page-policy'] = false; // default: start\n whiteList['pause'] = false; // default: implementation dependent\n whiteList['pause-after'] = false; // default: implementation dependent\n whiteList['pause-before'] = false; // default: implementation dependent\n whiteList['perspective'] = false; // default: none\n whiteList['perspective-origin'] = false; // default: 50% 50%\n whiteList['pitch'] = false; // default: medium\n whiteList['pitch-range'] = false; // default: 50\n whiteList['play-during'] = false; // default: auto\n whiteList['position'] = false; // default: static\n whiteList['presentation-level'] = false; // default: 0\n whiteList['quotes'] = false; // default: text\n whiteList['region-fragment'] = false; // default: auto\n whiteList['resize'] = false; // default: none\n whiteList['rest'] = false; // default: depending on individual properties\n whiteList['rest-after'] = false; // default: none\n whiteList['rest-before'] = false; // default: none\n whiteList['richness'] = false; // default: 50\n whiteList['right'] = false; // default: auto\n whiteList['rotation'] = false; // default: 0\n whiteList['rotation-point'] = false; // default: 50% 50%\n whiteList['ruby-align'] = false; // default: auto\n whiteList['ruby-merge'] = false; // default: separate\n whiteList['ruby-position'] = false; // default: before\n whiteList['shape-image-threshold'] = false; // default: 0.0\n whiteList['shape-outside'] = false; // default: none\n whiteList['shape-margin'] = false; // default: 0\n whiteList['size'] = false; // default: auto\n whiteList['speak'] = false; // default: auto\n whiteList['speak-as'] = false; // default: normal\n whiteList['speak-header'] = false; // default: once\n whiteList['speak-numeral'] = false; // default: continuous\n whiteList['speak-punctuation'] = false; // default: none\n whiteList['speech-rate'] = false; // default: medium\n whiteList['stress'] = false; // default: 50\n whiteList['string-set'] = false; // default: none\n whiteList['tab-size'] = false; // default: 8\n whiteList['table-layout'] = false; // default: auto\n whiteList['text-align'] = true; // default: start\n whiteList['text-align-last'] = true; // default: auto\n whiteList['text-combine-upright'] = true; // default: none\n whiteList['text-decoration'] = true; // default: none\n whiteList['text-decoration-color'] = true; // default: currentColor\n whiteList['text-decoration-line'] = true; // default: none\n whiteList['text-decoration-skip'] = true; // default: objects\n whiteList['text-decoration-style'] = true; // default: solid\n whiteList['text-emphasis'] = true; // default: depending on individual properties\n whiteList['text-emphasis-color'] = true; // default: currentColor\n whiteList['text-emphasis-position'] = true; // default: over right\n whiteList['text-emphasis-style'] = true; // default: none\n whiteList['text-height'] = true; // default: auto\n whiteList['text-indent'] = true; // default: 0\n whiteList['text-justify'] = true; // default: auto\n whiteList['text-orientation'] = true; // default: mixed\n whiteList['text-overflow'] = true; // default: clip\n whiteList['text-shadow'] = true; // default: none\n whiteList['text-space-collapse'] = true; // default: collapse\n whiteList['text-transform'] = true; // default: none\n whiteList['text-underline-position'] = true; // default: auto\n whiteList['text-wrap'] = true; // default: normal\n whiteList['top'] = false; // default: auto\n whiteList['transform'] = false; // default: none\n whiteList['transform-origin'] = false; // default: 50% 50% 0\n whiteList['transform-style'] = false; // default: flat\n whiteList['transition'] = false; // default: depending on individual properties\n whiteList['transition-delay'] = false; // default: 0s\n whiteList['transition-duration'] = false; // default: 0s\n whiteList['transition-property'] = false; // default: all\n whiteList['transition-timing-function'] = false; // default: ease\n whiteList['unicode-bidi'] = false; // default: normal\n whiteList['vertical-align'] = false; // default: baseline\n whiteList['visibility'] = false; // default: visible\n whiteList['voice-balance'] = false; // default: center\n whiteList['voice-duration'] = false; // default: auto\n whiteList['voice-family'] = false; // default: implementation dependent\n whiteList['voice-pitch'] = false; // default: medium\n whiteList['voice-range'] = false; // default: medium\n whiteList['voice-rate'] = false; // default: normal\n whiteList['voice-stress'] = false; // default: normal\n whiteList['voice-volume'] = false; // default: medium\n whiteList['volume'] = false; // default: medium\n whiteList['white-space'] = false; // default: normal\n whiteList['widows'] = false; // default: 2\n whiteList['width'] = true; // default: auto\n whiteList['will-change'] = false; // default: auto\n whiteList['word-break'] = true; // default: normal\n whiteList['word-spacing'] = true; // default: normal\n whiteList['word-wrap'] = true; // default: normal\n whiteList['wrap-flow'] = false; // default: auto\n whiteList['wrap-through'] = false; // default: wrap\n whiteList['writing-mode'] = false; // default: horizontal-tb\n whiteList['z-index'] = false; // default: auto\n\n return whiteList;\n}\n\n\n/**\n * 匹配到白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onAttr (name, value, options) {\n // do nothing\n}\n\n/**\n * 匹配到不在白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreAttr (name, value, options) {\n // do nothing\n}\n\nvar REGEXP_URL_JAVASCRIPT = /javascript\\s*\\:/img;\n\n/**\n * 过滤属性值\n *\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction safeAttrValue(name, value) {\n if (REGEXP_URL_JAVASCRIPT.test(value)) return '';\n return value;\n}\n\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onAttr = onAttr;\nexports.onIgnoreAttr = onIgnoreAttr;\nexports.safeAttrValue = safeAttrValue;\n","module.exports = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n trimRight: function (str) {\n if (String.prototype.trimRight) {\n return str.trimRight();\n }\n return str.replace(/(\\s*$)/g, '');\n }\n};\n","/**\n * Simple HTML Parser\n *\n * @author Zongmin Lei<leizongmin@gmail.com>\n */\n\nvar _ = require(\"./util\");\n\n/**\n * get tag name\n *\n * @param {String} html e.g. '<a hef=\"#\">'\n * @return {String}\n */\nfunction getTagName(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n var tagName = html.slice(1, -1);\n } else {\n var tagName = html.slice(1, i + 1);\n }\n tagName = _.trim(tagName).toLowerCase();\n if (tagName.slice(0, 1) === \"/\") tagName = tagName.slice(1);\n if (tagName.slice(-1) === \"/\") tagName = tagName.slice(0, -1);\n return tagName;\n}\n\n/**\n * is close tag?\n *\n * @param {String} html 如:'<a hef=\"#\">'\n * @return {Boolean}\n */\nfunction isClosing(html) {\n return html.slice(0, 2) === \"</\";\n}\n\n/**\n * parse input html and returns processed html\n *\n * @param {String} html\n * @param {Function} onTag e.g. function (sourcePosition, position, tag, html, isClosing)\n * @param {Function} escapeHtml\n * @return {String}\n */\nfunction parseTag(html, onTag, escapeHtml) {\n \"use strict\";\n\n var rethtml = \"\";\n var lastPos = 0;\n var tagStart = false;\n var quoteStart = false;\n var currentPos = 0;\n var len = html.length;\n var currentTagName = \"\";\n var currentHtml = \"\";\n\n chariterator: for (currentPos = 0; currentPos < len; currentPos++) {\n var c = html.charAt(currentPos);\n if (tagStart === false) {\n if (c === \"<\") {\n tagStart = currentPos;\n continue;\n }\n } else {\n if (quoteStart === false) {\n if (c === \"<\") {\n rethtml += escapeHtml(html.slice(lastPos, currentPos));\n tagStart = currentPos;\n lastPos = currentPos;\n continue;\n }\n if (c === \">\") {\n rethtml += escapeHtml(html.slice(lastPos, tagStart));\n currentHtml = html.slice(tagStart, currentPos + 1);\n currentTagName = getTagName(currentHtml);\n rethtml += onTag(\n tagStart,\n rethtml.length,\n currentTagName,\n currentHtml,\n isClosing(currentHtml)\n );\n lastPos = currentPos + 1;\n tagStart = false;\n continue;\n }\n if (c === '\"' || c === \"'\") {\n var i = 1;\n var ic = html.charAt(currentPos - i);\n\n while (ic.trim() === \"\" || ic === \"=\") {\n if (ic === \"=\") {\n quoteStart = c;\n continue chariterator;\n }\n ic = html.charAt(currentPos - ++i);\n }\n }\n } else {\n if (c === quoteStart) {\n quoteStart = false;\n continue;\n }\n }\n }\n }\n if (lastPos < html.length) {\n rethtml += escapeHtml(html.substr(lastPos));\n }\n\n return rethtml;\n}\n\nvar REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9_:\\.\\-]/gim;\n\n/**\n * parse input attributes and returns processed attributes\n *\n * @param {String} html e.g. `href=\"#\" target=\"_blank\"`\n * @param {Function} onAttr e.g. `function (name, value)`\n * @return {String}\n */\nfunction parseAttr(html, onAttr) {\n \"use strict\";\n\n var lastPos = 0;\n var retAttrs = [];\n var tmpName = false;\n var len = html.length;\n\n function addAttr(name, value) {\n name = _.trim(name);\n name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, \"\").toLowerCase();\n if (name.length < 1) return;\n var ret = onAttr(name, value || \"\");\n if (ret) retAttrs.push(ret);\n }\n\n // 逐个分析字符\n for (var i = 0; i < len; i++) {\n var c = html.charAt(i);\n var v, j;\n if (tmpName === false && c === \"=\") {\n tmpName = html.slice(lastPos, i);\n lastPos = i + 1;\n continue;\n }\n if (tmpName !== false) {\n if (\n i === lastPos &&\n (c === '\"' || c === \"'\") &&\n html.charAt(i - 1) === \"=\"\n ) {\n j = html.indexOf(c, i + 1);\n if (j === -1) {\n break;\n } else {\n v = _.trim(html.slice(lastPos + 1, j));\n addAttr(tmpName, v);\n tmpName = false;\n i = j;\n lastPos = i + 1;\n continue;\n }\n }\n }\n if (/\\s|\\n|\\t/.test(c)) {\n html = html.replace(/\\s|\\n|\\t/g, \" \");\n if (tmpName === false) {\n j = findNextEqual(html, i);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n addAttr(v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n i = j - 1;\n continue;\n }\n } else {\n j = findBeforeEqual(html, i - 1);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n v = stripQuoteWrap(v);\n addAttr(tmpName, v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n continue;\n }\n }\n }\n }\n\n if (lastPos < html.length) {\n if (tmpName === false) {\n addAttr(html.slice(lastPos));\n } else {\n addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos))));\n }\n }\n\n return _.trim(retAttrs.join(\" \"));\n}\n\nfunction findNextEqual(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction findBeforeEqual(str, i) {\n for (; i > 0; i--) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction isQuoteWrapString(text) {\n if (\n (text[0] === '\"' && text[text.length - 1] === '\"') ||\n (text[0] === \"'\" && text[text.length - 1] === \"'\")\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction stripQuoteWrap(text) {\n if (isQuoteWrapString(text)) {\n return text.substr(1, text.length - 2);\n } else {\n return text;\n }\n}\n\nexports.parseTag = parseTag;\nexports.parseAttr = parseAttr;\n","import cookie from 'cookie';\nimport axios from 'axios';\nimport LogoutSession from './logout.js';\n\n/**\n * Makes an API request to refresh the session token cookie, if it exists.\n * @param {Object} [options] - Optional configuration parameters.\n * @param {function} [options.onSuccess] - An optional success callback.\n * @param {function} [options.onError] - An optional error callback.\n * @param {Object} [options.window] - The DOM window.\n * @return {Function} Returns a promise\n */\nconst RefreshSession = (options = {}) => {\n let cookies = cookie.parse(options.window.document.cookie);\n\n if (cookies.hasOwnProperty('qpp_auth_token')) {\n const requestOptions = {\n method: 'POST',\n url: '/api/auth/sessions/refresh',\n headers: {\n Accept: 'application/vnd.qpp.cms.gov.v1+json',\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${cookies.qpp_auth_token}`\n }\n };\n\n let onSuccess = (/*response*/) => {\n if (typeof options.onSuccess === 'function') {\n options.onSuccess();\n }\n };\n\n let onError = (/*response*/) => {\n if (typeof options.onError === 'function') {\n options.onError();\n }\n\n return LogoutSession(options.window); // eslint-disable-line new-cap\n };\n\n return axios(requestOptions)\n .then(onSuccess, onError)\n .catch(function(err) {\n console.log(err);\n });\n }\n};\n\nexport default RefreshSession;\n","import axios from 'axios';\n\nconst fetchTtl = token => {\n const requestOptions = {\n method: 'GET',\n url: '/api/auth/sessions/ttl',\n headers: {\n Accept: 'application/vnd.qpp.cms.gov.v1+json',\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n },\n transformResponse: [\n function(response) {\n return JSON.parse(response).data;\n }\n ]\n };\n\n return axios(requestOptions).then(response => {\n let expiry;\n\n if (response && response.data) {\n if (response.data.hasOwnProperty('time_remaining')) {\n expiry = response.data.time_remaining;\n } else {\n // See https://tools.ietf.org/html/rfc7519\n // `expiry` is a NumericDate representing \"seconds since the epoch\"\n // and it needs to be milliseconds to get a JavaScript date from it.\n expiry = new Date(response.data.ttl * 1000);\n }\n }\n\n return expiry;\n });\n};\n\nexport default fetchTtl;\n","import React, { Fragment, useRef, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useWindowWidth, useHeaderState } from './hooks';\nimport HeaderMenuLink from './HeaderMenuLink';\nimport HeaderMenuButton from './HeaderMenuButton';\nimport HeaderMenuSignOutButton from './HeaderMenuSignOutButton';\nimport Accordion from '../Accordion';\nimport { Chevron } from '../../lib/Chevron.jsx';\n\nconst menuSizes = {\n 1: 315,\n 2: 650,\n 3: 890,\n 4: 1200,\n};\n\nconst excludedClickOutClasses = [\n 'menu-dropdown-toggle',\n 'nav-link',\n 'nav-link-li',\n 'dropdown-description',\n 'dropdown-title',\n 'dropdown-title-chevron-container',\n 'signout-button',\n 'submenu-section',\n 'accordion',\n 'accordion-title',\n 'accordion-left-title',\n 'header-menu-btn',\n 'btn-navigation-icon',\n];\n\nconst HeaderMenuItem = ({\n handleClick,\n isMobileMenuExpanded,\n columns,\n menuName,\n rows,\n name,\n subtitle,\n className,\n}) => {\n const [isSubMenuFullWidth, setSubMenuFullWidth] = useState(false);\n const [openMobileSubMenu, setOpenMobileSubMenu] = useState('');\n\n const windowWidth = useWindowWidth();\n const menuButtonRef = useRef(null);\n const menuRef = useRef(null);\n const { RouterLink, handleToggleMenu, currentOpenMenu, closeMenus } =\n useHeaderState();\n const numColumns = (columns || []).length;\n\n const menuIdentifier = menuName || name;\n const isOpen = menuIdentifier === currentOpenMenu;\n\n useEffect(() => {\n const isMobile = windowWidth < 768;\n if (isOpen) {\n const shouldSetFullWidth =\n isMobile ||\n menuSizes[numColumns] >\n menuButtonRef.current.getBoundingClientRect().right;\n setSubMenuFullWidth(shouldSetFullWidth);\n }\n }, [windowWidth, isOpen]);\n\n useEffect(() => {\n const listener = (event) => {\n if (\n !menuRef ||\n !menuRef.current ||\n menuRef.current.contains(event.target) ||\n excludedClickOutClasses.some((className) =>\n event?.target?.classList.contains(className)\n )\n ) {\n return;\n }\n setOpenMobileSubMenu('')\n closeMenus();\n };\n document.addEventListener('mousedown', listener);\n return () => document.removeEventListener('mousedown', listener);\n }, [menuRef]);\n\n useEffect(() => {\n if (!isMobileMenuExpanded || !isOpen){\n setOpenMobileSubMenu('')\n }\n }, [isMobileMenuExpanded, isOpen])\n\n return (\n <li\n key={`header-item-${menuIdentifier}`}\n className={`header-item-${menuIdentifier}${\n isSubMenuFullWidth ? ' full-width-menu' : ''\n }${className ? ` ${className}` : ''}`}\n ref={menuRef}\n >\n <button\n ref={menuButtonRef}\n className=\"menu-dropdown-toggle\"\n aria-label={`${name} navigation dropdown`}\n aria-expanded={isOpen}\n aria-controls={`nav-section-${menuIdentifier}`}\n data-toggle=\"dropdown\"\n onClick={() => handleToggleMenu(menuIdentifier)}\n >\n <div className=\"dropdown-title-chevron-container\">\n <span className=\"dropdown-title\">{name}</span>\n <div className=\"chevron-container\">\n <Chevron focusable=\"false\" />\n </div>\n </div>\n\n <span className={`dropdown-description ${isOpen ? 'active' : ''}`}>\n {subtitle}\n </span>\n </button>\n <div\n className={`nav-section${isOpen ? ' open' : ''}`}\n id={`nav-section-${menuIdentifier}`}\n hidden={!isOpen}\n data-columns={numColumns}\n >\n {rows.map((columnContent, index) => {\n return (\n <ul key={`${menuIdentifier}-${index}`} className=\"nav-column\">\n {columnContent.map((c, cIndex) => {\n return (\n <Fragment key={`${menuIdentifier}-${index}-${cIndex}`}>\n <li className=\"submenu-section\">\n {c.heading && (\n <h3 className=\"submenu-heading\">{c.heading}</h3>\n )}\n <ul>\n {c.items.map((item) => {\n const isSubLink = item.type === 'sublink';\n const componentsByType = {\n button: HeaderMenuButton,\n signout: HeaderMenuSignOutButton,\n link: HeaderMenuLink,\n sublink: HeaderMenuLink,\n };\n const SubMenuComponent = componentsByType[item.type];\n return (\n <li\n onClick={handleClick}\n key={`item-link-${item.name}`}\n className={isSubLink ? 'nav-link-li sublink' : 'nav-link-li'}\n >\n <SubMenuComponent\n href={item.href}\n name={item.name}\n RouterLink={RouterLink}\n />\n </li>\n );\n })}\n </ul>\n </li>\n {name === 'MIPS' && (\n <li\n key={`${menuIdentifier}-mobile-${index}-${cIndex}`}\n className=\"submenu-section-mips-mobile\"\n onClick={() => {\n setOpenMobileSubMenu(c.heading);\n }}\n >\n <Accordion\n title={c.heading}\n isOpen={isMobileMenuExpanded && openMobileSubMenu === c.heading}\n >\n <ul>\n {c.items.map((item) => {\n const isSubLink = item.type === 'sublink';\n const componentsByType = {\n button: HeaderMenuButton,\n signout: HeaderMenuSignOutButton,\n link: HeaderMenuLink,\n sublink: HeaderMenuLink,\n };\n const SubMenuComponent =\n componentsByType[item.type];\n return (\n <li\n onClick={handleClick}\n key={`item-link-${item.name}`}\n className={isSubLink ? 'sublink' : ''}\n >\n <SubMenuComponent\n href={item.href}\n name={item.name}\n RouterLink={RouterLink}\n />\n </li>\n );\n })}\n </ul>\n </Accordion>\n </li>\n )}\n </Fragment>\n );\n })}\n </ul>\n );\n })}\n </div>\n </li>\n );\n};\n\nHeaderMenuItem.propTypes = {\n columns: PropTypes.array,\n menuName: PropTypes.string,\n rows: PropTypes.array,\n name: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n className: PropTypes.string,\n handleClick: PropTypes.func.isRequired,\n isMobileMenuExpanded: PropTypes.bool.isRequired,\n};\nHeaderMenuItem.defaultProps = {\n menuName: '',\n columns: [],\n rows: [],\n className: null,\n};\n\nexport default HeaderMenuItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const Chevron = (props) => {\n return (\n <svg\n width=\"10px\"\n height=\"6px\"\n viewBox=\"0 0 10 6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g\n transform=\"translate(-56.000000, -9.000000)\"\n fill=\"#242424\"\n fillRule=\"nonzero\"\n >\n <path d=\"M61,14.9622437 C61.0868403,14.9622437 61.1636607,14.9288436 61.2304609,14.8620433 L61.2304609,14.8620433 L65.8997996,10.1927046 C65.9665999,10.1259043 66,10.049084 66,9.96224368 C66,9.87540334 65.9665999,9.79858303 65.8997996,9.73178276 L65.8997996,9.73178276 L65.3987976,9.23078076 C65.3319973,9.16398049 65.255177,9.13058036 65.1683367,9.13058036 C65.0814963,9.13058036 65.004676,9.16398049 64.9378758,9.23078076 L64.9378758,9.23078076 L61,13.1686565 L57.0621242,9.23078076 C56.995324,9.16398049 56.9185037,9.13058036 56.8316633,9.13058036 C56.744823,9.13058036 56.6680027,9.16398049 56.6012024,9.23078076 L56.6012024,9.23078076 L56.1002004,9.73178276 C56.0334001,9.79858303 56,9.87540334 56,9.96224368 C56,10.049084 56.0334001,10.1259043 56.1002004,10.1927046 L56.1002004,10.1927046 L60.7695391,14.8620433 C60.8363393,14.9288436 60.9131597,14.9622437 61,14.9622437 Z\"></path>\n </g>\n </g>\n </svg>\n );\n};\n\nChevron.propTypes = {\n className: PropTypes.string,\n};\n\nChevron.defaultProps = {\n className: 'accordion-icon',\n};\n","import IndividualDetails from './IndividualDetails';\nimport PracticeDetails from './PracticeDetails';\n\nexport { IndividualDetails, PracticeDetails };\n","import ScoreChart from './ScoreChart';\n\nexport { ScoreChart };\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","import ErrorPage from './components/Error/error';\nimport Footer from './components/Footer/footer';\nimport Header from './components/Header/header';\nimport SideNav from './components/SideNav';\nimport SessionDialog from './components/SessionDialog/sessionDialog';\n\nimport 'what-input';\n\nconst QppStyleComponents = {\n errorPage(options) {\n return new ErrorPage(options);\n },\n\n footer(options) {\n return new Footer(options);\n },\n\n header(options) {\n return new Header(options);\n },\n\n sideNav(options) {\n return SideNav(options);\n },\n\n SessionDialog(options) {\n return new SessionDialog(options);\n },\n};\n\nexport default QppStyleComponents;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport ErrorUI from './ErrorUI';\n\n/**\n * Renders the QPP Error Page content.\n */\nexport default class ErrorPage {\n /**\n * @param {Object} options - An object containing content and config data\n * @param {String} options.type - The error type\n * @param {String} options.code - The error code\n * @param {String} options.message - The error message\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n constructor(options) {\n render(\n <ErrorUI\n type={options.type}\n code={options.code}\n message={options.message}\n />,\n options.rootElement\n );\n }\n}\n","import React from 'react';\nimport Collapsible from './Collapsible';\nimport PropTypes from 'prop-types';\n\nconst ErrorUI = (props) => {\n let errorTitle = `${props.type || 'Error'} ${props.code || ''}`;\n let errorDetails = props.message;\n\n return (\n <section className=\"page-error\">\n <div className=\"responsive-container\">\n <h1>We’re sorry.</h1>\n <p className=\"h2\">We cannot access this page.</p>\n <Collapsible\n showLabel=\"Open technical details about the error\"\n hideLabel=\"Close technical details about the error\"\n contentTitle={errorTitle}\n content={errorDetails}\n />\n </div>\n </section>\n );\n};\n\nErrorUI.propTypes = {\n code: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n type: PropTypes.string,\n};\n\nexport default ErrorUI;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass Collapsible extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n isExpanded: false,\n };\n\n this._toggleExpanded = this.toggleExpanded.bind(this);\n this._renderShowButton = this.renderShowButton.bind(this);\n this._renderHideButton = this.renderHideButton.bind(this);\n }\n\n toggleExpanded() {\n this.setState({\n isExpanded: !this.state.isExpanded,\n });\n }\n\n renderShowButton() {\n return (\n <span className=\"collapsible-show-label\">{this.props.showLabel}</span>\n );\n }\n\n renderHideButton() {\n if (this.props.hideLabel) {\n return (\n <span className=\"collapsible-hide-label\">{this.props.hideLabel}</span>\n );\n } else {\n return '';\n }\n }\n\n render() {\n const isArray = Array.isArray(this.props.content);\n const isHidden = this.state.isExpanded ? undefined : true;\n\n return (\n <div className=\"collapsible-container\">\n <button\n onClick={this._toggleExpanded}\n className=\"collapsible-summary\"\n type=\"button\"\n aria-expanded={this.state.isExpanded ? true : false}\n >\n {this._renderShowButton()}\n {this._renderHideButton()}\n </button>\n\n <div className=\"collapsible-details\" hidden={isHidden}>\n {isArray ? (\n <ul className=\"items\">\n {this.props.content.map((c) => (\n <li key={c.contentTitle}>\n <p>\n <b>{c.contentTitle}</b>\n </p>\n <p>{c.content}</p>\n </li>\n ))}\n </ul>\n ) : (\n <div>\n <p>\n <b>{this.props.contentTitle}</b>\n </p>\n <p>{this.props.content}</p>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n\nCollapsible.propTypes = {\n showLabel: PropTypes.string.isRequired,\n hideLabel: PropTypes.string.isRequired,\n content: PropTypes.oneOfType([PropTypes.array, PropTypes.string]).isRequired,\n contentTitle: PropTypes.string,\n};\n\nexport default Collapsible;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/* global buildVersion */\n// buildVersion above is defined in webpack.config.js\nimport React from 'react';\nimport { render } from 'react-dom';\nimport FooterUI from './FooterUI';\n\n/**\n * Renders the QPP Footer content.\n */\nexport default class Footer {\n /**\n * @param {Object} options - An object containing content and config data\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n constructor(options) {\n if (options.hasOwnProperty('rootElement')) {\n render(\n <FooterUI\n buildVersion={buildVersion}\n isFullWidth={options.isFullWidth}\n isNewFooter={options.isNewFooter}\n showHcdResearch={options.showHcdResearch}\n />,\n options.rootElement\n );\n } else {\n render(<FooterUI buildVersion={buildVersion} />, options);\n }\n }\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\n\nimport InfoTip from '../Infotip/Infotip';\nimport LegacyFooterUI from './LegacyFooterUI';\nimport Subscribe from './Subscribe';\nimport SocialLinks from './SocialLinks';\n\nconst infoTipLabel =\n 'When dialing 711, you will automatically be connected to a TRS Communications Assistant who will relay your conversation to the help desk agent with strict confidentiality.';\n\nconst FooterUI = (props) => {\n const isNewFooter = props.isNewFooter;\n const isIESupportPage = props.isIESupportPage;\n const signUpNowLink = props.showHcdResearch\n ? '/about/hcd-research'\n : 'mailto:QPPUserResearch@cms.hhs.gov?subject=Sign up for feedback sessions&body=Please let us know your role and how many Tax Identification Numbers (TINs) you represent. Don’t send us your actual TINs, that is confidential information that should not be shared with this email address. If you do not represent a practice, let us know what work you do in connection to QPP.';\n const [listServ, setListServ] = useState(false);\n\n const setLink = (link) => {\n return isIESupportPage ? '/' : link;\n };\n\n // The footer content is populated with the following priority order:\n // 1. Use the footer content in localStorage if it's there\n // 2. If not, make a call to get it from the QPPFE endpoint. Hydrate the localStorage item with the response.\n // 3. If the call fails, use the default value\n useEffect(() => {\n const storageContent = JSON.parse(\n localStorage.getItem('qpp_footer_listServ')\n );\n if (\n storageContent?.content &&\n new Date().valueOf() < storageContent.expiration\n ) {\n setListServ(storageContent.listServ);\n } else {\n const origin = window.location.origin;\n axios\n .get(\n !origin.includes('localhost')\n ? `${origin}/config/footer`\n : 'https://qpp.cms.gov/config/footer'\n )\n .then(({ data: { data = {} } }) => {\n localStorage.setItem(\n 'qpp_footer_listServ',\n JSON.stringify({\n listServ: data.listServ,\n })\n );\n setListServ(data.listServ);\n })\n .catch((e) => {\n setListServ(false);\n });\n }\n }, []);\n if (isNewFooter) {\n return (\n <>\n {!isIESupportPage && (\n <div className=\"feedback-session-sign-up\">\n <div className=\"responsive-container\">\n <hr />\n <p>\n <strong>Help shape the future of QPP.</strong> Participate in a\n user feedback session.{' '}\n <a className=\"email-note-link\" href={signUpNowLink}>\n Sign up now\n </a>\n </p>\n </div>\n </div>\n )}\n <footer className=\"global-footer\">\n <div className=\"build-version\" id=\"build-version\">\n {props.buildVersion}\n </div>\n\n <div className=\"responsive-container\">\n <>\n {!isIESupportPage && (\n <div className=\"global-footer-container\">\n <div className=\"footer-resources\">\n <p className=\"sub-title\">Resources</p>\n <ul>\n <li>\n <a\n href=\"/about/resource-library\"\n aria-label=\"Resource Library\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenEducationAndTools\"\n data-track-label=\"Education and Tools\"\n >\n Resource Library\n </a>\n </li>\n <li>\n <a\n href=\"/resources/help-and-support\"\n aria-label=\"Help and Support\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenHelpAndSupport\"\n data-track-label=\"Help and Support\"\n >\n Help and Support\n </a>\n </li>\n <li>\n <a\n href=\"/about/small-underserved-rural-practices\"\n aria-label=\"Support for Small Practices\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenSupportSmallPractices\"\n data-track-label=\"Support for Small Practices\"\n >\n Support for Small Practices\n </a>\n </li>\n <li>\n <a\n href=\"/developers\"\n aria-label=\"Developer Tools\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenDeveloperTools\"\n data-track-label=\"Quality Payment Program\"\n >\n Developer Tools\n </a>\n </li>\n <li>\n <a\n href=\"/glossary\"\n aria-label=\"Glossary\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenGlossary\"\n data-track-label=\"Glossary\"\n >\n Glossary\n </a>\n </li>\n </ul>\n </div>\n <div className=\"footer-contact-cms\">\n <p className=\"sub-title\">Contact CMS</p>\n <p className=\"contact-title\">By Phone:</p>\n <p>Monday - Friday 8 a.m - 8 p.m ET</p>\n <p>\n 1-866-288-8292 (TRS: 711)\n <span className=\"footer-trs-infotip\">\n <InfoTip label={infoTipLabel} />\n </span>\n </p>\n\n <p className=\"contact-title\">By Email:</p>\n <p>\n <a\n aria-label=\"QPP@cms.hhs.gov\"\n href=\"mailto:QPP@cms.hhs.gov\"\n className=\"email-link\"\n >\n QPP@cms.hhs.gov\n </a>\n </p>\n </div>\n <div className=\"footer-social-newsletter\">\n <p className=\"sub-title\">Stay Connected</p>\n <SocialLinks />\n <p className=\"sub-title\">\n {listServ\n ? 'Sign Up for the QPP Listserv'\n : 'Sign Up for the QPP Newsletter'}\n </p>\n <Subscribe />\n </div>\n </div>\n )}\n <hr />\n </>\n\n <div className=\"other-links\">\n <ul className=\"small\">\n <li>\n <a\n href={setLink('/privacy')}\n aria-label=\"Notice of Privacy and Disclaimer\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenPrivacyDisclaimer\"\n data-track-label=\"Notice of Privacy and Disclaimer\"\n >\n CMS Privacy Notice\n </a>\n </li>\n <li className=\"divider\"></li>{' '}\n <li>\n <a\n href={setLink('/accessibility')}\n aria-label=\"Accessibility\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenAccessibility\"\n data-track-label=\"Accessibility\"\n >\n Accessibility\n </a>\n </li>\n <li className=\"divider\"></li>{' '}\n <li>\n <a\n aria-label=\"Download Adobe Reader\"\n className=\"adobe-link\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href={setLink('https://get.adobe.com/reader')}\n data-track-category=\"FooterNav\"\n data-track-action=\"DownloadAdobeReader\"\n data-track-label=\"AdobeReader\"\n >\n Download Adobe Reader\n </a>\n </li>\n </ul>\n <hr />\n </div>\n <div className=\"qpp-hhs-logo-container\">\n <div className=\"qpp-logo-container\">\n <img\n className=\"qpp-logo\"\n src=\"/images/qpp_logo_rgb_color.png\"\n alt=\"qpp logo\"\n />\n </div>\n <div className=\"hhs-logo-container\">\n <img\n className=\"hhs-logo\"\n alt=\"Department of Health & Human Services USA\"\n src=\"/images/hhs-logo-black.svg\"\n />\n <p>\n A federal government website managed and paid for by the U.S\n Centers for Medicare & Medicaid Services. 7500 Security\n Boulevard, Baltimore MD 21244\n </p>\n </div>\n </div>\n </div>\n </footer>\n </>\n );\n }\n return (\n <LegacyFooterUI\n buildVersion={props.buildVersion}\n isFullWidth={props.isFullWidth}\n signUpNowLink={signUpNowLink}\n />\n );\n};\n\nFooterUI.propTypes = {\n buildVersion: PropTypes.string,\n isFullWidth: PropTypes.bool,\n isNewFooter: PropTypes.bool,\n isIESupportPage: PropTypes.bool,\n showHcdResearch: PropTypes.bool,\n};\n\nexport default FooterUI;\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","import Tooltip from './Tooltip';\n\nexport default Tooltip;\n","import React, { cloneElement, useLayoutEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport positionTip, { positionTriangle } from './position';\nimport { useTooltip, TooltipPopup } from '@reach/tooltip';\nimport Portal from '@reach/portal';\n\n// TODO: investigate ways to allow more styling via css? the triangle\n// positioning effect issue may need to be resolved to allow for this.\nconst TEXT_COLOR = '#FFF';\nconst BACKGROUND_COLOR = '#333';\n\n/**\n * Generic styled tooltip component.\n * Corresponding styles: /styles/components/_tooltip.scss\n *\n * Extends implementation from @reach/tooltip:\n * https://reacttraining.com/reach-ui/tooltip\n */\nconst Tooltip = ({ children, label, ariaLabel, DEBUG_STYLE }) => {\n const [trigger, tooltip] = useTooltip({ DEBUG_STYLE });\n const { isVisible, triggerRect } = tooltip;\n const tooltipPopupRef = useRef();\n const triangleRef = useRef();\n\n useLayoutEffect(() => {\n // For some reason, the forwardRef for the tooltipPopup points to an undefined\n // dom element when we first render the portal containing the triangle. Using\n // an effect here will ensure that the ref is available when applying styles.\n // TODO: investigate and make issue for @reach-ui/tooltip?\n if (isVisible && tooltipPopupRef.current && triggerRect) {\n const tooltipRect = tooltipPopupRef.current.getBoundingClientRect();\n const positionCssText = positionTriangle(triggerRect, tooltipRect);\n const cssText = `\n position: absolute;\n width: 0;\n height: 0;\n ${positionCssText}\n border-top-color: ${BACKGROUND_COLOR};\n border-bottom-color: ${BACKGROUND_COLOR};\n z-index: 1;\n `;\n triangleRef.current.style.cssText = cssText;\n }\n });\n\n return (\n <>\n {cloneElement(children, trigger)}\n <TooltipPopup\n {...tooltip}\n label={label}\n ariaLabel={ariaLabel}\n style={{\n background: BACKGROUND_COLOR,\n color: TEXT_COLOR,\n }}\n ref={tooltipPopupRef}\n position={positionTip}\n />\n {isVisible && (\n <Portal>\n <div\n ref={triangleRef}\n style={{\n position: 'absolute',\n width: 0,\n height: 0,\n }}\n />\n </Portal>\n )}\n </>\n );\n};\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n label: PropTypes.node.isRequired,\n ariaLabel: PropTypes.string,\n DEBUG_STYLE: PropTypes.bool,\n};\n\nTooltip.defaultProps = {\n ariaLabel: undefined,\n DEBUG_STYLE: undefined,\n};\n\nexport default Tooltip;\n","const OFFSET = 12; // modified from reach-ui/tooltip OFFSET value\nconst TRIANGLE_SCALE_X = 6;\nconst TRIANGLE_SCALE_Y = 8;\n\nconst isDirectionUp = (triggerRect, tooltipRect) => {\n const collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n bottom:\n window.innerHeight < triggerRect.bottom + tooltipRect.height + OFFSET,\n };\n\n return !collisions.top || collisions.bottom;\n};\n\n// modified from @reach/tooltip default positioning function\n// positions Tooltip relative to trigger\n// https://github.com/reach/reach-ui/blob/master/packages/tooltip/src/index.tsx#L532\nconst positionTip = (triggerRect, tooltipRect) => {\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n\n const triggerCenter = triggerRect.left + triggerRect.width / 2;\n const left = triggerCenter - tooltipRect.width / 2;\n const maxLeft = window.innerWidth - tooltipRect.width - 2;\n const centerLeft = Math.min(Math.max(2, left), maxLeft) + window.pageXOffset;\n\n const directionUp = isDirectionUp(triggerRect, tooltipRect);\n\n return {\n left: `${centerLeft}px`,\n top: directionUp\n ? `${\n triggerRect.top - OFFSET - tooltipRect.height + window.pageYOffset\n }px`\n : `${\n triggerRect.top + OFFSET + triggerRect.height + window.pageYOffset\n }px`,\n };\n};\n\nexport default positionTip;\n\n// position triangle relative to tooltip position\n// TODO: figure out a better way to render these updates from within react\n// rendering. This method causes an additional repaint after the Tooltip\n// has been rendered. may require changes to @reach/tooltip.\nexport const positionTriangle = (triggerRect, tooltipRect) => {\n const directionUp = isDirectionUp(triggerRect, tooltipRect);\n const triangleTop = directionUp\n ? triggerRect.top + window.pageYOffset - OFFSET\n : triggerRect.bottom + window.pageYOffset + OFFSET - TRIANGLE_SCALE_Y;\n\n const triangleLeft =\n triggerRect.left - TRIANGLE_SCALE_X + triggerRect.width / 2;\n\n const triangleBorder = directionUp\n ? `border-top: ${TRIANGLE_SCALE_Y}px solid;`\n : `border-bottom: ${TRIANGLE_SCALE_Y}px solid;`;\n\n return `\n border-left: ${TRIANGLE_SCALE_X}px solid transparent;\n border-right: ${TRIANGLE_SCALE_X}px solid transparent;\n left: ${triangleLeft}px;\n top: ${triangleTop}px;\n ${triangleBorder}\n `;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst InfotipIcon = ({ lightIcon, ...props }) => (\n <svg\n width=\"20px\"\n height=\"20px\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g fill=\"none\" fillRule=\"evenodd\">\n <path\n d=\"M9.721 19.158c-4.947 0-8.973-4.126-8.973-9.196C.748 4.892 4.774.766 9.72.766c4.948 0 8.974 4.126 8.974 9.196 0 5.07-4.026 9.196-8.974 9.196z\"\n fill=\"#2EB1ED\"\n fillRule=\"nonzero\"\n />\n <path\n d=\"M9.721 0C4.361 0 0 4.469 0 9.962c0 5.493 4.36 9.962 9.721 9.962 5.36 0 9.722-4.469 9.722-9.962C19.443 4.469 15.082 0 9.72 0z\"\n fill={lightIcon ? '#FFF' : '#04838A'}\n />\n <path\n d=\"M9.721 14.765c-.206 0-.374.112-.374.25v.5c0 .138.168.25.374.25.207 0 .374-.112.374-.25v-.5c0-.138-.167-.25-.374-.25zM9.764 4.706H9.72c-.792 0-1.536.29-2.1.821a2.767 2.767 0 0 0-.89 2.03c0 .197.166.356.373.356s.374-.159.374-.356c0-.577.237-1.118.668-1.523a2.268 2.268 0 0 1 1.607-.615c1.182.016 2.195.98 2.211 2.107.011.743-.373 1.427-1.028 1.83-.995.61-1.589 1.691-1.589 2.89v1.013c0 .197.168.357.374.357.207 0 .374-.16.374-.357v-1.013c0-.941.477-1.82 1.246-2.292.873-.537 1.386-1.448 1.371-2.438-.022-1.527-1.345-2.788-2.948-2.81z\"\n stroke={lightIcon ? '#04838A' : '#FFF'}\n strokeWidth=\".5\"\n fill={lightIcon ? '#04838A' : '#FFF'}\n fillRule=\"nonzero\"\n />\n </g>\n </svg>\n);\n\nexport default InfotipIcon;\n\nInfotipIcon.propTypes = {\n lightIcon: PropTypes.bool,\n};\n\nInfotipIcon.defaultProps = {\n lightIcon: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport InfoTip from '../Infotip/Infotip';\n\nconst infoTipLabel =\n 'When dialing 711, you will automatically be connected to a TRS Communications Assistant who will relay your conversation to the help desk agent with strict confidentiality.';\n\nconst LegacyFooterUI = ({ buildVersion, isFullWidth, signUpNowLink }) => {\n return (\n <footer className=\"legacy-footer\">\n <div className=\"build-version\" id=\"build-version\">\n {buildVersion}\n </div>\n <div className=\"banner\">\n <div\n className={\n isFullWidth ? 'container-full-width' : 'responsive-container'\n }\n >\n <div className=\"row\">\n <div className=\"col-sm-12 col-md-12 col-lg-12\">\n <span>Help shape the future of QPP</span> by participating in user\n feedback sessions.{' '}\n <a className=\"email-note-link\" href={signUpNowLink}>\n Send us an email to sign up\n </a>\n </div>\n </div>\n </div>\n </div>\n <div\n className={\n isFullWidth ? 'container-full-width' : 'responsive-container'\n }\n >\n <div className=\"row\">\n <div\n className={\n isFullWidth\n ? 'col-sm-12 col-md-8 col-lg-8'\n : 'col-sm-8 col-md-9 col-lg-9'\n }\n >\n <div className=\"logo-container\">\n <img\n src=\"/images/qpp_logo_reversed.png\"\n alt=\"Quality Payment Program\"\n className=\"qpp-logo\"\n />\n <div className=\"social-container\">\n <a\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n className=\"social-link\"\n href=\"https://twitter.com/CMSGov\"\n aria-label=\"Follow us on Twitter. This link opens in a new window.\"\n >\n <span className=\"glyphicon glyphicon-twitter\"></span>\n </a>\n <a\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n className=\"social-link\"\n href=\"https://www.youtube.com/playlist?list=PLaV7m2-zFKpj_6fBsqav6GvFzzq9oOpkk\"\n aria-label=\"Follow us on YouTube. This link opens in a new window.\"\n >\n <span className=\"glyphicon glyphicon-youtube\"></span>\n </a>\n </div>\n </div>\n <div className=\"links\">\n <ul>\n <li>\n <a\n href=\"/developers\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenDeveloperTools\"\n data-track-label=\"Quality Payment Program\"\n >\n Developer Tools\n </a>\n </li>\n <li>\n <a\n href=\"/about/resource-library\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenEducationAndTools\"\n data-track-label=\"Education and Tools\"\n >\n Resource Library\n </a>\n </li>\n <li>\n <a\n href=\"/glossary\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenGlossary\"\n data-track-label=\"Glossary\"\n >\n Glossary\n </a>\n </li>\n <li>\n <a\n href=\"/resources/help-and-support\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenHelpAndSupport\"\n data-track-label=\"Help and Support\"\n >\n Help and Support\n </a>\n </li>\n </ul>\n <ul className=\"small\">\n <li>\n <a\n href=\"/privacy\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenPrivacyDisclaimer\"\n data-track-label=\"Notice of Privacy and Disclaimer\"\n >\n CMS Privacy Notice\n </a>\n </li>\n <span className=\"divider\"></span>\n <li>\n <a\n href=\"/accessibility\"\n data-track-category=\"FooterNav\"\n data-track-action=\"OpenAccessibility\"\n data-track-label=\"Accessibility\"\n >\n Accessibility\n </a>\n </li>\n <span className=\"divider\"></span>\n <li>\n <a\n className=\"adobe-link\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href=\"https://get.adobe.com/reader\"\n data-track-category=\"FooterNav\"\n data-track-action=\"DownloadAdobeReader\"\n data-track-label=\"AdobeReader\"\n >\n <svg className=\"icon\">\n <use xlinkHref=\"#icon-download\" />\n </svg>\n Download Adobe Reader\n </a>\n </li>\n <span className=\"divider\"></span>\n <li>\n <a href=\"mailto:QPP@cms.hhs.gov\" className=\"email-link\">\n QPP@cms.hhs.gov\n </a>\n </li>\n <li>\n 1-866-288-8292 (TRS: 711)\n <div className=\"footer-trs-infotip\">\n <InfoTip lightIcon label={infoTipLabel} />\n </div>\n </li>\n </ul>\n </div>\n </div>\n <div\n className={\n isFullWidth\n ? 'col-sm-12 col-md-4 col-lg-4'\n : 'col-sm-4 col-md-3 col-lg-3'\n }\n >\n <div className=\"hhs-logo-container\">\n <img\n alt=\"Department of Health & Human Services USA\"\n src=\"/images/hhs-logo-white.svg\"\n />\n </div>\n </div>\n </div>\n </div>\n </footer>\n );\n};\n\nLegacyFooterUI.propTypes = {\n buildVersion: PropTypes.string,\n isFullWidth: PropTypes.bool,\n signUpNowLink: PropTypes.string,\n};\n\nexport default LegacyFooterUI;\n","import React from 'react';\n\nconst Subscribe = () => (\n <div className=\"subscriber-form\">\n <form\n action=\"https://public.govdelivery.com/accounts/USCMS/subscriber/qualify\"\n target=\"_blank\"\n acceptCharset=\"UTF-8\"\n method=\"get\"\n rel=\"noopener noreferrer\"\n >\n <input type=\"hidden\" name=\"topic_id\" value=\"USCMS_12196\" />\n <label className=\"sr-only\" htmlFor=\"email-subscribe\">\n Email address\n </label>\n <input\n id=\"email-subscribe\"\n className=\"form-control\"\n type=\"email\"\n name=\"email\"\n placeholder=\"Enter your Email\"\n />\n <button\n className=\"btn btn-subscribe js-subscribe-submit\"\n type=\"submit\"\n name=\"commit\"\n >\n Subscribe\n </button>\n </form>\n </div>\n);\n\nexport default Subscribe;\n","import React from 'react';\n\nconst SocialLinks = () => (\n <div className=\"social-container\">\n <a\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n className=\"social-link\"\n href=\"https://twitter.com/CMSGov\"\n aria-label=\"Follow us on Twitter. This link opens in a new window.\"\n >\n <svg width=\"19px\" height=\"16px\" viewBox=\"0 0 19 16\">\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g\n transform=\"translate(-763.000000, -177.000000)\"\n fill=\"#242424\"\n fillRule=\"nonzero\"\n >\n <g transform=\"translate(763.000000, 140.000000)\">\n <g transform=\"translate(0.000000, 37.000000)\">\n <path\n d=\"M16.9243259,4.73901817 C16.9243259,4.57725788 16.9243259,4.41549759 16.916868,4.25373729 C17.6626567,3.71698723 18.3114928,3.05524058 18.826087,2.30526104 C18.1250456,2.6067234 17.3867149,2.81260014 16.6260105,2.90083303 C17.4240043,2.43025763 18.0206352,1.68763083 18.3040349,0.812654705 C17.5507884,1.25381914 16.7304209,1.56263424 15.8727639,1.72439454 C14.425934,0.202377237 12.0021209,0.128849832 10.4583384,1.56263424 C9.46643951,2.48172682 9.04133999,3.8566893 9.35457121,5.16547712 C6.28192201,5.01106957 3.41063575,3.5846379 1.47158528,1.22440818 C0.457312727,2.94494947 0.971906889,5.15077164 2.65738922,6.26103547 C2.04584253,6.24632999 1.45666951,6.0845697 0.919701685,5.79046007 C0.919701685,5.80516555 0.919701685,5.81987104 0.919701685,5.83457652 C0.919701685,7.62864522 2.20245815,9.17272074 3.99235089,9.53300502 C3.42555152,9.68741258 2.83637849,9.7094708 2.26212124,9.59917969 C2.76179963,11.1359025 4.20117171,12.1873444 5.83444883,12.2167553 C4.4771135,13.2681972 2.80654695,13.8343583 1.08377519,13.8343583 C0.778001843,13.8343583 0.4722285,13.8123 0.173913043,13.7828891 C1.93397424,14.8784474 3.96251934,15.4666667 6.04326965,15.4666667 C13.0760565,15.4666667 16.9243259,9.71682354 16.9243259,4.73901817 Z\"\n id=\"twitter-icon\"\n ></path>\n </g>\n </g>\n </g>\n </g>\n </svg>\n </a>\n <a\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n className=\"social-link\"\n href=\"https://www.youtube.com/playlist?list=PLaV7m2-zFKpj_6fBsqav6GvFzzq9oOpkk\"\n aria-label=\"Follow us on YouTube. This link opens in a new window.\"\n >\n <svg width=\"19px\" height=\"14px\" viewBox=\"0 0 19 14\">\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g\n transform=\"translate(-801.000000, -179.000000)\"\n fill=\"#242424\"\n fillRule=\"nonzero\"\n >\n <g transform=\"translate(763.000000, 140.000000)\">\n <g id=\"Group\" transform=\"translate(38.000000, 39.000000)\">\n <path\n d=\"M17.7486957,2.84298208 C17.551087,2.10010036 16.9670652,1.51515412 16.2265217,1.3162724 C14.8843478,0.955555556 9.5,0.955555556 9.5,0.955555556 C9.5,0.955555556 4.11565217,0.955555556 2.77347826,1.3162724 C2.03293478,1.51515412 1.44891304,2.10010036 1.25130435,2.84298208 C0.891304348,4.19030824 0.891304348,7 0.891304348,7 C0.891304348,7 0.891304348,9.80969176 1.25130435,11.1570179 C1.44891304,11.8998996 2.03293478,12.4848459 2.77347826,12.6837276 C4.11565217,13.0444444 9.5,13.0444444 9.5,13.0444444 C9.5,13.0444444 14.8843478,13.0444444 16.2265217,12.6837276 C16.9670652,12.4848459 17.551087,11.8998996 17.7486957,11.1570179 C18.1086957,9.80969176 18.1086957,7 18.1086957,7 C18.1086957,7 18.1086957,4.19030824 17.7486957,2.84298208 Z M7.73913043,9.5513405 L7.73913043,4.4486595 L12.2391304,7 L7.73913043,9.5513405 Z\"\n id=\"Youtube-icon\"\n ></path>\n </g>\n </g>\n </g>\n </g>\n </svg>\n </a>\n </div>\n);\n\nexport default SocialLinks;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport HeaderUI from './HeaderUI.jsx';\n\n/**\n * Renders the QPP Header content.\n */\nexport default class Header {\n /**\n * @param {Object} options - An object containing content and config data\n * @param {Boolean} options.isLoginEnabled\n * @param {String} options.skipToContentId - The HTML ID of main content\n * @param {Boolean} options.includeSkipToSidebar\n * @param {Boolean} options.showCancelButton\n * @param {Boolean} options.showCovidLink\n * @param {Boolean} options.isIESupportPage\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n constructor(options) {\n render(\n <HeaderUI\n isLoginEnabled={options.isLoginEnabled}\n skipToContentId={options.skipToContentId}\n includeSkipToSidebar={options.includeSkipToSidebar}\n showCancelButton={options.showCancelButton}\n performanceYear={options.performanceYear}\n feedbackPerformanceYear={options.feedbackPerformanceYear}\n fbpPerformanceYear={options.fbpPerformanceYear}\n showPhysicianCompareLink={options.showPhysicianCompareLink}\n showFacilityBasedPreviewLink={options.showFacilityBasedPreviewLink}\n showCovidLink={options.showCovidLink}\n showMaqi={options.showMaqi}\n isDevPre={options.isDevPre}\n content={options.content}\n isIESupportPage={options.isIESupportPage}\n />,\n options.rootElement\n );\n }\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport HeaderAccountMenu from './HeaderAccountMenu.jsx';\nimport HeaderCancel from './HeaderCancel.jsx';\nimport HeaderContainer from './HeaderContainer';\nimport HeaderMenuItem from './HeaderMenuItem';\nimport HeaderMobileButton from './HeaderMobileButton';\nimport ImpersonatorBanner from './ImpersonatorBanner';\nimport HelpIcon from './HelpIcon';\nimport defaultHeaderContent from './default-content.json';\nimport { HeaderStateProvider } from './hooks';\nimport useGetConfig from '../hooks/useGetConfig';\n\nconst HeaderUI = ({\n fbpPerformanceYear,\n feedbackPerformanceYear,\n handleCancel,\n includeSkipToSidebar,\n isDevPre,\n isLoginEnabled,\n performanceYear,\n showCancelButton,\n showPhysicianCompareLink,\n showFacilityBasedPreviewLink,\n skipToContentId,\n RouterLink,\n isIESupportPage,\n}) => {\n const [isMobileMenuExpanded, setIsMobileMenuExpanded] = useState(false);\n\n const mapContentToRows = (config) => {\n // Append transposed array to content\n return config?.map((section) => {\n // Only header items with multiple columns need to be transposed\n // Single column menus' tab order will remain the same\n if (section.columns?.length > 1) {\n const { columns } = section;\n return {\n ...section,\n rows: columns[0].map((_, colIndex) =>\n columns.map((row) => row[colIndex])\n ),\n };\n }\n return { ...section, rows: section.columns };\n });\n };\n\n const result = useGetConfig({\n localStorageName: 'qpp_top_nav_content',\n url: '/config/header',\n timeout: 30,\n defaultContent: defaultHeaderContent,\n });\n\n const content = mapContentToRows(result?.content);\n\n if (showCancelButton) {\n return (\n <HeaderStateProvider RouterLink={RouterLink}>\n <HeaderContainer\n showCancelButton\n skipToContentId={skipToContentId}\n includeSkipToSidebar={includeSkipToSidebar}\n >\n <HeaderCancel handleCancel={handleCancel} />\n </HeaderContainer>\n </HeaderStateProvider>\n );\n }\n\n if (isDevPre) {\n return (\n <HeaderStateProvider RouterLink={RouterLink}>\n <HeaderContainer\n isIESupportPage={isIESupportPage}\n skipToContentId={skipToContentId}\n includeSkipToSidebar={includeSkipToSidebar}\n >\n <nav aria-label=\"Primary navigation\" hidden={!isMobileMenuExpanded}>\n <ul className=\"navigation-menu\">\n <HeaderAccountMenu isDevPre isLoginEnabled={isLoginEnabled} />\n </ul>\n </nav>\n </HeaderContainer>\n </HeaderStateProvider>\n );\n }\n\n if (!content) {\n return null;\n }\n\n return (\n <HeaderStateProvider RouterLink={RouterLink}>\n <HeaderContainer\n isIESupportPage={isIESupportPage}\n skipToContentId={skipToContentId}\n includeSkipToSidebar={includeSkipToSidebar}\n >\n <HelpIcon />\n <HeaderMobileButton\n handleClick={() => setIsMobileMenuExpanded(!isMobileMenuExpanded)}\n isMobileMenuExpanded={isMobileMenuExpanded}\n />\n <nav aria-label=\"Primary navigation\" hidden={!isMobileMenuExpanded}>\n <ul className=\"navigation-menu navigation-new-style\">\n {content.map((header) => (\n <HeaderMenuItem\n handleClick={() => {\n setIsMobileMenuExpanded(!isMobileMenuExpanded);\n }}\n isMobileMenuExpanded={isMobileMenuExpanded}\n key={header.name}\n {...header}\n />\n ))}\n <HeaderAccountMenu\n handleClick={() => setIsMobileMenuExpanded(!isMobileMenuExpanded)}\n fbpPerformanceYear={fbpPerformanceYear}\n feedbackPerformanceYear={feedbackPerformanceYear}\n isLoginEnabled={isLoginEnabled}\n performanceYear={performanceYear}\n showPhysicianCompareLink={showPhysicianCompareLink}\n showFacilityBasedPreviewLink={showFacilityBasedPreviewLink}\n />\n </ul>\n </nav>\n </HeaderContainer>\n <ImpersonatorBanner />\n </HeaderStateProvider>\n );\n};\n\nHeaderUI.propTypes = {\n fbpPerformanceYear: PropTypes.string,\n feedbackPerformanceYear: PropTypes.string,\n handleCancel: PropTypes.func,\n includeSkipToSidebar: PropTypes.bool,\n isDevPre: PropTypes.bool,\n isLoginEnabled: PropTypes.bool,\n performanceYear: PropTypes.number,\n showCancelButton: PropTypes.bool,\n showPhysicianCompareLink: PropTypes.bool,\n showFacilityBasedPreviewLink: PropTypes.bool,\n skipToContentId: PropTypes.string,\n RouterLink: PropTypes.func,\n isIESupportPage: PropTypes.bool,\n};\nHeaderUI.defaultProps = {\n fbpPerformanceYear: null,\n feedbackPerformanceYear: null,\n handleCancel: Function.prototype,\n includeSkipToSidebar: false,\n isDevPre: false,\n isLoginEnabled: true,\n performanceYear: 2017,\n showCancelButton: false,\n showPhysicianCompareLink: false,\n showFacilityBasedPreviewLink: false,\n skipToContentId: null,\n RouterLink: null,\n isIESupportPage: false,\n};\n\nexport default HeaderUI;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport cookie from 'cookie';\nimport jwtDecode from 'jwt-decode';\n\nimport { useHeaderState } from './hooks';\nimport { setUtagLink } from './utag-helpers';\nimport SessionDialogUI from '../SessionDialogUI';\nimport {\n performanceFeedbackUrl,\n physicianCompareUrl,\n dashboardUrl,\n manageUrl,\n submissionsUrl,\n facilityBasedPreviewUrl,\n} from '../SideNav/helpers';\nimport HeaderMenuItem from './HeaderMenuItem';\n\nconst HeaderAccountMenu = ({\n handleClick,\n fbpPerformanceYear,\n feedbackPerformanceYear,\n isLoginEnabled,\n isDevPre,\n performanceYear,\n showFacilityBasedPreviewLink,\n showPhysicianCompareLink,\n}) => {\n const cookies = cookie.parse(document.cookie);\n const hasAuthToken = cookies.hasOwnProperty('qpp_auth_token');\n const hasAuthorizations = cookies.qpp_has_authorizations === 'true';\n const hasNonRegistryAuthorizations =\n cookies.qpp_has_non_registry_authorizations === 'true';\n const isDevPreAndNotAuthenticated = !hasAuthToken && isDevPre;\n const { closeMenus, RouterLink } = useHeaderState();\n\n if (!isLoginEnabled || isDevPreAndNotAuthenticated) {\n return null;\n }\n\n // login link\n if (!hasAuthToken) {\n if (RouterLink) {\n return (\n <li onClick={handleClick} className=\"header-item-login login\">\n <RouterLink\n className=\"menu-link\"\n to=\"/login\"\n onClick={() => {\n closeMenus();\n setUtagLink('main navbar', 'click', '/login');\n }}\n data-track-category=\"TopNav\"\n data-track-action=\"click\"\n data-track-label=\"Sign In\"\n >\n <div className=\"nav-title\">Sign In</div>\n <div className=\"nav-description\">\n Manage Account <br />\n and Register\n </div>\n </RouterLink>\n </li>\n );\n }\n return (\n <li className=\"header-item-login login\">\n <a\n className=\"menu-link\"\n href=\"/login\"\n data-track-category=\"TopNav\"\n data-track-action=\"click\"\n data-track-label=\"Sign In\"\n onClick={() => {\n setUtagLink('main navbar', 'click', '/login');\n }}\n >\n <div className=\"nav-title\">Sign In</div>\n <div className=\"nav-description\">\n Manage Account <br />\n and Register\n </div>\n </a>\n </li>\n );\n }\n\n if (hasAuthToken) {\n const { firstName } = jwtDecode(cookies.qpp_auth_token);\n const additionalLinks = [];\n if (hasAuthorizations) {\n additionalLinks.push(\n { type: 'link', href: dashboardUrl, name: 'Eligibility & Reporting' },\n {\n type: 'link',\n href: performanceFeedbackUrl(\n feedbackPerformanceYear || performanceYear\n ),\n name: 'Performance Feedback',\n }\n );\n if (showPhysicianCompareLink && hasNonRegistryAuthorizations) {\n additionalLinks.push({\n type: 'link',\n href: physicianCompareUrl,\n name: 'Doctors & Clinicians Preview',\n });\n }\n if (showFacilityBasedPreviewLink) {\n additionalLinks.push({\n type: 'link',\n href: facilityBasedPreviewUrl(fbpPerformanceYear || performanceYear),\n name: 'Facility Based Preview',\n });\n }\n }\n const columns = [\n [\n {\n items: [\n { type: 'link', href: submissionsUrl, name: 'Account Home' },\n ...additionalLinks,\n { type: 'link', href: manageUrl, name: 'Manage Access' },\n { type: 'signout', name: 'Sign Out' },\n ],\n },\n ],\n ];\n const devPreColumns = [\n [{ items: [{ type: 'signout', name: 'Sign Out' }] }],\n ];\n return (\n <>\n <SessionDialogUI />\n <HeaderMenuItem\n hasMenu\n menuName=\"Login\"\n name={firstName}\n subtitle=\"My Account\"\n className=\"account-menu-item\"\n columns={isDevPre ? devPreColumns : columns}\n rows={isDevPre ? devPreColumns : columns}\n />\n </>\n );\n }\n};\n\nHeaderAccountMenu.propTypes = {\n isLoginEnabled: PropTypes.bool.isRequired,\n showPhysicianCompareLink: PropTypes.bool,\n showFacilityBasedPreviewLink: PropTypes.bool,\n performanceYear: PropTypes.number,\n fbpPerformanceYear: PropTypes.string,\n feedbackPerformanceYear: PropTypes.string,\n isDevPre: PropTypes.bool,\n handleClick: PropTypes.func.isRequired,\n};\n\nHeaderAccountMenu.defaultProps = {\n showPhysicianCompareLink: false,\n showFacilityBasedPreviewLink: false,\n performanceYear: 2017,\n fbpPerformanceYear: null,\n feedbackPerformanceYear: null,\n isDevPre: false,\n};\n\nexport default HeaderAccountMenu;\n","module.exports = require('./lib/retry');","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","import React, { Component } from 'react';\nimport { render } from 'react-dom';\nimport ReactModal from 'react-modal';\nimport { CloseXIcon } from '../../lib/SvgComponents.jsx';\nimport SanitizedContent from '../SanitizedContent';\nimport PropTypes from 'prop-types';\n\nclass Modal extends Component {\n constructor() {\n super();\n\n this.state = {\n showModal: true,\n };\n\n this.handleOpenModal = this.handleOpenModal.bind(this);\n this.handleCloseModal = this.handleCloseModal.bind(this);\n\n ReactModal.setAppElement('body > *:not(.ReactModalPortal)');\n }\n\n handleOpenModal() {\n this.setState({ showModal: true });\n }\n\n handleCloseModal() {\n this.setState({ showModal: false });\n }\n\n UNSAFE_componentWillReceiveProps(newProps) {\n this.setState({\n showModal: newProps.showModal,\n });\n }\n\n render() {\n return (\n <div>\n <ReactModal\n role=\"alertdialog\"\n contentLabel={this.props.contentLabel || 'Informational Modal Dialog'}\n isOpen={this.state.showModal}\n className=\"info-modal-content\"\n overlayClassName=\"info-modal-overlay\"\n onRequestClose={this.handleCloseModal}\n >\n <button\n className=\"closeModal\"\n aria-label=\"Close modal\"\n onClick={this.handleCloseModal}\n >\n <svg className=\"close-icon\" aria-hidden=\"true\">\n <CloseXIcon />\n </svg>\n </button>\n <SanitizedContent html={this.props.content} />\n </ReactModal>\n </div>\n );\n }\n}\n\nconst displayModal = ({ content, main }) => {\n render(<Modal content={content} showModal={true} />, main);\n};\n\nModal.propTypes = {\n contentLabel: PropTypes.string,\n content: PropTypes.string,\n};\n\nexport default displayModal;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n Modal.setCreateHTMLElement = function (fn) {\n return createHTMLElement = fn;\n };\n}\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\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';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \"<html /> (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","/**\n * xss\n *\n * @author Zongmin Lei<leizongmin@gmail.com>\n */\n\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar FilterXSS = require(\"./xss\");\n\n/**\n * filter xss function\n *\n * @param {String} html\n * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }\n * @return {String}\n */\nfunction filterXSS(html, options) {\n var xss = new FilterXSS(options);\n return xss.process(html);\n}\n\nexports = module.exports = filterXSS;\nexports.filterXSS = filterXSS;\nexports.FilterXSS = FilterXSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\nfor (var i in parser) exports[i] = parser[i];\n\n// using `xss` on the browser, output `filterXSS` to the globals\nif (typeof window !== \"undefined\") {\n window.filterXSS = module.exports;\n}\n\n// using `xss` on the WebWorker, output `filterXSS` to the globals\nfunction isWorkerEnv() {\n return (\n typeof self !== \"undefined\" &&\n typeof DedicatedWorkerGlobalScope !== \"undefined\" &&\n self instanceof DedicatedWorkerGlobalScope\n );\n}\nif (isWorkerEnv()) {\n self.filterXSS = module.exports;\n}\n","/**\n * cssfilter\n *\n * @author 老雷<leizongmin@gmail.com>\n */\n\nvar DEFAULT = require('./default');\nvar parseStyle = require('./parser');\nvar _ = require('./util');\n\n\n/**\n * 返回值是否为空\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull (obj) {\n return (obj === undefined || obj === null);\n}\n\n/**\n * 浅拷贝对象\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject (obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * 创建CSS过滤器\n *\n * @param {Object} options\n * - {Object} whiteList\n * - {Function} onAttr\n * - {Function} onIgnoreAttr\n * - {Function} safeAttrValue\n */\nfunction FilterCSS (options) {\n options = shallowCopyObject(options || {});\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onAttr = options.onAttr || DEFAULT.onAttr;\n options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n this.options = options;\n}\n\nFilterCSS.prototype.process = function (css) {\n // 兼容各种奇葩输入\n css = css || '';\n css = css.toString();\n if (!css) return '';\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onAttr = options.onAttr;\n var onIgnoreAttr = options.onIgnoreAttr;\n var safeAttrValue = options.safeAttrValue;\n\n var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {\n\n var check = whiteList[name];\n var isWhite = false;\n if (check === true) isWhite = check;\n else if (typeof check === 'function') isWhite = check(value);\n else if (check instanceof RegExp) isWhite = check.test(value);\n if (isWhite !== true) isWhite = false;\n\n // 如果过滤后 value 为空则直接忽略\n value = safeAttrValue(name, value);\n if (!value) return;\n\n var opts = {\n position: position,\n sourcePosition: sourcePosition,\n source: source,\n isWhite: isWhite\n };\n\n if (isWhite) {\n\n var ret = onAttr(name, value, opts);\n if (isNull(ret)) {\n return name + ':' + value;\n } else {\n return ret;\n }\n\n } else {\n\n var ret = onIgnoreAttr(name, value, opts);\n if (!isNull(ret)) {\n return ret;\n }\n\n }\n });\n\n return retCSS;\n};\n\n\nmodule.exports = FilterCSS;\n","/**\n * cssfilter\n *\n * @author 老雷<leizongmin@gmail.com>\n */\n\nvar _ = require('./util');\n\n\n/**\n * 解析style\n *\n * @param {String} css\n * @param {Function} onAttr 处理属性的函数\n * 参数格式: function (sourcePosition, position, name, value, source)\n * @return {String}\n */\nfunction parseStyle (css, onAttr) {\n css = _.trimRight(css);\n if (css[css.length - 1] !== ';') css += ';';\n var cssLength = css.length;\n var isParenthesisOpen = false;\n var lastPos = 0;\n var i = 0;\n var retCSS = '';\n\n function addNewAttr () {\n // 如果没有正常的闭合圆括号,则直接忽略当前属性\n if (!isParenthesisOpen) {\n var source = _.trim(css.slice(lastPos, i));\n var j = source.indexOf(':');\n if (j !== -1) {\n var name = _.trim(source.slice(0, j));\n var value = _.trim(source.slice(j + 1));\n // 必须有属性名称\n if (name) {\n var ret = onAttr(lastPos, retCSS.length, name, value, source);\n if (ret) retCSS += ret + '; ';\n }\n }\n }\n lastPos = i + 1;\n }\n\n for (; i < cssLength; i++) {\n var c = css[i];\n if (c === '/' && css[i + 1] === '*') {\n // 备注开始\n var j = css.indexOf('*/', i + 2);\n // 如果没有正常的备注结束,则后面的部分全部跳过\n if (j === -1) break;\n // 直接将当前位置调到备注结尾,并且初始化状态\n i = j + 1;\n lastPos = i + 1;\n isParenthesisOpen = false;\n } else if (c === '(') {\n isParenthesisOpen = true;\n } else if (c === ')') {\n isParenthesisOpen = false;\n } else if (c === ';') {\n if (isParenthesisOpen) {\n // 在圆括号里面,忽略\n } else {\n addNewAttr();\n }\n } else if (c === '\\n') {\n addNewAttr();\n }\n }\n\n return _.trim(retCSS);\n}\n\nmodule.exports = parseStyle;\n","/**\n * filter xss\n *\n * @author Zongmin Lei<leizongmin@gmail.com>\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar parseTag = parser.parseTag;\nvar parseAttr = parser.parseAttr;\nvar _ = require(\"./util\");\n\n/**\n * returns `true` if the input value is `undefined` or `null`\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * get attributes for a tag\n *\n * @param {String} html\n * @return {Object}\n * - {String} html\n * - {Boolean} closing\n */\nfunction getAttrs(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n return {\n html: \"\",\n closing: html[html.length - 2] === \"/\",\n };\n }\n html = _.trim(html.slice(i + 1, -1));\n var isClosing = html[html.length - 1] === \"/\";\n if (isClosing) html = _.trim(html.slice(0, -1));\n return {\n html: html,\n closing: isClosing,\n };\n}\n\n/**\n * shallow copy\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * FilterXSS class\n *\n * @param {Object} options\n * whiteList, onTag, onTagAttr, onIgnoreTag,\n * onIgnoreTagAttr, safeAttrValue, escapeHtml\n * stripIgnoreTagBody, allowCommentTag, stripBlankChar\n * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`\n */\nfunction FilterXSS(options) {\n options = shallowCopyObject(options || {});\n\n if (options.stripIgnoreTag) {\n if (options.onIgnoreTag) {\n console.error(\n 'Notes: cannot use these two options \"stripIgnoreTag\" and \"onIgnoreTag\" at the same time'\n );\n }\n options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;\n }\n\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onTag = options.onTag || DEFAULT.onTag;\n options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;\n options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;\n options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;\n this.options = options;\n\n if (options.css === false) {\n this.cssFilter = false;\n } else {\n options.css = options.css || {};\n this.cssFilter = new FilterCSS(options.css);\n }\n}\n\n/**\n * start process and returns result\n *\n * @param {String} html\n * @return {String}\n */\nFilterXSS.prototype.process = function (html) {\n // compatible with the input\n html = html || \"\";\n html = html.toString();\n if (!html) return \"\";\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onTag = options.onTag;\n var onIgnoreTag = options.onIgnoreTag;\n var onTagAttr = options.onTagAttr;\n var onIgnoreTagAttr = options.onIgnoreTagAttr;\n var safeAttrValue = options.safeAttrValue;\n var escapeHtml = options.escapeHtml;\n var cssFilter = me.cssFilter;\n\n // remove invisible characters\n if (options.stripBlankChar) {\n html = DEFAULT.stripBlankChar(html);\n }\n\n // remove html comments\n if (!options.allowCommentTag) {\n html = DEFAULT.stripCommentTag(html);\n }\n\n // if enable stripIgnoreTagBody\n var stripIgnoreTagBody = false;\n if (options.stripIgnoreTagBody) {\n var stripIgnoreTagBody = DEFAULT.StripTagBody(\n options.stripIgnoreTagBody,\n onIgnoreTag\n );\n onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;\n }\n\n var retHtml = parseTag(\n html,\n function (sourcePosition, position, tag, html, isClosing) {\n var info = {\n sourcePosition: sourcePosition,\n position: position,\n isClosing: isClosing,\n isWhite: whiteList.hasOwnProperty(tag),\n };\n\n // call `onTag()`\n var ret = onTag(tag, html, info);\n if (!isNull(ret)) return ret;\n\n if (info.isWhite) {\n if (info.isClosing) {\n return \"</\" + tag + \">\";\n }\n\n var attrs = getAttrs(html);\n var whiteAttrList = whiteList[tag];\n var attrsHtml = parseAttr(attrs.html, function (name, value) {\n // call `onTagAttr()`\n var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;\n var ret = onTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n\n if (isWhiteAttr) {\n // call `safeAttrValue()`\n value = safeAttrValue(tag, name, value, cssFilter);\n if (value) {\n return name + '=\"' + value + '\"';\n } else {\n return name;\n }\n } else {\n // call `onIgnoreTagAttr()`\n var ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n return;\n }\n });\n\n // build new tag html\n var html = \"<\" + tag;\n if (attrsHtml) html += \" \" + attrsHtml;\n if (attrs.closing) html += \" /\";\n html += \">\";\n return html;\n } else {\n // call `onIgnoreTag()`\n var ret = onIgnoreTag(tag, html, info);\n if (!isNull(ret)) return ret;\n return escapeHtml(html);\n }\n },\n escapeHtml\n );\n\n // if enable stripIgnoreTagBody\n if (stripIgnoreTagBody) {\n retHtml = stripIgnoreTagBody.remove(retHtml);\n }\n\n return retHtml;\n};\n\nmodule.exports = FilterXSS;\n","import React, { useRef, useState, useEffect } from 'react';\nimport ReactModal from 'react-modal';\nimport PropTypes from 'prop-types';\n\nimport { CloseXIcon2 } from '../../lib/SvgComponents.jsx';\n\nconst Modal = ({\n children,\n onRequestClose,\n title,\n primary,\n secondary,\n appElement,\n isOpen,\n ...props\n}) => {\n const [overflowSeparator, setOverflowSeparator] = useState(false);\n const closeButtonRef = useRef(null);\n const contentRef = useRef(null);\n\n useEffect(() => {\n ReactModal.setAppElement(appElement);\n }, []);\n\n return (\n <ReactModal\n onRequestClose={onRequestClose}\n portalClassName=\"qpp-c-modal\"\n className=\"qpp-c-modal__content\"\n overlayClassName=\"qpp-c-modal__overlay\"\n bodyOpenClassName=\"qpp-c-modal__body-open\"\n isOpen={isOpen}\n onAfterOpen={() => {\n // Add heading separator based on overflow\n if (\n contentRef.current?.scrollHeight >\n document.documentElement.clientHeight * 0.6\n ) {\n setOverflowSeparator(true);\n } else {\n setOverflowSeparator(false);\n }\n\n // Set default focus\n if (closeButtonRef?.current) {\n closeButtonRef.current.focus();\n }\n }}\n aria={{\n labelledby: 'modal-heading',\n describedby: 'modal-body',\n }}\n {...props}\n >\n <div\n className={`qpp-c-modal__header ${\n overflowSeparator ? 'qpp-c-modal__header-sep' : ''\n }`}\n >\n <h3 id=\"modal-heading\">{title}</h3>\n <button\n className=\"closex qpp-c-button qpp-c-button--text qpp-u-color--black\"\n aria-label=\"close modal\"\n data-testid=\"modal-close-btn\"\n onClick={onRequestClose}\n ref={closeButtonRef}\n >\n <CloseXIcon2 />\n </button>\n </div>\n <div\n id=\"modal-body\"\n className=\"qpp-c-modal__body\"\n ref={contentRef}\n tabIndex={overflowSeparator ? \"0\" : undefined}\n >\n {children}\n </div>\n {(primary || secondary) && (\n <div className=\"qpp-c-modal__footer\">\n {secondary && (\n <button\n className={`qpp-c-button qpp-c-button--secondary ${\n primary ? 'qpp-u-margin-right--16' : ''\n }`}\n loading={secondary.loading}\n onClick={secondary.onClick || onRequestClose}\n aria-label={secondary.title}\n data-testid=\"modal-secondary-btn\"\n >\n {secondary.title}\n </button>\n )}\n {primary && (\n <button\n className=\"qpp-c-button\"\n loading={primary.loading}\n onClick={primary.onClick}\n data-testid=\"modal-primary-btn\"\n aria-label={primary.title}\n >\n {primary.title}\n </button>\n )}\n </div>\n )}\n </ReactModal>\n );\n};\n\nModal.propTypes = {\n title: PropTypes.string,\n children: PropTypes.node.isRequired,\n primary: PropTypes.shape({\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n onClick: PropTypes.func,\n loading: PropTypes.bool,\n loadingText: PropTypes.string,\n }),\n secondary: PropTypes.shape({\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n onClick: PropTypes.func,\n loading: PropTypes.bool,\n loadingText: PropTypes.string,\n }),\n onRequestClose: PropTypes.func,\n appElement: PropTypes.string,\n isOpen: PropTypes.bool,\n};\n\nModal.defaultProps = {\n onRequestClose: () => {},\n title: undefined,\n primary: null,\n secondary: null,\n appElement: 'body > *:not(.qpp-c-modal)',\n isOpen: false,\n};\n\nexport default Modal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { submissionsUrl } from '../SideNav/helpers';\nimport { useHeaderState } from './hooks';\nimport { setUtagLink } from './utag-helpers';\n\n// exclude submissions urls\nconst isNotExcluded = (href) => !href.includes(submissionsUrl);\n\nconst HeaderMenuLink = ({ href, name }) => {\n const { RouterLink, closeMenus } = useHeaderState();\n if (RouterLink && isNotExcluded(href)) {\n return (\n <RouterLink\n to={href}\n onClick={() => {\n closeMenus();\n setUtagLink('main navbar', 'click', href);\n }}\n data-track-category=\"TopNav\"\n data-track-action=\"click\"\n data-track-label={name}\n className=\"nav-link\"\n >\n {name}\n </RouterLink>\n );\n }\n return (\n <a\n href={href}\n className=\"nav-link\"\n data-track-category=\"TopNav\"\n data-track-action=\"click\"\n data-track-label={name}\n onClick={() => {\n setUtagLink('main navbar', 'click', href);\n }}\n >\n {name}\n </a>\n );\n};\n\nHeaderMenuLink.propTypes = {\n href: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n};\n\nexport default HeaderMenuLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useHeaderState } from './hooks';\nimport NavigationButtonIcon from './NavigationButtonIcon';\nimport { setUtagLink } from './utag-helpers';\n\nconst HeaderMenuButton = ({ href, name }) => {\n const { RouterLink, closeMenus } = useHeaderState();\n if (RouterLink) {\n return (\n <RouterLink\n className=\"btn btn-navigation inverse-hover header-menu-btn\"\n to={href}\n onClick={() => {\n closeMenus();\n setUtagLink('main navbar', 'click', href);\n }}\n data-track-category=\"TopNav\"\n data-track-action=\"click\"\n data-track-label={name}\n >\n {name}\n <NavigationButtonIcon />\n </RouterLink>\n );\n }\n return (\n <a\n className=\"btn btn-navigation inverse-hover header-menu-btn\"\n href={href}\n data-track-category=\"TopNav\"\n data-track-action=\"click\"\n data-track-label={name}\n onClick={() => {\n setUtagLink('main navbar', 'click', href);\n }}\n >\n {name}\n <NavigationButtonIcon />\n </a>\n );\n};\n\nHeaderMenuButton.propTypes = {\n href: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n};\n\nexport default HeaderMenuButton;\n","import React from 'react';\n\nconst NavigationButtonIcon = () => (\n <svg\n className=\"btn-navigation-icon\"\n width=\"15px\"\n height=\"24px\"\n viewBox=\"0 0 15 24\"\n >\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g\n className=\"chevron-icon\"\n transform=\"translate(-20.000000, -114.000000)\"\n fillRule=\"nonzero\"\n >\n <g\n className=\"chevron-right\"\n transform=\"translate(20.000000, 114.000000)\"\n >\n <path d=\"M14.6682692,12.2740385 L3.96634615,22.9759615 C3.78365385,23.1586538 3.56730769,23.25 3.31730769,23.25 C3.06730769,23.25 2.85096154,23.1586538 2.66826923,22.9759615 L0.274038462,20.5817308 C0.0913461538,20.3990385 0,20.1826923 0,19.9326923 C0,19.6826923 0.0913461538,19.4663462 0.274038462,19.2836538 L7.93269231,11.625 L0.274038462,3.96634615 C0.0913461538,3.78365385 0,3.56730769 0,3.31730769 C0,3.06730769 0.0913461538,2.85096154 0.274038462,2.66826923 L2.66826923,0.274038462 C2.85096154,0.0913461538 3.06730769,0 3.31730769,0 C3.56730769,0 3.78365385,0.0913461538 3.96634615,0.274038462 L14.6682692,10.9759615 C14.8509615,11.1586538 14.9423077,11.375 14.9423077,11.625 C14.9423077,11.875 14.8509615,12.0913462 14.6682692,12.2740385 Z\"></path>\n </g>\n </g>\n </g>\n </svg>\n);\n\nexport default NavigationButtonIcon;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { LogoutSession } from '../../session';\nimport { setUtagLink } from './utag-helpers';\nimport Modal from '../Modal/index';\n\nconst useModal = () => {\n const [open, setOpen] = useState(false);\n const openModal = () => setOpen(true);\n const closeModal = () => setOpen(false);\n return [open, openModal, closeModal];\n};\n\nconst HeaderMenuSignOutButton = ({ name }) => {\n const [open, openModal, closeModal] = useModal();\n const showLogoutWarning = () => {\n LogoutSession(window);\n };\n return (\n <>\n <button\n className=\"signout-button\"\n aria-label=\"Sign out\"\n onClick={openModal}\n data-track-category=\"TopNav\"\n data-track-action=\"click\"\n data-track-label={name}\n >\n {name}\n </button>\n <Modal\n useDesignSystem\n isOpen={open}\n title=\"Sign out\"\n onRequestClose={closeModal}\n primary={{\n title: 'Sign me out now',\n onClick: () => {\n showLogoutWarning();\n setUtagLink('button', 'click', 'Sign me out now');\n },\n }}\n secondary={{\n title: 'Keep me signed in',\n onClick: () => {\n closeModal();\n setUtagLink('button', 'click', 'Keep me signed in');\n },\n }}\n >\n <p>Are you sure you want to sign out?</p>\n </Modal>\n </>\n );\n};\n\nHeaderMenuSignOutButton.propTypes = {\n name: PropTypes.string.isRequired,\n};\n\nexport default HeaderMenuSignOutButton;\n","import LogoutSession from './logout.js';\nimport RefreshSession from './refresh.js';\nimport fetchTtl from './ttl';\n\nexport { fetchTtl, LogoutSession, RefreshSession };\n","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Chevron } from '../../lib/Chevron.jsx';\n\nconst Accordion = (props) => {\n const content = useRef(null);\n const [setActive, setActiveState] = useState(props.isOpen ? 'active' : '');\n const ariaPressed = setActive ? 'true' : 'false';\n const getHeight = (node) => {\n if (node) {\n return `${node.scrollHeight}px`;\n }\n return 'auto';\n };\n const height = setActive ? getHeight(content.current) : '0px';\n const rotate = setActive ? 'accordion-icon rotate' : 'accordion-icon';\n\n function toggleAccordion() {\n setActiveState(setActive === '' ? 'active' : '');\n }\n\n function openAccordion() {\n setActiveState('active');\n }\n\n function closeAccordion() {\n setActiveState('');\n }\n\n useEffect(() => {\n if (props.isOpen) {\n openAccordion();\n } else {\n closeAccordion();\n }\n }, [props.isOpen]);\n\n return (\n <div className=\"accordion-section\" data-testid=\"accordion\">\n <button\n className={`accordion ${setActive}`}\n aria-label={props.title}\n aria-pressed={ariaPressed}\n aria-expanded={ariaPressed}\n tabIndex=\"0\"\n onClick={toggleAccordion}\n >\n <div className=\"accordion-left-title\">\n <p className=\"accordion-title\">{props.title}</p>\n {props.subTitle && (\n <p className=\"accordion-subtitle\">{props.subTitle}</p>\n )}\n </div>\n {props.centerItem && (\n <div className=\"accordion-center\">\n <p>{props.centerItem}</p>\n </div>\n )}\n {props.rightItem && (\n <div className=\"accordion-right\">\n <p>{props.rightItem}</p>\n </div>\n )}\n <div className=\"chevron-container\">\n <Chevron className={rotate} />\n </div>\n </button>\n <div\n ref={content}\n style={{ maxHeight: height }}\n className=\"accordion-content\"\n >\n <div className=\"accordion-text dashed-border\">{props.children}</div>\n </div>\n </div>\n );\n};\n\nAccordion.propTypes = {\n title: PropTypes.string.isRequired,\n subTitle: PropTypes.string,\n children: PropTypes.any.isRequired,\n centerItem: PropTypes.string,\n rightItem: PropTypes.string,\n isOpen: PropTypes.bool,\n};\n\nAccordion.defaultProps = {\n title: '',\n isOpen: false,\n};\n\nexport default Accordion;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst HeaderCancel = ({ handleCancel }) => {\n return (\n <button className=\"header-cancel\" onClick={handleCancel}>\n Cancel\n </button>\n );\n};\n\nHeaderCancel.propTypes = {\n handleCancel: PropTypes.func,\n};\n\nexport default HeaderCancel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport HeaderLogo from './HeaderLogo';\nimport NotificationBanner from '../NotificationBanner';\n\n/**\n * Accessibility enhancement that moves focus to an element for \"Skip\" links\n * @param {Object} e - The native JS event\n * @param {String} id - The HTML ID of the element to be focused\n */\nfunction jumpToLink(e, id) {\n e.preventDefault();\n document.getElementById(id).focus();\n}\n\nconst HeaderContainer = ({\n children,\n includeSkipToSidebar,\n showCancelButton,\n skipToContentId,\n isIESupportPage,\n}) => (\n <>\n <a\n className=\"skip\"\n onClick={(e) => jumpToLink(e, `${skipToContentId || 'mainContent'}`)}\n href={`#${skipToContentId || 'mainContent'}`}\n >\n Skip to content\n </a>\n {includeSkipToSidebar && (\n <a\n className=\"skip\"\n onClick={(e) => jumpToLink(e, 'qppSidebar')}\n href=\"#qppSidebar\"\n >\n Skip to sidebar\n </a>\n )}\n {!isIESupportPage && <NotificationBanner />}\n <header id=\"top\" className={showCancelButton ? 'show-cancel-button' : ''}>\n <HeaderLogo />\n {children}\n </header>\n </>\n);\n\nHeaderContainer.propTypes = {\n children: PropTypes.node.isRequired,\n includeSkipToSidebar: PropTypes.bool,\n showCancelButton: PropTypes.bool,\n skipToContentId: PropTypes.string,\n isIESupportPage: PropTypes.bool,\n};\nHeaderContainer.defaultProps = {\n includeSkipToSidebar: false,\n showCancelButton: false,\n skipToContentId: null,\n isIESupportPage: false,\n};\n\nexport default HeaderContainer;\n","import React from 'react';\n\nimport { useHeaderState } from './hooks';\n\nconst HeaderLogo = () => {\n const { closeMenus, RouterLink } = useHeaderState();\n if (RouterLink) {\n return (\n <RouterLink\n className=\"header-logo\"\n to=\"/\"\n onClick={closeMenus}\n data-track-category=\"HeaderNav\"\n data-track-action=\"OpenQPPHome\"\n data-track-label=\"Quality Payment Program\"\n >\n <img\n className=\"qpp-logo\"\n src=\"/images/qpp_logo_rgb_color.png\"\n alt=\"QPP logo\"\n />\n </RouterLink>\n );\n }\n return (\n <a\n className=\"header-logo\"\n href=\"/\"\n data-track-category=\"HeaderNav\"\n data-track-action=\"OpenQPPHome\"\n data-track-label=\"Quality Payment Program\"\n >\n <img\n className=\"qpp-logo\"\n src=\"/images/qpp_logo_rgb_color.png\"\n alt=\"QPP logo\"\n />\n </a>\n );\n};\n\nexport default HeaderLogo;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport SanitizedContent from '../SanitizedContent';\nimport { CloseXIcon, BellOutline } from '../../lib/SvgComponents.jsx';\nimport { withGetConfig } from '../hooks/useGetConfig';\n\nclass NotificationBanner extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n height: '100%',\n expanded: true,\n };\n\n this._renderCloseButton = this.renderCloseButton.bind(this);\n this._collapseNotification = this.collapseNotification.bind(this);\n this._expandNotification = this.expandNotification.bind(this);\n this._setBannerHeight = this.setBannerHeight.bind(this);\n }\n\n componentDidMount() {\n if (window.innerWidth <= 767) {\n this.setState({\n expanded: false,\n });\n }\n\n window.addEventListener('load', this._setBannerHeight);\n window.addEventListener('resize', this._setBannerHeight);\n }\n\n // Populate state with notification from localStorage\n componentDidUpdate(prevProps) {\n if (prevProps.result !== this.props?.result) {\n const { result: notifications } = this.props;\n if (Object.keys(notifications).length > 0) {\n this.setState({\n expanded: this.isNotificationExpanded(notifications.content),\n });\n }\n }\n }\n\n setBannerHeight() {\n const {\n result: {\n content: { content },\n },\n } = this.props;\n if (content) {\n this.bannerContainer.style.transition = 'none';\n\n this.state.expanded\n ? this.collapsedBanner.setAttribute('tabIndex', '-1')\n : this.collapsedBanner.setAttribute('tabIndex', ' ');\n\n this.setState({\n height: this.state.expanded\n ? '100%'\n : this.collapsedWrapper.offsetHeight + 'px',\n });\n }\n }\n\n isNotificationExpanded(notification) {\n const dateDismissed = new Date(notification.dateDismissed);\n const dateUpdated = new Date(notification.dateUpdated);\n const notDismissed =\n (this.isDateValid(dateUpdated) &&\n this.isDateValid(dateDismissed) &&\n dateUpdated >= dateDismissed) ||\n !this.isDateValid(dateDismissed);\n\n return notDismissed;\n }\n\n /**\n * Whether the date is valid, i.e. not null\n *\n * @param {Date} date\n * @return {Boolean}\n */\n isDateValid(date) {\n return !isNaN(Date.parse(date));\n }\n\n /**\n * Try to find this NotificationBanner instance in localStorage, or else add\n * a minimal version of it, and mark it with a dateDismissed, then update\n * localStorage.\n */\n markNotificationClosed() {\n const { result } = this.props;\n const dateDismissed = new Date().toISOString();\n const storageNotification = result || {};\n\n if (storageNotification && Object.keys(storageNotification).length > 0) {\n window.localStorage.setItem(\n 'notifications',\n JSON.stringify({\n ...storageNotification,\n content: {\n ...storageNotification.content,\n dateDismissed,\n },\n })\n );\n } else {\n window.localStorage.setItem(\n 'notifications',\n JSON.stringify({\n ...storageNotification,\n content: {\n name: 'header-notification',\n dateDismissed,\n },\n })\n );\n }\n }\n\n /**\n * Callback when the user dimisses a notification. Mark it as dismissed in\n * localStorage, empty the contents, and dispatch a custom event to notify\n * any observers that it has been dismissed.\n */\n collapseNotification(e) {\n e.stopPropagation();\n this.markNotificationClosed();\n this.collapsedBanner.setAttribute('tabIndex', ' ');\n this.bannerContainer.style.transition = 'height .2s ease-out';\n this.setState({\n expanded: false,\n height: this.collapsedWrapper.offsetHeight + 'px',\n });\n }\n\n expandNotification() {\n if (!this.state.expanded) {\n this.collapsedBanner.setAttribute('tabIndex', '-1');\n this.bannerContainer.style.transition = 'height .2s ease-out';\n this.setState({\n expanded: true,\n height: '100%',\n });\n }\n }\n\n /**\n * Renders the close button if the notification instance is dismissable.\n *\n * @return {String} HTML content\n */\n renderCloseButton() {\n const {\n result: {\n content: { dismissable },\n },\n } = this.props;\n if (dismissable) {\n return (\n <button\n onClick={this._collapseNotification}\n type=\"button\"\n className=\"notification-banner-close\"\n >\n <svg className=\"close-icon\" aria-hidden=\"true\" focusable=\"false\">\n <CloseXIcon />\n </svg>\n <span className=\"sr-only\">Close</span>\n </button>\n );\n } else {\n return '';\n }\n }\n\n /**\n * Render the notification if it has any contents.\n *\n * @return {String} HTML content\n */\n render() {\n const { expanded, height } = this.state;\n const { result: { content: { enabled, content } = {} } = {} } = this.props;\n if (!content || !enabled) {\n return <div id=\"notification-banner\" />;\n } else {\n const notificationStatus = expanded ? 'expanded' : 'collapsed';\n const { color = 'blue', label = 'Update' } = content;\n const className = `notification-banner notification-banner-${color} ${notificationStatus}`;\n\n return (\n <div\n style={{ height }}\n ref={(elem) => (this.bannerContainer = elem)}\n className={className}\n >\n <div\n ref={(elem) => (this.expandedWrapper = elem)}\n className={`notification-banner-wrapper expanded-view`}\n >\n <div className=\"notification-banner-label\">{label}</div>\n <div className=\"notification-banner-content\">\n <SanitizedContent\n html={expanded ? content : '<p>Nothing to see here</p>'}\n />\n </div>\n {expanded && this._renderCloseButton()}\n </div>\n\n <div\n ref={(elem) => (this.collapsedWrapper = elem)}\n className={`notification-banner-wrapper collapsed-view`}\n onClick={this._expandNotification}\n >\n <button\n ref={(elem) => (this.collapsedBanner = elem)}\n className={`notification-banner-label`}\n >\n {label}\n <span className=\"bell-icon\">\n <svg aria-hidden=\"true\" focusable=\"false\">\n <BellOutline />\n </svg>\n </span>\n </button>\n </div>\n </div>\n );\n }\n }\n}\n\nNotificationBanner.propTypes = {\n result: PropTypes.shape({\n content: PropTypes.shape({\n content: PropTypes.string,\n label: PropTypes.string,\n color: PropTypes.string,\n dismissable: PropTypes.bool,\n }),\n }),\n};\n\nNotificationBanner.defaultProps = {\n result: {\n content: {\n content: null,\n label: 'Update',\n color: 'blue',\n dismissable: true,\n },\n },\n};\n\nexport default withGetConfig(NotificationBanner, {\n timeout: 5,\n url: '/config/notification',\n localStorageName: 'active_notification',\n equalityCheckExclude: ['dateDismissed', 'dateUpdated'],\n defaultContent: {},\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CloseXIcon } from '../../lib/SvgComponents.jsx';\n\nconst HeaderMobileButton = ({ isMobileMenuExpanded, handleClick }) => (\n <button\n className=\"mobile-menu-btn-new\"\n type=\"button\"\n data-toggle=\"collapse\"\n data-target=\"#nav-mobile\"\n aria-label=\"Navigation menu\"\n aria-expanded={isMobileMenuExpanded ? 'true' : 'false'}\n aria-controls=\"nav-mobile\"\n onClick={handleClick}\n >\n {!isMobileMenuExpanded && (\n <div className=\"icon\">\n <span className=\"icon-bar\" />\n <span className=\"icon-bar\" />\n <span className=\"icon-bar\" />\n </div>\n )}\n {isMobileMenuExpanded && (\n <svg className=\"close-icon\" aria-hidden=\"true\">\n <CloseXIcon />\n </svg>\n )}\n <div className=\"toggle-text\">Menu</div>\n </button>\n);\n\nHeaderMobileButton.propTypes = {\n isMobileMenuExpanded: PropTypes.bool.isRequired,\n handleClick: PropTypes.func.isRequired,\n};\n\nexport default HeaderMobileButton;\n","import React from 'react';\nimport cookie from 'cookie';\nimport axios from 'axios';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { TextButton } from '../Button';\nimport { deleteImpersonatedUser, revertQppHasAuthsCookie } from '../../session/logout';\n\nconst ImpersonatorBanner = () => {\n const { qpp_auth_token: token = null, qpp_impersonated_user: user = null } =\n cookie.parse(document.cookie);\n\n const className = [\n 'qpp-u-display--flex',\n 'qpp-u-justify-content--between',\n 'qpp-u-fill--gold-20',\n 'qpp-u-padding-x--40',\n 'qpp-u-padding-y--24',\n 'qpp-u-font-size--14',\n 'qpp-u-color--gray-80',\n ].join(' ');\n\n const onClick = () => {\n const fn = () => { \n deleteImpersonatedUser({ qpp_impersonated_user: user });\n // Set qpp_has_authorizations cookie back to impersonator's value\n revertQppHasAuthsCookie();\n window.location.reload();\n };\n return axios\n .delete('/api/auth/users/impersonate', {\n headers: {\n Accept: 'application/vnd.qpp.cms.gov.v1+json',\n Authorization: `Bearer ${token}`,\n },\n })\n .then(fn, fn);\n };\n\n return (\n token &&\n user && (\n <div className={className}>\n <div>\n VIEW ONLY | You are currently impersonating HARP user:{' '}\n <strong>{user}</strong>\n </div>\n <TextButton onClick={onClick} className=\"qpp-u-color--gray-80\">\n Exit Impersonation Mode\n <CloseIcon />\n </TextButton>\n </div>\n )\n );\n};\n\nexport default ImpersonatorBanner;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","'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","/** @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","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst VARIANTS = ['secondary', 'outline', 'danger', 'white'];\nconst SIZES = ['big'];\n\nconst Button = ({\n children,\n className,\n href,\n loading,\n onClick,\n size,\n variant,\n type,\n ...rest\n}) => {\n let btnClass = 'qpp-c-button';\n\n if (VARIANTS.includes(variant)) {\n btnClass = btnClass.concat(' ', `qpp-c-button--${variant}`);\n }\n if (SIZES.includes(size)) {\n btnClass = btnClass.concat(' ', `qpp-c-button--${size}`);\n }\n if (className) {\n btnClass = btnClass.concat(' ', className);\n }\n\n if (href) {\n return (\n <a\n href={href}\n data-testid=\"ds-btn\"\n className={btnClass || ''}\n onClick={onClick}\n >\n {children}\n </a>\n );\n }\n return (\n <button\n data-testid=\"ds-btn\"\n className={btnClass || ''}\n onClick={onClick}\n disabled={loading}\n type={type}\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nButton.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n href: PropTypes.string,\n loading: PropTypes.bool,\n onClick: PropTypes.func,\n size: PropTypes.oneOf(SIZES),\n type: PropTypes.string,\n variant: PropTypes.oneOf(VARIANTS),\n};\n\nButton.defaultProps = {\n children: false,\n className: '',\n href: '',\n loading: false,\n onClick: () => null,\n size: null,\n type: 'button',\n variant: null,\n};\n\nexport const TextButton = ({ className = '', ...props }) => (\n <Button className={`qpp-c-button--text ${className}`} {...props} />\n);\n\nTextButton.propTypes = {\n className: PropTypes.string,\n};\n\nTextButton.defaultProps = {\n className: '',\n};\n\nexport default Button;\n","import React from 'react';\n\nconst HelpIcon = () => (\n <a\n className=\"header-help\"\n href=\"tel:1-866-288-8292\"\n data-track-category=\"MainContent\"\n data-track-action=\"CallQPPServiceCenter\"\n data-track-label=\"QPP Service Center Phone\"\n >\n <svg viewBox=\"0 0 28 28\" className=\"header-help-icon\">\n <path\n d=\"M23.9,5.9c0-0.6-0.2-1.1-0.6-1.5c-2.5-2.5-5.7-3.8-9.2-3.8S7.2,1.9,4.8,4.4c-0.4,0.4-0.6,1-0.6,1.5\n c0,0.4,0.1,0.8,0.3,1.1c-1.3,1.9-2,4.1-2,6.6v2.9c0,2.1,1.1,4,2.9,5.1c0,1.2,1,2.1,2.2,2.1c1.2,0,2.2-1,2.2-2.2v-6.5\n c0-1.2-1-2.2-2.2-2.2c-1.1,0-2,0.8-2.1,1.8H3.8v-1.1c0-2.1,0.6-4,1.7-5.6C5.8,8.1,6,8.1,6.3,8.1c0.6,0,1.1-0.2,1.5-0.6\n c1.6-1.6,3.8-2.5,6.2-2.5s4.5,0.9,6.2,2.5c0.4,0.4,1,0.6,1.5,0.6c0.3,0,0.5,0,0.7-0.1c1.1,1.6,1.7,3.6,1.7,5.6v1.1h-1.5\n c-0.2-1-1.1-1.8-2.1-1.8c-1.2,0-2.2,1-2.2,2.2v6.5c0,1.2,1,2.2,2.2,2.2c1.2,0,2.1-0.9,2.2-2.1c0.5-0.3,1-0.7,1.4-1.1\n c-0.1,1.2-0.4,2.4-0.9,3.5c-0.1,0.3-0.4,0.4-0.7,0.4h-4.3c-0.3-0.8-1.1-1.5-2-1.5h-1.5c-1.2,0-2.2,1-2.2,2.2s1,2.2,2.2,2.2h1.5\n c0.9,0,1.7-0.6,2-1.5h4.3c0.9,0,1.7-0.5,2-1.3c0.7-1.8,1.1-3.6,1.1-5.5v-5.5c0-2.4-0.8-4.7-2-6.6C23.8,6.7,23.9,6.3,23.9,5.9z\n M8.2,15.1v6.5c0,0.4-0.3,0.7-0.7,0.7c-0.4,0-0.7-0.3-0.7-0.7v-6.5c0-0.4,0.3-0.7,0.7-0.7C7.9,14.4,8.2,14.7,8.2,15.1z M5.3,19.9\n c-0.9-0.8-1.5-2-1.5-3.3v-0.4h1.5V19.9z M16.9,25.2c0,0.4-0.3,0.7-0.7,0.7h-1.5c-0.4,0-0.7-0.3-0.7-0.7s0.3-0.7,0.7-0.7h1.5\n C16.6,24.5,16.9,24.8,16.9,25.2z M19.8,21.6v-6.5c0-0.4,0.3-0.7,0.7-0.7s0.7,0.3,0.7,0.7v6.5c0,0.4-0.3,0.7-0.7,0.7\n S19.8,22,19.8,21.6z M22.7,16.2h1.5v0.4c0,1.3-0.5,2.5-1.5,3.3V16.2z M21.2,6.5c-1.9-1.9-4.5-3-7.2-3s-5.3,1.1-7.2,3\n c-0.3,0.3-0.8,0.3-1,0C5.7,6.3,5.6,6.1,5.6,5.9s0.1-0.4,0.2-0.5C8,3.2,10.9,2,14,2s6,1.2,8.2,3.4l0,0c0.1,0.1,0.2,0.3,0.2,0.5\n s-0.1,0.4-0.2,0.5C21.9,6.7,21.5,6.7,21.2,6.5z\"\n />\n </svg>\n <span>Help</span>\n </a>\n);\n\nexport default HelpIcon;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport { SideNavUI } from './UI';\n\nconst SideNav = (options = {}) => {\n const {\n rootElement,\n isExpanded,\n onExpanded,\n onCollapsed,\n chartData,\n currentLevel,\n config,\n feedbackPerformanceYear,\n fbpPerformanceYear,\n showDevPreDfpLink,\n showPhysicianCompareLink,\n showFacilityBasedPreviewLink,\n showSelfNomination,\n showApmIncentivePaymentLink,\n items,\n isAltStyle,\n showReportsPortal,\n showTargetedReviewLink,\n } = options;\n\n const { expand, collapse } = render(\n <SideNavUI\n isExpanded={isExpanded}\n onExpanded={onExpanded}\n onCollapsed={onCollapsed}\n chartData={chartData}\n currentLevel={currentLevel}\n config={config}\n feedbackPerformanceYear={feedbackPerformanceYear}\n fbpPerformanceYear={fbpPerformanceYear}\n showDevPreDfpLink={showDevPreDfpLink}\n showPhysicianCompareLink={showPhysicianCompareLink}\n showFacilityBasedPreviewLink={showFacilityBasedPreviewLink}\n showSelfNomination={showSelfNomination}\n showApmIncentivePaymentLink={showApmIncentivePaymentLink}\n items={items}\n isAltStyle={isAltStyle}\n showReportsPortal={showReportsPortal}\n showTargetedReviewLink={showTargetedReviewLink}\n />,\n rootElement\n );\n\n return { expand, collapse };\n};\n\nexport default SideNav;\n","import SideNavUI from './SideNavUI';\n\nexport { SideNavUI };\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport SVGInline from 'react-svg-inline';\n\nimport { withGetConfig } from '../../hooks/useGetConfig';\nimport { LevelOneContent, LevelTwoContent } from '../Content';\nimport {\n NavLinkContainer,\n NavLinkInline,\n NavLinkDrawer,\n NavLinkToggle,\n} from '../Links';\nimport AnimationGroup from '../AnimationGroup/AnimationGroup';\nimport { PracticeDetails, IndividualDetails } from '../Details';\nimport { ScoreChart } from '../Chart';\nimport SanitizedContent from '../../SanitizedContent';\nimport * as SvgComponents from '../../../lib/SvgComponents.jsx';\nimport SVGIcons from '../../../lib/svg-definitions.svg';\nimport CmsSwitchLink from '../Links/CmsSwitchLink';\nimport defaultContent from './default-content';\n\nconst SideNavUI = ({\n chartData,\n config,\n currentLevel,\n isAltStyle,\n isExpanded,\n items,\n onCollapsed,\n onExpanded,\n performanceYear,\n showReportingLinks,\n svgIcons,\n result,\n}) => {\n const [isExpandedState, setIsExpandedState] = useState(isExpanded);\n const [itemsState, setItemsState] = useState(items);\n const [currentLevelState, setCurrentLevelState] = useState(currentLevel);\n\n const collapseRef = useRef(null);\n\n const expand = () => {\n setIsExpandedState(true);\n if (onExpanded) {\n onExpanded();\n }\n };\n\n const collapse = () => {\n setIsExpandedState(false);\n if (onCollapsed) {\n onCollapsed();\n }\n };\n\n const toggleExpanded = () => {\n isExpandedState ? collapse() : expand();\n };\n\n const getLevelContent = () => {\n return (\n {\n 2: (\n <LevelTwoContent\n showReportingLinks={showReportingLinks}\n isExpanded={isExpandedState}\n chartData={chartData}\n config={config}\n />\n ),\n }[currentLevelState] || (\n <LevelOneContent\n levelOneContent={result?.content}\n isExpanded={isExpandedState}\n config={config}\n />\n )\n );\n };\n\n const getDynamicContent = (contentItems, className, recursionId) => {\n const { openDrawersByDefault, linkActiveFunc, linkCallback, useTooltips } =\n config;\n const linkClass = isExpandedState ? 'link-inline' : 'link-collapsed';\n const containerRecursionId = recursionId || 0;\n\n const getDynamicIcon = (icon) => {\n const Component = SvgComponents[icon];\n return Component ? <Component /> : null;\n };\n\n const hasDarkerBackground = (darkerBackground) => {\n return darkerBackground ? 'hr-smaller-vertical-spacing' : '';\n }\n\n const itemsMarkup = (contentItems || []).map((item, index) => {\n const key = `${JSON.stringify(item)}-${index}-${containerRecursionId}`;\n return (\n {\n divider: (\n <AnimationGroup display={isExpandedState} key={key} darkerBackground={item.darkerBackground}>\n <hr className={`${hasDarkerBackground(item.darkerBackground)}`}/>\n </AnimationGroup>\n ),\n container: getDynamicContent(\n item.items,\n item.className,\n containerRecursionId + 1\n ),\n linkBack: (\n <AnimationGroup display={isExpandedState} key={key}>\n <NavLinkInline\n className=\"link-back\"\n icon={getDynamicIcon('ChevronLeft')}\n url={item.url}\n label={item.label}\n linkCallback={linkCallback}\n showLabel={true}\n useTooltips={useTooltips}\n />\n </AnimationGroup>\n ),\n linkHome: (\n <AnimationGroup display={isExpandedState} key={key}>\n <NavLinkInline\n className=\"account-home-link\"\n icon={getDynamicIcon(item?.icon)}\n url={item.url}\n label={item.label}\n linkCallback={linkCallback}\n showLabel={true}\n useTooltips={useTooltips}\n />\n </AnimationGroup>\n ),\n practiceDetails: (\n <AnimationGroup\n display={isExpandedState}\n className={'details'}\n key={key}\n >\n <PracticeDetails\n practiceName={item.practiceName}\n {...(!item.practiceTin\n ? {}\n : { practiceTin: item.practiceTin })}\n {...(!item.apmEntityId\n ? {}\n : { apmEntityId: item.apmEntityId })}\n {...(!item.vgId ? {} : { vgId: item.vgId })}\n {...(!item.cpcPlusId ? {} : { cpcPlusId: item.cpcPlusId })}\n {...(!item.pcfId ? {} : { pcfId: item.pcfId })}\n />\n </AnimationGroup>\n ),\n individualDetails: (\n <AnimationGroup display={isExpandedState} key={key}>\n <IndividualDetails\n individualName={item.individualName}\n individualNpi={item.individualNpi}\n />\n </AnimationGroup>\n ),\n linkDrawer: (\n <NavLinkDrawer\n key={key}\n isExpanded={isExpandedState}\n isAlwaysOpen={item.isAlwaysOpen}\n openByDefault={openDrawersByDefault}\n rightIcon=\"chevron-down\"\n leftIcon={getDynamicIcon(item?.icon)}\n className={linkClass}\n label={item.label}\n linkActiveFunc={linkActiveFunc}\n linkCallback={linkCallback}\n listOfLinks={item.items}\n url={item.url}\n sidebarExpand={expand}\n isHighlighted={item.isHighlighted}\n darkerBackground={item.darkerBackground}\n leftBorderHighlightDisabled={item.leftBorderHighlightDisabled}\n largerDrawerBottomPadding={item.largerDrawerBottomPadding}\n />\n ),\n custom: (\n <AnimationGroup display={isExpandedState} key={key}>\n <SanitizedContent\n html={item.content}\n customClassName={item.customClassName}\n />\n </AnimationGroup>\n ),\n chart: (\n <AnimationGroup display={isExpandedState} key={key}>\n <ScoreChart\n chartData={item.chartData}\n linkCallback={linkCallback}\n performanceYear={performanceYear}\n />\n </AnimationGroup>\n ),\n switchLink: (\n <AnimationGroup display={isExpandedState} key={key}>\n <CmsSwitchLink\n linkCallback={linkCallback}\n label={item.label}\n url={item.url}\n />\n </AnimationGroup>\n ),\n }[item.type] || (\n <NavLinkInline\n key={key}\n icon={getDynamicIcon(item?.icon)}\n className={item.className ? item.className : linkClass}\n url={item.url}\n label={item.label}\n linkCallback={linkCallback}\n showLabel={isExpandedState}\n disabled={item.disabled}\n useTooltips={useTooltips}\n target={item.target}\n />\n )\n );\n });\n\n if (className === 'link-container') {\n return (\n <div\n className=\"animation-flat\"\n key={`nav-link-container-${recursionId}`}\n >\n <NavLinkContainer\n listOfLinks={itemsMarkup}\n linkActiveFunc={linkActiveFunc}\n />\n </div>\n );\n } else {\n return <div className={className}>{itemsMarkup}</div>;\n }\n };\n\n const content = itemsState\n ? getDynamicContent(\n itemsState,\n 'sidebar-content' + (isAltStyle ? ' alt-style' : '')\n )\n : getLevelContent();\n\n useEffect(() => {\n setIsExpandedState(isExpanded);\n }, [isExpanded]);\n\n useEffect(() => {\n setCurrentLevelState(currentLevel);\n }, [currentLevel]);\n\n useEffect(() => {\n setItemsState(items);\n }, [items]);\n\n return (\n <aside\n id=\"qppSidebar\"\n tabIndex=\"-1\"\n className={`${isExpandedState ? 'sidebar' : 'sidebar closed'} sidebar-${\n config.navClassName\n }`}\n >\n <SVGInline svg={svgIcons} />\n {content}\n <NavLinkToggle\n isAltStyle={isAltStyle}\n collapseRef={collapseRef}\n isExpanded={isExpandedState}\n onClick={toggleExpanded}\n />\n </aside>\n );\n};\n\nSideNavUI.propTypes = {\n currentLevel: PropTypes.number,\n isExpanded: PropTypes.bool,\n onExpanded: PropTypes.func,\n onCollapsed: PropTypes.func,\n chartData: PropTypes.object,\n config: PropTypes.object,\n items: PropTypes.object,\n isAltStyle: PropTypes.bool,\n showReportingLinks: PropTypes.bool,\n performanceYear: PropTypes.string,\n svgIcons: PropTypes.string,\n result: PropTypes.shape({\n content: PropTypes.shape({\n default: PropTypes.arrayOf(PropTypes.object),\n devPre: PropTypes.arrayOf(PropTypes.object),\n internalReviewers: PropTypes.arrayOf(PropTypes.object),\n viewer: PropTypes.arrayOf(PropTypes.object),\n }),\n }),\n};\n\nSideNavUI.defaultProps = {\n currentLevel: 1,\n isExpanded: true,\n onExpanded: () => {},\n onCollapsed: () => {},\n chartData: {},\n config: {},\n items: null,\n isAltStyle: false,\n showReportingLinks: false,\n performanceYear: '2017',\n svgIcons: SVGIcons,\n result: {\n content: {\n default: [],\n devPre: [],\n internalReviewers: [],\n viewer: [],\n },\n },\n};\n\nexport default withGetConfig(SideNavUI, {\n timeout: 5,\n url: '/config/side-navigation',\n localStorageName: 'qpp_side_navigation',\n defaultContent,\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _classnames = require(\"classnames\");\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// import styles from \"./styles\"\n\nvar cleanups = {\n // some useless stuff for us\n // that svgo doesn't remove\n title: /<title>.*<\\/title>/gi,\n desc: /<desc>.*<\\/desc>/gi,\n comment: /<!--.*-->/gi,\n defs: /<defs>.*<\\/defs>/gi,\n\n // remove hardcoded dimensions\n width: / +width=\"\\d+(\\.\\d+)?(px)?\"/gi,\n height: / +height=\"\\d+(\\.\\d+)?(px)?\"/gi,\n\n // remove fill\n fill: / +fill=\"(none|#[0-9a-f]+)\"/gi,\n\n // Sketch.app shit\n sketchMSShapeGroup: / +sketch:type=\"MSShapeGroup\"/gi,\n sketchMSPage: / +sketch:type=\"MSPage\"/gi,\n sketchMSLayerGroup: / +sketch:type=\"MSLayerGroup\"/gi\n};\n\n// @styled(styles)\n\nvar SVGInline = function (_Component) {\n _inherits(SVGInline, _Component);\n\n function SVGInline() {\n _classCallCheck(this, SVGInline);\n\n return _possibleConstructorReturn(this, (SVGInline.__proto__ || Object.getPrototypeOf(SVGInline)).apply(this, arguments));\n }\n\n _createClass(SVGInline, [{\n key: \"render\",\n value: function render() {\n var _props = this.props,\n className = _props.className,\n component = _props.component,\n svg = _props.svg,\n fill = _props.fill,\n width = _props.width,\n accessibilityLabel = _props.accessibilityLabel,\n accessibilityDesc = _props.accessibilityDesc,\n classSuffix = _props.classSuffix,\n cleanupExceptions = _props.cleanupExceptions,\n componentProps = _objectWithoutProperties(_props, [\"className\", \"component\", \"svg\", \"fill\", \"width\", \"accessibilityLabel\", \"accessibilityDesc\", \"classSuffix\", \"cleanupExceptions\"]);\n\n var _props2 = this.props,\n cleanup = _props2.cleanup,\n height = _props2.height;\n\n\n if (\n // simple way to enable entire cleanup\n cleanup === true ||\n // passing cleanupExceptions enable cleanup as well\n cleanup.length === 0 && cleanupExceptions.length > 0) {\n cleanup = Object.keys(cleanups);\n }\n cleanup = cleanup.filter(function (key) {\n return !(cleanupExceptions.indexOf(key) > -1);\n });\n\n if (width && height === undefined) {\n height = width;\n }\n\n // remove useless props for wrapper\n delete componentProps.cleanup;\n delete componentProps.height;\n\n var classes = (0, _classnames2.default)(_defineProperty({\n SVGInline: true,\n \"SVGInline--cleaned\": cleanup.length\n }, className, className));\n var svgClasses = classes.split(\" \").join(classSuffix + \" \") + classSuffix;\n var svgStr = SVGInline.cleanupSvg(svg, cleanup).replace(/<svg/, \"<svg class=\\\"\" + svgClasses + \"\\\"\" + (fill ? \" fill=\\\"\" + fill + \"\\\"\" : \"\") + (width || height ? ' style=\"' + (width ? \"width: \" + width + \";\" : \"\") + (height ? \"height: \" + height + \";\" : \"\") + '\"' : \"\"));\n var match = void 0;\n if (accessibilityDesc) {\n match = /<svg(.|\\n|\\r\\n)*?>/.exec(svgStr);\n var pos = match.index + match[0].length;\n svgStr = svgStr.substr(0, pos) + (\"<desc>\" + accessibilityDesc + \"</desc>\") + svgStr.substr(pos);\n }\n if (accessibilityLabel) {\n match = match || /<svg(.|\\n|\\r\\n)*?>/.exec(svgStr);\n var _pos = match.index + match[0].length - 1;\n var id = \"SVGInline-\" + SVGInline.idCount++ + \"-title\";\n svgStr = svgStr.substr(0, _pos) + (\" role=\\\"img\\\" aria-labelledby=\\\"\" + id + \"\\\"\") + svgStr.substr(_pos, 1) + (\"<title id=\\\"\" + id + \"\\\">\" + accessibilityLabel + \"</title>\") + svgStr.substr(_pos + 1);\n }\n return _react2.default.createElement(component, _extends({}, componentProps, { // take most props\n className: classes,\n dangerouslySetInnerHTML: {\n __html: svgStr\n }\n }));\n }\n }]);\n\n return SVGInline;\n}(_react.Component);\n\nSVGInline.propTypes = {\n className: _propTypes2.default.string,\n classSuffix: _propTypes2.default.string,\n component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n svg: _propTypes2.default.string.isRequired,\n fill: _propTypes2.default.string,\n cleanup: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.array]),\n cleanupExceptions: _propTypes2.default.array,\n width: _propTypes2.default.string,\n height: _propTypes2.default.string,\n accessibilityLabel: _propTypes2.default.string,\n accessibilityDesc: _propTypes2.default.string\n};\n\nSVGInline.defaultProps = {\n component: \"span\",\n classSuffix: \"-svg\",\n cleanup: [],\n cleanupExceptions: []\n};\n\nSVGInline.idCount = 0;\n\nSVGInline.cleanupSvg = function (svg) {\n var cleanup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n return Object.keys(cleanups).filter(function (key) {\n return cleanup.indexOf(key) > -1;\n }).reduce(function (acc, key) {\n return acc.replace(cleanups[key], \"\");\n }, svg).trim();\n};\n\nexports.default = SVGInline;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import LevelOneContent from './LevelOneContent';\nimport LevelTwoContent from './LevelTwoContent';\n\nexport { LevelOneContent, LevelTwoContent };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport cookie from 'cookie';\nimport jwtDecode from 'jwt-decode';\n\nimport { NavLinkContainer, NavLinkInline, NavLinkDrawer } from '../Links';\nimport AnimationGroup from '../AnimationGroup/AnimationGroup';\nimport defaultContent from '../UI/default-content';\nimport {\n AccountHomeIcon,\n DashboardIcon,\n FacilityBasedPreviewIcon,\n HardshipIcon,\n HelpSupportIcon,\n ManageUsersIcon,\n MyApplicationsIcon,\n MyTestDataIcon,\n PaymentIcon,\n PhysicianCompareIcon,\n StarIcon,\n TargetIcon,\n IndividualReporting,\n} from '../../../lib/SvgComponents';\nimport {\n dashboardUrl,\n facilityBasedPreviewBaseUrl,\n feedbackUrl,\n manageUrl,\n physicianCompareUrl,\n reportsPortalUrl,\n submissionsUrl,\n} from '../helpers';\n\nconst getIcon = (url) =>\n ({\n [dashboardUrl]: DashboardIcon,\n [feedbackUrl]: StarIcon,\n [manageUrl]: ManageUsersIcon,\n [physicianCompareUrl]: PhysicianCompareIcon,\n [reportsPortalUrl]: HardshipIcon,\n [submissionsUrl]: AccountHomeIcon,\n [facilityBasedPreviewBaseUrl]: FacilityBasedPreviewIcon,\n '/developers': HelpSupportIcon,\n '/resources/help-and-support': HelpSupportIcon,\n '/user/apm-incentive-payments': PaymentIcon,\n '/user/applications': MyApplicationsIcon,\n '/user/exception/#/landing': HardshipIcon,\n '/user/targeted-review/#/landing': TargetIcon,\n '/user/test-data': MyTestDataIcon,\n '/user/self-nomination/#/landing': IndividualReporting,\n '/user/reviewers': DashboardIcon,\n '/reviewer/exception': HardshipIcon,\n '/reviewer/targeted-review': TargetIcon,\n '/self-nomination': IndividualReporting,\n }[url] || null);\n\nconst LevelOneContent = ({\n isExpanded,\n config: { linkCallback, useTooltips } = {},\n levelOneContent,\n}) => {\n let {\n qpp_has_authorizations,\n user_has_apm_payments,\n qpp_is_dev_pre,\n qpp_ehr_authorized,\n qpp_has_non_registry_authorizations,\n qpp_auth_token,\n qpp_cms_internal_authorized,\n qpp_can_impersonate,\n } = cookie.parse(document.cookie);\n\n let name = '';\n if (qpp_auth_token) {\n const { firstName, lastName } = jwtDecode(qpp_auth_token);\n name = `${firstName} ${lastName}`;\n }\n\n const canImpersonate = qpp_can_impersonate === 'true';\n const hasAuthorizations = qpp_has_authorizations === 'true';\n const hasApmPayments = user_has_apm_payments === 'true';\n const isDevPre = qpp_is_dev_pre === 'true';\n const internalReviewerNames = JSON.parse(\n qpp_cms_internal_authorized || 'null'\n );\n const ehrAuthorized = qpp_ehr_authorized === 'true';\n const hasNonRegistryAuthorizations =\n qpp_has_non_registry_authorizations === 'true';\n\n const linkClass = isExpanded ? 'link-inline' : 'link-collapsed';\n let content = isDevPre ? levelOneContent?.devPre : levelOneContent?.default;\n if (\n (internalReviewerNames || []).some(\n (name) =>\n name === 'QPP Self-Nomination' ||\n name === 'QPP Targeted Review & Exceptions'\n )\n ) {\n content =\n levelOneContent?.internalReviewers || defaultContent.internalReviewers;\n }\n\n // Mapping side nav link urls to the conditions that determine their inclusion in the side nav\n const urlConditionMap = {\n [dashboardUrl]: hasAuthorizations,\n [feedbackUrl]: hasAuthorizations,\n '/user/apm-incentive-payments': hasApmPayments,\n [physicianCompareUrl]: hasNonRegistryAuthorizations,\n [reportsPortalUrl]: hasAuthorizations,\n [facilityBasedPreviewBaseUrl]: hasAuthorizations,\n '/user/impersonate': canImpersonate,\n\n '/reviewer/exception': (internalReviewerNames || []).includes(\n 'QPP Targeted Review & Exceptions'\n ),\n '/reviewer/targeted-review': (internalReviewerNames || []).includes(\n 'QPP Targeted Review & Exceptions'\n ),\n '/self-nomination': (internalReviewerNames || []).includes(\n 'QPP Self-Nomination'\n ),\n\n // dev pre\n '/user/applications': ehrAuthorized,\n '/user/test-data': ehrAuthorized,\n };\n\n const navLinks = content.reduce((acc, link) => {\n const { url, label, className, listOfLinks, ...rest } = link;\n\n // Any links failing the corresponding condition in the urlConditionMap are skipped\n if (url in urlConditionMap && !urlConditionMap[url]) {\n return acc;\n }\n\n const IconComponent = getIcon(url);\n const Icon = IconComponent ? <IconComponent /> : null;\n const sharedProps = {\n url,\n label,\n linkCallback,\n className: className ? `${linkClass} ${className}` : linkClass,\n };\n\n const { pathname, hash } = window.location;\n const filteredListOfLinks = (listOfLinks || []).filter((sublink) => {\n return !(sublink.url in urlConditionMap && !urlConditionMap[sublink.url]);\n });\n if (\n filteredListOfLinks?.length > 0 &&\n (pathname === url ||\n filteredListOfLinks.some(\n (sublink) =>\n pathname === sublink.url || `${pathname}${hash}` === sublink.url\n ))\n ) {\n acc.push(\n <NavLinkDrawer\n key={`nav-drawer-${url}-${label}`}\n leftIcon={Icon}\n listOfLinks={filteredListOfLinks}\n isExpanded={isExpanded}\n staticDrawer={false}\n openByDefault\n isAlwaysOpen\n {...sharedProps}\n {...rest}\n />\n );\n } else {\n acc.push(\n <NavLinkInline\n key={`nav-link-${url}-${label}`}\n icon={Icon}\n useTooltips={useTooltips}\n showLabel={isExpanded}\n {...sharedProps}\n {...rest}\n />\n );\n }\n return acc;\n }, []);\n\n return (\n <div className=\"sidebar-content\">\n <AnimationGroup display={isExpanded}>\n <h1 className=\"label\">{name}</h1>\n </AnimationGroup>\n <div className=\"level-one-nav animation-flat\">\n <NavLinkContainer listOfLinks={navLinks} />\n </div>\n </div>\n );\n};\n\nLevelOneContent.propTypes = {\n isExpanded: PropTypes.bool,\n config: PropTypes.object,\n levelOneContent: PropTypes.shape({\n default: PropTypes.arrayOf(PropTypes.object),\n devPre: PropTypes.arrayOf(PropTypes.object),\n viewer: PropTypes.arrayOf(PropTypes.object),\n internalReviewers: PropTypes.arrayOf(PropTypes.object),\n }),\n};\n\nexport default LevelOneContent;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nconst NavLinkContainer = ({ listOfLinks, linkActiveFunc }) => {\n const [activeLink, setActiveLink] = useState(null);\n\n const toggleActive = (idx, disabled) => {\n if (disabled || linkActiveFunc) return;\n setActiveLink(idx);\n };\n\n return (\n <nav>\n <ul>\n {(listOfLinks || []).map((link, idx) => (\n <li\n key={idx.toString()}\n onClick={() => toggleActive(idx, link.props.disabled)}\n >\n {React.cloneElement(link, { isActive: activeLink === idx })}\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n\nNavLinkContainer.propTypes = {\n listOfLinks: PropTypes.array,\n linkActiveFunc: PropTypes.func,\n};\n\nNavLinkContainer.defaultProps = {\n listOfLinks: null,\n linkActiveFunc: null,\n};\n\nexport default NavLinkContainer;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { handleNavigation } from '../helpers';\nimport AnimationGroup from '../AnimationGroup/AnimationGroup';\n\nconst NavLinkDrawer = ({\n className,\n disabled,\n isAlwaysOpen,\n isExpanded,\n items,\n label,\n leftIcon,\n linkActiveFunc,\n linkCallback,\n listOfLinks,\n openByDefault,\n rightIcon,\n sidebarExpand,\n staticDrawer,\n url,\n isHighlighted,\n darkerBackground,\n leftBorderHighlightDisabled,\n largerDrawerBottomPadding\n}) => {\n const [isOpen, setIsOpen] = useState(openByDefault);\n\n const toggleDrawer = () => {\n if (!isExpanded && typeof sidebarExpand === 'function') {\n sidebarExpand();\n setIsOpen(true);\n return;\n }\n\n if (!isAlwaysOpen && !disabled) {\n setIsOpen(!isOpen);\n }\n };\n\n const isLinkActive = (link, func) => {\n if (typeof func === 'function') {\n return func(link);\n }\n return window.location.href.indexOf(link.url) > 0;\n };\n\n const isCurrentPage = (link, linkActiveFunc) => {\n const targetItems = link.items || link.listOfLinks;\n if (link.url && isLinkActive(link, linkActiveFunc)) {\n return true;\n }\n return (\n targetItems &&\n targetItems.some((item) => isCurrentPage(item, linkActiveFunc))\n );\n };\n\n const buildLeftIconClasses = () => {\n let leftIcon = `left-icon`;\n \n if (isAlwaysOpen) {\n leftIcon += ` always-open`;\n }\n\n if (isHighlighted) {\n leftIcon += ' fill-white';\n }\n\n return leftIcon;\n }\n\n // Classes for the link drawer button\n const currentPage = isCurrentPage(\n { items, listOfLinks, url },\n linkActiveFunc\n );\n const expandedClass = currentPage ? 'expanded' : '';\n\n const renderLeftIcon = (leftIcon) => {\n if (leftIcon) {\n return (<svg\n className={`${buildLeftIconClasses()}`}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {leftIcon}\n </svg>)\n }\n }\n\n const hasDarkerBackground = (darkerBackground) => {\n return darkerBackground ? 'background-highlight' : '';\n }\n\n const hasDarkerTitle = (darkerBackground) => {\n return darkerBackground ? 'expanded currentPage' : '';\n }\n\n const isLeftBorderHighlightDisabled = (leftBorderHighlightDisabled) => {\n return leftBorderHighlightDisabled ? 'left-border-disabled' : ''\n }\n\n const isHiddenWhileCollapsed = (isLeftBorderDisabled, isExpanded) => {\n return isLeftBorderDisabled && !isExpanded ? 'hidden-nav-link-item' : '';\n }\n\n const highlightTitle = (isHighlighted) => {\n return isHighlighted && isExpanded ? 'highlight' : '';\n }\n\n const hasLargerDrawBottomPadding = (largerDrawerBottomPadding) => {\n return largerDrawerBottomPadding ? 'larger-drawer-bottom-padding' : '';\n }\n\n const adjustItemSpacing = (largerDrawerBottomPadding) => {\n return largerDrawerBottomPadding ? 'larger-item-spacing' : '';\n }\n\n useEffect(() => {\n if (disabled) {\n setIsOpen(false);\n }\n if (isAlwaysOpen) {\n setIsOpen(isAlwaysOpen);\n }\n }, []);\n\n // Render the links recursively. This will theoretically allow for an infinite number of nested link items.\n // className will either be empty, parent-link - top most node, or child-link.\n const renderDrawerLinksRecursively = (navLinks, className = '') => {\n return (\n navLinks &&\n navLinks.map((link) => {\n if (link.type === 'divider') {\n return (\n <AnimationGroup display={true}>\n <hr />\n </AnimationGroup>\n );\n }\n\n return (\n <li\n key={link.label}\n className={\n isLinkActive(link, linkActiveFunc)\n ? `active-link ${className}`\n : className\n }\n >\n {link.url ? (\n <a\n href={link.url}\n onClick={(e) => handleNavigation(e, linkCallback, link.label)}\n tabIndex={isOpen ? '0' : '-1'}\n data-track-category=\"SidebarNav\"\n data-track-action={`GoTo${\n link.label ? link.label.split(' ').join('') : ''\n }`}\n data-track-label={link.label}\n target=\"_self\"\n >\n {link.label}\n </a>\n ) : (\n <div>{link.label}</div>\n )}\n {link.items && link.items.length > 0 && (\n <ul aria-hidden={!isOpen}>\n {renderDrawerLinksRecursively(link.items, 'child-link')}\n </ul>\n )}\n </li>\n );\n })\n );\n };\n\n return (\n <div className={staticDrawer ? 'static-drawer link-drawer' : 'link-drawer'}>\n <button\n onClick={toggleDrawer}\n {...(!isAlwaysOpen ? { 'aria-pressed': isOpen } : {})}\n tabIndex=\"0\"\n aria-label={label}\n {...(isAlwaysOpen || disabled\n ? { disabled: isAlwaysOpen || disabled }\n : {})}\n className={`${className} ${expandedClass} ${highlightTitle(isHighlighted)} ${hasDarkerTitle(darkerBackground)}\n ${currentPage ? 'currentPage' : ''} ${isLeftBorderHighlightDisabled(leftBorderHighlightDisabled)}\n ${isHiddenWhileCollapsed(leftBorderHighlightDisabled, isExpanded)}`}\n >\n <div className={isExpanded ? 'link-body' : 'link-body collapsed'}>\n {renderLeftIcon(leftIcon)}\n <AnimationGroup display={isExpanded}>\n <span>{label}</span>\n </AnimationGroup>\n </div>\n {isExpanded && !isAlwaysOpen && (\n <svg\n className={`${isOpen ? 'right-icon rotated' : 'right-icon'}`}\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n {rightIcon}\n </svg>\n )}\n </button>\n <AnimationGroup display={isExpanded}>\n <div\n className={`${currentPage ? 'currentPage' : ''} ${\n isOpen && !disabled ? 'drawer open' : 'drawer'\n } ${hasDarkerBackground(darkerBackground)} ${hasLargerDrawBottomPadding(largerDrawerBottomPadding)}`}\n >\n <ul aria-hidden={!isOpen}>\n {listOfLinks &&\n renderDrawerLinksRecursively(listOfLinks, `parent-link ${adjustItemSpacing(largerDrawerBottomPadding)}`)}\n </ul>\n </div>\n </AnimationGroup>\n </div>\n );\n};\n\nNavLinkDrawer.propTypes = {\n isExpanded: PropTypes.bool,\n isAlwaysOpen: PropTypes.bool,\n openByDefault: PropTypes.bool,\n className: PropTypes.string,\n rightIcon: PropTypes.element,\n leftIcon: PropTypes.element,\n label: PropTypes.string,\n linkActiveFunc: PropTypes.func,\n linkCallback: PropTypes.func,\n listOfLinks: PropTypes.array,\n disabled: PropTypes.bool,\n sidebarExpand: PropTypes.func,\n staticDrawer: PropTypes.bool,\n items: PropTypes.object,\n url: PropTypes.string,\n isHighlighted: PropTypes.bool,\n darkerBackground: PropTypes.bool,\n leftBorderHighlightDisabled: PropTypes.bool,\n largerDrawerBottomPadding: PropTypes.bool\n};\n\nexport default NavLinkDrawer;\n","import React, { useState } from 'react';\nimport { handleNavigation } from '../helpers';\nimport AnimationGroup from '../AnimationGroup/AnimationGroup';\nimport PropTypes from 'prop-types';\n\nconst NavLinkInline = ({\n url,\n urlExpressionToMatch,\n className,\n icon,\n label,\n isActive,\n showLabel,\n linkCallback,\n disabled,\n useTooltips,\n target,\n}) => {\n const localUrl = urlExpressionToMatch || url;\n const urlRegExp = new RegExp(`${localUrl}/?$`);\n const path = window.location.href && window.location.href.split('?')[0];\n const currentPage = path && path.match(urlRegExp);\n const svgRef = React.useRef();\n const [showTooltip, setShowTooltip] = useState(false);\n const tooltipRef = React.useRef();\n\n React.useEffect(() => {\n if (!showLabel && useTooltips && svgRef.current) {\n const existingMouseenter = svgRef.current.onmouseover;\n const existingMouseout = svgRef.current.onmouseout;\n\n svgRef.current.onmouseover = () => {\n if (tooltipRef.current && useTooltips) {\n const svgOffset = svgRef.current.getBoundingClientRect();\n tooltipRef.current.style.top = `${svgOffset.top - 5}px`;\n tooltipRef.current.style.display = 'block';\n }\n if (typeof existingMouseenter === 'function') {\n existingMouseenter();\n }\n };\n\n svgRef.current.onmouseout = () => {\n if (tooltipRef.current) {\n tooltipRef.current.style.display = 'none';\n }\n if (typeof existingMouseout === 'function') {\n existingMouseout();\n }\n };\n setShowTooltip(true);\n }\n if (showLabel) {\n setShowTooltip(false);\n }\n }, [svgRef.current, showLabel]);\n\n return (\n <React.Fragment>\n <a\n href={disabled ? undefined : url}\n onClick={(e) => handleNavigation(e, linkCallback, label)}\n className={`${className} ${currentPage || isActive ? 'active' : ''} ${\n disabled ? 'disabled' : ''\n }`}\n data-track-category=\"SidebarNav\"\n data-track-action={`GoTo${label ? label.split(' ').join('') : ''}`}\n data-track-label={label}\n aria-label={label}\n target={`${target ? target : '_self'}`}\n >\n <svg\n className={`left-icon ${disabled ? 'disabled' : ''}`}\n aria-hidden=\"true\"\n focusable=\"false\"\n ref={svgRef}\n >\n {icon}\n </svg>\n <AnimationGroup display={showLabel}>\n <span tabIndex=\"-1\">{label}</span>\n </AnimationGroup>\n </a>\n {showTooltip && (\n <div ref={tooltipRef} className=\"sidebar-tooltip\">\n <span className=\"sidebar-tooltip-text\">{label}</span>\n </div>\n )}\n </React.Fragment>\n );\n};\n\nNavLinkInline.propTypes = {\n urlExpressionToMatch: PropTypes.string,\n url: PropTypes.string,\n className: PropTypes.string,\n icon: PropTypes.element,\n label: PropTypes.string,\n isActive: PropTypes.bool,\n showLabel: PropTypes.bool,\n linkCallback: PropTypes.func,\n disabled: PropTypes.bool,\n useTooltips: PropTypes.bool,\n target: PropTypes.string,\n};\n\nexport default NavLinkInline;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { NavCollapse, NavExpand } from '../../../lib/SvgComponents';\n\nconst NavLinkToggle = ({ isAltStyle, collapseRef, isExpanded, onClick }) => {\n const expandedStyle = isExpanded ? 'link-collapse' : 'link-expand';\n const altStyle = isAltStyle ? 'alt-style' : '';\n\n return (\n <button\n type=\"button\"\n aria-label={`Click to ${\n isExpanded ? 'collapse' : 'expand'\n } the sidebar menu`}\n ref={collapseRef}\n className={`${expandedStyle} ${altStyle}`}\n onClick={onClick}\n >\n <svg className=\"left-icon\" aria-hidden=\"true\" focusable=\"false\">\n {isExpanded ? <NavCollapse /> : <NavExpand />}\n </svg>\n <span>{isExpanded ? 'Collapse' : 'Expand'}</span>\n </button>\n );\n};\n\nNavLinkToggle.propTypes = {\n isAltStyle: PropTypes.bool,\n collapseRef: PropTypes.object,\n isExpanded: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nexport default NavLinkToggle;\n","import React from 'react';\nimport AnimationGroup from '../AnimationGroup/AnimationGroup';\nimport PropTypes from 'prop-types';\n\nconst NavItemInline = (props) => {\n const {\n url,\n urlExpressionToMatch,\n className,\n icon,\n label,\n isActive,\n showLabel,\n disabled,\n } = props;\n\n const localUrl = urlExpressionToMatch || url;\n const urlRegExp = new RegExp(`${localUrl}/?$`);\n const path = window.location.href && window.location.href.split('?')[0];\n const currentPage = path && path.match(urlRegExp);\n\n return (\n <div\n className={`${className} ${isActive || currentPage ? 'active' : ''} ${\n disabled ? 'disabled' : ''\n }`}\n aria-label={label}\n >\n <svg\n className={`left-icon ${disabled ? 'disabled' : ''}`}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {icon}\n </svg>\n <AnimationGroup display={showLabel}>\n <span tabIndex=\"-1\">{label}</span>\n </AnimationGroup>\n </div>\n );\n};\n\nNavItemInline.propTypes = {\n urlExpressionToMatch: PropTypes.string,\n url: PropTypes.string,\n className: PropTypes.string,\n icon: PropTypes.element,\n label: PropTypes.string,\n isActive: PropTypes.bool,\n showLabel: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nexport default NavItemInline;\n","import React from 'react';\nimport {\n NavLinkContainer,\n NavLinkInline,\n NavLinkDrawer,\n NavItemInline,\n} from '../Links';\nimport AnimationGroup from '../AnimationGroup/AnimationGroup';\nimport { PracticeDetails } from '../Details';\nimport { ScoreChart } from '../Chart';\nimport PropTypes from 'prop-types';\nimport {\n AccountHomeIcon,\n DashboardIcon,\n StarIcon,\n CliniciansIcon,\n ScoreIncrease,\n TooltipIcon,\n} from '../../../lib/SvgComponents.jsx';\nimport {\n submissionsUrl,\n manageUrl,\n dashboardUrl,\n performanceFeedbackUrl,\n} from '../helpers';\n\nconst PAST_REPORTING_YEARS = ['2017', '2018'];\n\nconst LevelTwoContent = ({\n isExpanded,\n chartData,\n showReportingLinks,\n config: {\n chartActive = true,\n openDrawersByDefault,\n linkCallback,\n updateTime,\n practiceId,\n practiceName,\n practiceTin,\n apmEntityId,\n isConnectedUsersPage,\n vgId,\n roleAbbr,\n performanceYear,\n finalFeedbackOpen,\n isApmPaymentDetailsPage,\n useTooltips,\n cpcPlusId,\n pcfId,\n } = {},\n}) => {\n const linkClass = isExpanded ? 'link-inline' : 'link-collapsed';\n let links = [];\n\n if (isApmPaymentDetailsPage) {\n const apmDetailsUrl = '/user/apm-incentive-payments/(.*)/practice-details';\n links.push(\n <NavItemInline\n icon={<CliniciansIcon />}\n className={linkClass}\n label=\"Payment Details\"\n urlExpressionToMatch={apmDetailsUrl}\n showLabel={isExpanded}\n />\n );\n } else {\n const linkLabel = isConnectedUsersPage\n ? 'Connected Users'\n : 'Eligibility & Reporting';\n let items = [];\n\n const practiceUrlSegment =\n performanceYear === '2017' || performanceYear === '2018' || !roleAbbr\n ? practiceId\n : practiceId + '_' + roleAbbr;\n\n if (showReportingLinks && !apmEntityId) {\n items = [\n {\n url: `${submissionsUrl}/reporting/${practiceUrlSegment}/overview`,\n label: vgId ? 'Virtual Group Reporting' : 'Group Reporting Overview',\n items: [\n {\n url: `${submissionsUrl}/reporting/${practiceUrlSegment}/quality`,\n label: 'Quality Measures',\n },\n {\n url: `${submissionsUrl}/reporting/${practiceUrlSegment}/aci`,\n label: 'Promoting Interoperability',\n },\n {\n url: `${submissionsUrl}/reporting/${practiceUrlSegment}/ia`,\n label: 'Improvement Activities',\n },\n ],\n },\n ];\n }\n links.push(\n <NavLinkDrawer\n key=\"connected-clinicians-link\"\n isAlwaysOpen\n url={\n !isConnectedUsersPage\n ? `${dashboardUrl}`\n : `${manageUrl}/${practiceId}/connected-users`\n }\n isExpanded={isExpanded}\n openByDefault={openDrawersByDefault}\n leftIcon={<DashboardIcon />}\n className={linkClass}\n label={linkLabel}\n linkCallback={linkCallback}\n listOfLinks={\n !isConnectedUsersPage && [\n {\n label: vgId\n ? 'Virtual Group Details & Participants'\n : apmEntityId\n ? 'APM Entity Details & Participants'\n : 'Practice Details & Clinicians',\n items: items,\n },\n ]\n }\n disabled={isConnectedUsersPage ? true : false}\n />\n );\n if (\n (apmEntityId && performanceYear === '2018' && finalFeedbackOpen) ||\n (!apmEntityId &&\n !vgId &&\n !isConnectedUsersPage &&\n PAST_REPORTING_YEARS.indexOf(performanceYear) >= 0)\n ) {\n links.push(\n <NavLinkInline\n key=\"performance-feedback-link\"\n icon={<StarIcon />}\n className={linkClass}\n url={performanceFeedbackUrl(\n finalFeedbackOpen && performanceYear === '2018'\n ? performanceYear\n : '2017'\n )}\n label=\"Performance Feedback\"\n linkCallback={linkCallback}\n showLabel={isExpanded}\n useTooltips={useTooltips}\n />\n );\n }\n }\n\n return (\n <div className=\"sidebar-content\">\n <AnimationGroup display={isExpanded}>\n <NavLinkInline\n icon={<AccountHomeIcon />}\n url={submissionsUrl}\n label=\"Account Home\"\n showLabel={isExpanded}\n className=\"account-home-link\"\n linkCallback={linkCallback}\n useTooltips={useTooltips}\n />\n <hr />\n </AnimationGroup>\n <AnimationGroup display={isExpanded} className={'details'}>\n <PracticeDetails\n practiceName={practiceName}\n {...(!practiceTin ? {} : { practiceTin })}\n {...(!apmEntityId ? {} : { apmEntityId })}\n {...(!vgId ? {} : { vgId })}\n {...(!cpcPlusId ? {} : { cpcPlusId })}\n {...(!pcfId ? {} : { pcfId })}\n />\n <hr />\n </AnimationGroup>\n <div className=\"level-two-nav animation-flat\">\n <NavLinkContainer listOfLinks={links} />\n <AnimationGroup display={isExpanded && chartActive} className=\"chart\">\n <div>\n <hr />\n <div className=\"chart-title\">\n <p className=\"title\">Final Group Score</p>\n <p className=\"disclaimer\">\n <svg className=\"left-icon\" aria-hidden=\"true\">\n <ScoreIncrease />\n </svg>\n Score may increase\n <svg className=\"right-icon\" aria-hidden=\"true\">\n <TooltipIcon />\n </svg>\n </p>\n {updateTime && (\n <p className=\"timestamp\">Last update at {updateTime}</p>\n )}\n </div>\n <ScoreChart chartData={chartData} linkCallback={linkCallback} />\n </div>\n </AnimationGroup>\n </div>\n </div>\n );\n};\n\nLevelTwoContent.propTypes = {\n isExpanded: PropTypes.bool,\n config: PropTypes.object,\n chartData: PropTypes.object,\n showReportingLinks: PropTypes.bool,\n};\n\nexport default LevelTwoContent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst IndividualDetails = ({ individualName, individualNpi }) => {\n return (\n <div className=\"individual-container\">\n <h3 className=\"individual-name\">{individualName}</h3>\n <p className=\"individual-npi\">NPI: {individualNpi}</p>\n </div>\n );\n};\n\nIndividualDetails.propTypes = {\n individualName: PropTypes.string,\n individualNpi: PropTypes.string,\n};\n\nexport default IndividualDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst PracticeDetails = ({\n practiceName,\n practiceTin,\n apmEntityId,\n vgId,\n cpcPlusId,\n pcfId\n}) => {\n function renderId() {\n if (cpcPlusId) {\n return <p className=\"practice-tin\">CPC+ ID: {cpcPlusId}</p>;\n } else if (pcfId) {\n return <p className=\"practice-tin\">PCF ID: {pcfId}</p>;\n } else if (apmEntityId) {\n return <p className=\"practice-tin\">APM Entity ID: {apmEntityId}</p>;\n } else if (vgId) {\n return <p className=\"practice-tin\">VG ID: {vgId}</p>;\n } else if (practiceTin) {\n return <p className=\"practice-tin\">TIN: {practiceTin}</p>;\n } else {\n return;\n }\n }\n\n return (\n <div className=\"practice-container\">\n <h2 className=\"practice-name\">{practiceName || 'No name on record'}</h2>\n {renderId()}\n </div>\n );\n};\n\nPracticeDetails.propTypes = {\n practiceName: PropTypes.string,\n practiceTin: PropTypes.string,\n apmEntityId: PropTypes.string,\n vgId: PropTypes.string,\n cpcPlusId: PropTypes.string,\n pcfId: PropTypes.string,\n};\n\nexport default PracticeDetails;\n","import React, { useState, useEffect } from 'react';\nimport { pie, arc } from 'd3-shape';\nimport { select, event } from 'd3-selection';\nimport PropTypes from 'prop-types';\n\nconst WIDTH = 210;\nconst HEIGHT = 210;\nconst RADIUS = Math.min(WIDTH, HEIGHT) / 2;\nconst GAP_VALUE = 2.5;\n\nconst ScoreChart = ({ performanceYear, chartData, linkCallback }) => {\n const [hasLegend, setHasLegend] = useState(false);\n const [titleMapping, setTitleMapping] = useState({\n quality: 'Quality Measures',\n aci: 'Advancing Care Info',\n pi: 'Promoting Interoperability',\n ia: 'Improvement Activities',\n cost: 'Cost',\n });\n\n const { categories } = chartData;\n let legendToggler;\n let legend;\n\n const getAdvancingCareLabel = () => {\n if (performanceYear > 2017) {\n setTitleMapping({ ...titleMapping, aci: 'Promoting Interoperability' });\n }\n };\n\n const redirectToCategory = (link, categoryId) => {\n if (!link) {\n return;\n }\n\n // track explicitly chart legends\n if (window.utag) {\n window.utag.track('link', {\n ga_event_category: 'SidebarNav',\n ga_event_action: `GoTo${categoryId}`,\n ga_event_label: categoryId,\n });\n }\n\n if (linkCallback) {\n linkCallback(link);\n } else {\n window.location.href = link;\n }\n };\n\n const draw = (chartData) => {\n const scorePie = pie().sort(null);\n\n // Removing invalid categories\n const categories = chartData.categories.filter(\n ({ maxContribution }) => !!maxContribution\n );\n\n // Calculating the sum of valid categories in order to calculate ratios\n const categorySum = categories\n .map(({ maxContribution }) => maxContribution)\n .reduce((sum, current) => sum + current);\n\n if (!categorySum) {\n return;\n }\n\n select('.score-chart').selectAll('*').remove();\n\n const svg = select('.score-chart')\n .attr('width', WIDTH)\n .attr('height', HEIGHT);\n\n const chartArc = arc()\n .innerRadius(RADIUS - 1.5)\n .outerRadius(RADIUS - 25);\n\n // Preparing the data structure with ratios: [ FILLED, EMPTY, TRANSPARENT, FILLED, EMPTY, ... ]\n let data;\n if (categories.length === 0) {\n data = [];\n } else if (categories.length === 1) {\n const { value, maxContribution } = categories[0];\n data = [value || 0, maxContribution - value];\n } else {\n data = categories\n .map(({ value, maxContribution }) => [\n value || 0,\n maxContribution - value,\n GAP_VALUE * (categorySum / 100),\n ])\n .reduce((a, b) => a.concat(b), []);\n }\n\n svg.append('title').attr('id', 'titleID').text('Your submission score');\n\n svg\n .append('desc')\n .attr('id', 'descID')\n .text(`${chartData.finalScore} out of 100`);\n\n // Setting up the arcs\n let arcs = svg\n .append('g')\n .attr('class', 'arcs')\n .attr('role', 'presentation')\n .selectAll('g.arc')\n .data(scorePie(data))\n .enter()\n .append('g')\n .attr('class', (d, i) => {\n let role;\n if (i % 3 === 0) {\n role = 'filled';\n } else if (i % 3 === 1) {\n role = 'empty';\n } else {\n role = 'transparent';\n }\n return `arc ${categories[parseInt(i / 3)].name} ${role}`;\n })\n .attr('transform', `translate(${RADIUS}, ${RADIUS})`)\n // For accessibility, we add keyboard access to the filled slices\n .attr('tabindex', (d, i) => {\n let tabindex = -1;\n if (i % 3 === 0) {\n tabindex = 0;\n }\n return tabindex;\n })\n // IE for for focusable svg elements\n .attr('focusable', (d, i) => {\n if (i % 3 === 0) {\n return true;\n }\n })\n // For accessibility, we add keyboard access to the filled slices\n .on('keyup', (d, i) => {\n const code = event.keyCode || event.which;\n if (code === 13) {\n const { name, link } = categories[parseInt(i / 3)];\n redirectToCategory(link, name);\n }\n })\n // On click - go to category page\n .on('click', (d, i) => {\n const { name, link } = categories[parseInt(i / 3)];\n redirectToCategory(link, name);\n });\n\n // Add accessibility description\n arcs.append('desc').text((d, i) => {\n if (i % 3 === 0) {\n const { name, value, maxContribution } = categories[parseInt(i / 3)];\n return `${titleMapping[name]} ${value} out of ${maxContribution}`;\n }\n });\n\n arcs\n .append('path')\n .attr('d', chartArc)\n // On mouse over - show category tooltip\n .on('mouseover', (d, i) => {\n const { name, value, maxContribution } = categories[parseInt(i / 3)];\n select('.chart-tooltip')\n .style('opacity', 1)\n .text(`${titleMapping[name]} ${value}/${maxContribution}`);\n })\n // On mouse move - move category tooltip\n .on('mousemove', () => {\n select('.chart-tooltip')\n .style('top', event.clientY - HEIGHT + 10 + 'px')\n .style('left', event.clientX + 'px');\n })\n // On mouse out - hide category tooltip\n .on('mouseout', () => {\n select('.chart-tooltip').style('opacity', 0);\n });\n\n // Adding title and subtitle\n const text = svg\n .append('g')\n .attr('text-anchor', 'middle')\n .attr('transform', `translate(${WIDTH / 2}, ${HEIGHT / 2})`);\n\n // Adding title - X%\n text\n .append('text')\n .attr('y', 4)\n .attr('class', 'chart-title')\n .text(chartData.finalScore);\n\n // Adding subtitle - OUT OF 100\n text\n .append('text')\n .attr('y', 24)\n .attr('class', 'chart-subtitle')\n .text('OUT OF 100');\n };\n\n const toggleLegend = () => {\n setHasLegend(!hasLegend);\n };\n\n useEffect(() => {\n if (chartData?.finalScore) {\n draw(chartData);\n getAdvancingCareLabel();\n }\n }, [chartData?.finalScore]);\n\n if (hasLegend) {\n legendToggler = (\n <button className=\"open\" type=\"button\" aria-pressed=\"true\">\n Hide Legend\n <svg\n className=\"right-icon rotated\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <use xlinkHref=\"#chevron-down\" />\n </svg>\n </button>\n );\n legend = categories.map(({ name, value, maxContribution, link }, index) => {\n return (\n <li key={name} className=\"legend-axis\">\n <button onClick={() => redirectToCategory(link, name)}>\n <span className={`legend-axis-color ${name}`} />\n \n <span className=\"legend-axis-title\">{titleMapping[name]}</span>\n \n <span className=\"legend-axis-value\">{`${value}/${maxContribution}`}</span>\n </button>\n </li>\n );\n });\n } else {\n legendToggler = (\n <button type=\"button\" aria-pressed=\"false\">\n Show Legend\n <svg className=\"right-icon\" aria-hidden=\"true\" focusable=\"false\">\n <use xlinkHref=\"#chevron-down\" />\n </svg>\n </button>\n );\n }\n\n return (\n <div className=\"chart\">\n <svg className=\"score-chart\" focusable=\"false\" />\n <div className=\"chart-tooltip off\" />\n <div className=\"chart-legend-toggler\" onClick={toggleLegend}>\n {legendToggler}\n </div>\n <ul className=\"chart-legend\">{legend}</ul>\n </div>\n );\n};\n\nScoreChart.propTypes = {\n chartData: PropTypes.object,\n linkCallback: PropTypes.func,\n performanceYear: PropTypes.number,\n};\n\nexport default ScoreChart;\n","export default \"<svg aria-hidden=\\\"true\\\" style=\\\"position:absolute;width:0;height:0\\\" width=\\\"0\\\" height=\\\"0\\\" xmlns=\\\"https://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"https://www.w3.org/1999/xlink\\\" overflow=\\\"hidden\\\"><symbol id=\\\"icon-warning\\\" viewBox=\\\"-2 -2 25 25\\\"><style></style><defs><circle id=\\\"SVGID_1_\\\" cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"10\\\"/></defs><clipPath id=\\\"SVGID_2_\\\"><use xlink:href=\\\"#SVGID_1_\\\" overflow=\\\"visible\\\"/></clipPath><defs><path id=\\\"SVGID_3_\\\" d=\\\"M0 0h20v20H0z\\\"/></defs><clipPath id=\\\"SVGID_4_\\\"><use xlink:href=\\\"#SVGID_3_\\\" overflow=\\\"visible\\\"/></clipPath><path d=\\\"M10 22C3.4 22-2 16.6-2 10S3.4-2 10-2s12 5.4 12 12-5.4 12-12 12zm0-20c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\"/><g><defs><path id=\\\"SVGID_5_\\\" d=\\\"M0 0h20v20H0z\\\"/></defs><defs><path id=\\\"SVGID_6_\\\" d=\\\"M0 0h20v20H0z\\\"/></defs><clipPath id=\\\"SVGID_7_\\\"><use xlink:href=\\\"#SVGID_5_\\\" overflow=\\\"visible\\\"/></clipPath><clipPath id=\\\"SVGID_8_\\\"><use xlink:href=\\\"#SVGID_6_\\\" overflow=\\\"visible\\\"/></clipPath><path d=\\\"M10 11.7c-.6 0-1-.4-1-1V5.8c0-.6.4-1 1-1s1 .4 1 1v4.9c0 .5-.4 1-1 1zM10 15.3c-.6 0-1-.4-1-1v-.4c0-.6.4-1 1-1s1 .4 1 1v.4c0 .6-.4 1-1 1z\\\"/></g></symbol><symbol id=\\\"search\\\" viewBox=\\\"0 0 25 25\\\"><path d=\\\"M3.9,12.8c-1.2-1.2-1.8-2.7-1.8-4.4c0-1.7,0.6-3.2,1.8-4.4c1.2-1.2,2.7-1.8,4.4-1.8c1.7,0,3.2,0.6,4.4,1.8 c2.4,2.4,2.4,6.4,0,8.8c-1.2,1.2-2.7,1.8-4.4,1.8C6.6,14.6,5.1,14,3.9,12.8z M19.7,18.3l-4.8-4.8c2.5-3.3,2.3-8-0.7-11 C12.6,1,10.5,0.1,8.3,0.1C6.1,0.1,4,1,2.4,2.6C0.9,4.1,0,6.2,0,8.4c0,2.2,0.9,4.3,2.4,5.9c1.6,1.6,3.7,2.4,5.9,2.4 c1.9,0,3.6-0.6,5.1-1.7l4.8,4.8c0.2,0.2,0.5,0.3,0.7,0.3c0.3,0,0.5-0.1,0.7-0.3C20.1,19.4,20.1,18.8,19.7,18.3z\\\"/></symbol><symbol id=\\\"star-icon\\\" viewBox=\\\"0 0 25 25\\\"><path d=\\\"M24.7,9.4c-0.1-0.1-0.2-0.1-0.3-0.2L16.6,8L13,0.9c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1,0-0.3,0-0.4,0 c0,0-0.2,0.1-0.2,0.2L8.4,8L0.6,9.2c-0.3,0-0.5,0.3-0.5,0.6c0,0.1,0.1,0.2,0.2,0.3L6,15.7l-1.3,7.9c-0.1,0.3,0.1,0.6,0.4,0.7h0.1 c0.1,0,0.2,0,0.3-0.1l7-3.7l7,3.7c0.1,0,0.2,0.1,0.3,0.1c0.3,0,0.6-0.3,0.6-0.6v-0.1l-1.3-7.9l5.6-5.6C24.9,10,24.9,9.6,24.7,9.4z M7.1,15.8c0-0.2,0-0.4-0.2-0.5l-5.1-5.1l7-1.1C9,9.1,9.1,9,9.2,8.8l3.2-6.4l3.2,6.4C15.7,9,15.8,9.1,16,9.1l7,1.1l-4.9,5 c-0.1,0.1-0.3,0.4-0.3,0.6l1.4,7l-6.7-3.2c-0.2-0.1-0.4-0.1-0.5,0l-6.3,3.3L7.1,15.8z\\\"/></symbol><symbol id=\\\"dashboard\\\" viewBox=\\\"0 0 25 25\\\"><path d=\\\"M22.2,12.8H12.1V2.8c0-0.3-0.2-0.5-0.5-0.5h-0.1c-6.2,0-11.2,5-11.2,11.2c0,6.2,5,11.2,11.2,11.2 c6.2,0,11.2-5,11.2-11.2v-0.1C22.7,13.1,22.5,12.8,22.2,12.8z M11.6,13.9h10c-0.2,5.4-4.7,9.7-10.1,9.7c-5.6,0-10.2-4.6-10.2-10.2 c0-5.4,4.3-9.9,9.7-10.1v10C11.1,13.7,11.3,13.9,11.6,13.9z\\\"/><path d=\\\"M24.7,9.9l0-0.1C24,4.9,20.1,1,15.2,0.3l-0.1,0l0,0c-0.1,0-0.3,0-0.4,0.1c-0.1,0.1-0.2,0.2-0.2,0.4V10 c0,0.3,0.2,0.5,0.5,0.5h9.2c0.2,0,0.3-0.1,0.4-0.2C24.7,10.2,24.7,10.1,24.7,9.9z M23.5,9.5h-8v-8C19.5,2.2,22.8,5.5,23.5,9.5z\\\"/></symbol><symbol id=\\\"early-claims-icon\\\" viewBox=\\\"0 0 25 25\\\"><path d=\\\"M0 1L15 1 15 0 0 0zM0 4L15 4 15 3 0 3zM0 7L15 7 15 6 0 6zM0 10L15 10 15 9 0 9zM0 13L15 13 15 12 0 12z\\\" transform=\\\"translate(5 8)\\\"/><path d=\\\"M1,24 L1,1 L16,1 L16,5.5 C16,5.776 16.224,6 16.5,6 L20,6 L20,24 L1,24 Z M17,1.851 L19.446,5 L17,5 L17,1.851 Z M20.895,5.235 L16.979,0.193 C16.884,0.071 16.738,0 16.583,0 L0.5,0 C0.224,0 0,0.224 0,0.5 L0,24.5 C0,24.776 0.224,25 0.5,25 L20.5,25 C20.776,25 21,24.776 21,24.5 L21,5.542 C21,5.43 20.963,5.322 20.895,5.235 Z\\\" transform=\\\"translate(2)\\\"/></symbol><symbol id=\\\"physician-compare-icon\\\" viewBox=\\\"0 0 25 25\\\"><path d=\\\"M19.2204301,5 L18.1451613,5 C17.7419355,5 17.4731183,5.2601626 17.4731183,5.6504065 C17.4731183,6.04065041 17.7419355,6.30081301 18.1451613,6.30081301 L19.2204301,6.30081301 C19.3548387,6.30081301 19.4892473,6.43089431 19.4892473,6.56097561 L19.4892473,11.8943089 C19.4892473,13.3252033 18.2795699,14.6260163 16.6666667,14.6260163 C15.0537634,14.6260163 13.844086,13.4552846 13.844086,11.8943089 L13.844086,6.56097561 C13.844086,6.43089431 13.9784946,6.30081301 14.1129032,6.30081301 L15.188172,6.30081301 C15.5913978,6.30081301 15.8602151,6.04065041 15.8602151,5.6504065 C15.8602151,5.2601626 15.5913978,5 15.188172,5 L14.1129032,5 C13.3064516,5 12.5,5.6504065 12.5,6.56097561 L12.5,11.8943089 C12.5,13.8455285 13.9784946,15.5365854 15.9946237,15.9268293 C15.8602151,18.398374 14.6505376,19.699187 12.5,19.699187 L12.2311828,19.699187 C9.40860215,19.699187 8.33333333,17.2276423 8.33333333,15.6666667 L8.33333333,14.495935 C9.67741935,14.1056911 10.6182796,12.9349593 10.6182796,11.504065 C10.7526882,9.81300813 9.27419355,8.38211382 7.52688172,8.38211382 C5.77956989,8.38211382 4.16666667,9.81300813 4.16666667,11.504065 C4.16666667,13.0650407 5.37634409,14.3658537 6.98924731,14.6260163 L6.98924731,15.6666667 C6.98924731,18.2682927 8.87096774,21 12.2311828,21 L12.5,21 C15.4569892,21 17.2043011,19.1788618 17.3387097,15.796748 C19.3548387,15.5365854 20.8333333,13.8455285 20.8333333,11.7642276 L20.8333333,6.56097561 C20.8333333,5.6504065 20.1612903,5 19.2204301,5 Z M5.77956989,11.504065 C5.77956989,10.5934959 6.58602151,9.94308943 7.39247312,9.94308943 C8.19892473,9.94308943 9.00537634,10.7235772 9.00537634,11.504065 C9.00537634,12.2845528 8.33333333,13.195122 7.52688172,13.195122 C6.72043011,13.195122 5.77956989,12.4146341 5.77956989,11.504065 Z\\\"/><path d=\\\"M20.718232,0 L4.14364641,0 C1.79558011,0 0,1.82291667 0,3.90625 L0,21.09375 C0,23.3072917 1.93370166,25 4.14364641,25 L20.8563536,25 C23.2044199,25 25,23.1770833 25,21.09375 L25,3.90625 C24.8618785,1.82291667 23.0662983,0 20.718232,0 Z M23.480663,21.09375 C23.480663,22.5260417 22.2375691,23.6979167 20.718232,23.6979167 L4.14364641,23.6979167 C2.62430939,23.6979167 1.38121547,22.5260417 1.38121547,21.09375 L1.38121547,3.90625 C1.38121547,2.47395833 2.62430939,1.30208333 4.14364641,1.30208333 L20.8563536,1.30208333 C22.3756906,1.30208333 23.6187845,2.47395833 23.6187845,3.90625 L23.6187845,21.09375 L23.480663,21.09375 Z\\\"/></symbol><symbol id=\\\"hardship-icon\\\" viewBox=\\\"0 0 25 25\\\"><path d=\\\"M18.7721739,2.6119403 L14.4991304,2.6119403 L12.4813043,2.6119403 C12.5178261,2.44402985 12.5543478,2.2761194 12.5543478,2.0988806 C12.5543478,0.942164179 11.6321739,0 10.5,0 C9.36782609,0 8.44565217,0.942164179 8.44565217,2.0988806 C8.44565217,2.2761194 8.47304348,2.44402985 8.51869565,2.6119403 L6.49173913,2.6119403 L2.21869565,2.6119403 C0.995217391,2.6119403 0,3.62873134 0,4.8880597 L0,22.733209 C0,23.983209 0.995217391,25 2.21869565,25 L18.7721739,25 C19.9956522,25 21,23.983209 21,22.7238806 L21,4.8880597 C21,3.62873134 19.9956522,2.6119403 18.7721739,2.6119403 Z M10.5,0.932835821 C11.13,0.932835821 11.6413043,1.45522388 11.6413043,2.0988806 C11.6413043,2.31343284 11.5682609,2.5 11.4769565,2.66791045 C11.403913,2.7891791 11.3126087,2.9011194 11.2030435,2.99440299 C11.1482609,3.04104478 11.0843478,3.08768657 11.0204348,3.125 C10.9747826,3.14365672 10.9382609,3.17164179 10.8926087,3.19029851 C10.7647826,3.22761194 10.6369565,3.26492537 10.5,3.26492537 C10.3630435,3.26492537 10.2352174,3.22761194 10.1165217,3.18097015 C10.0708696,3.16231343 10.0343478,3.14365672 9.98869565,3.11567164 C9.92478261,3.07835821 9.86086957,3.03171642 9.80608696,2.98507463 C9.6873913,2.89179104 9.59608696,2.77052239 9.52304348,2.63992537 C9.43173913,2.47201493 9.36782609,2.29477612 9.36782609,2.08955224 C9.35869565,1.45522388 9.87,0.932835821 10.5,0.932835821 Z M20.0869565,22.7238806 C20.0869565,23.4608209 19.5026087,24.0671642 18.7721739,24.0671642 L2.21869565,24.0671642 C1.4973913,24.0671642 0.903913043,23.4701493 0.903913043,22.7238806 L0.903913043,4.8880597 C0.913043478,4.14179104 1.4973913,3.54477612 2.21869565,3.54477612 L6.49173913,3.54477612 L6.49173913,4.38432836 C6.49173913,4.95335821 6.93913043,5.41044776 7.49608696,5.41044776 L13.503913,5.41044776 C14.0608696,5.41044776 14.5082609,4.95335821 14.5082609,4.38432836 L14.5082609,3.54477612 L18.7813043,3.54477612 C19.5026087,3.54477612 20.096087,4.14179104 20.096087,4.8880597 L20.096087,22.7238806 L20.0869565,22.7238806 L20.0869565,22.7238806 Z\\\" transform=\\\"translate(2)\\\"/><path d=\\\"M3.506 7.24H11.477V8.24H3.506zM.849 7.24H2.2199999999999998V8.24H.849zM6.506 2.17H11.477V3.17H6.506zM2.13428571 4.04L.402857143 2.01 1.01142857 1.31 2.13428571 2.62 4.03714286.41 4.64571429 1.11z\\\" transform=\\\"translate(6 9)\\\"/></symbol><symbol id=\\\"target-icon\\\" viewBox=\\\"0 0 25 25\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><path d=\\\"M15.6521739,13.3410862 C14.9799955,14.9155188 13.3391142,15.8471825 11.6426584,15.617619 C9.9462025,15.3880555 8.61194453,14.0537975 8.38238102,12.3573416 C8.15281751,10.6608858 9.08448121,9.0200045 10.6589138,8.34782609\\\" stroke-linecap=\\\"round\\\" transform=\\\"translate(1 1)\\\"/><path d=\\\"M19.826087,11.4686261 C19.5475194,15.6524455 16.0240274,18.8752139 11.8318419,18.780577 C7.63965639,18.6859401 4.26519733,15.3074531 4.17572893,11.1153254 C4.08626053,6.92319774 7.31350554,3.40382874 11.4978365,3.13043478\\\" stroke-linecap=\\\"round\\\" transform=\\\"translate(1 1)\\\"/><path d=\\\"M22.9565217 10.4801044C22.9565217 10.8094757 22.9565217 11.1488279 22.9565217 11.4781992 22.9565217 16.1251852 20.1544991 20.3136359 15.8592987 22.0872623 11.5640982 23.8608888 6.62327363 22.8696906 3.3445233 19.5766243.065772964 16.283558-.903887735 11.3384639.888438166 7.05103466 2.68076407 2.7636054 6.8813862-.0200950351 11.5283306 0 11.867683 0 12.2070354 0 12.5264259 0M23.4104348 8.34782609C23.4626087 8.69217391 23.5147826 9.04695652 23.546087 9.39130435\\\" stroke-linecap=\\\"round\\\" transform=\\\"translate(1 1)\\\"/><path d=\\\"M19.0559527,8.3085908 L16.1993898,7.27346855 C15.9679825,7.18675289 15.7867762,7.00255341 15.7042523,6.77015223 L14.6758896,3.9211919 C14.5392501,3.60164864 14.6150694,3.23112279 14.8663271,2.99053153 L17.5610181,0.255529619 C17.7680939,0.0454487694 18.069052,-0.043464617 18.357445,0.020237671 C18.6458381,0.083939959 18.8810085,0.291277194 18.9797777,0.568915255 L19.7415278,2.61067015 C19.8301804,2.85007338 20.017334,3.04018548 20.2557092,3.13297955 L22.4076532,3.94968151 C22.6793557,4.05644917 22.8788566,4.29253202 22.938341,4.57768034 C22.9978255,4.86282867 22.9092906,5.15867892 22.7028314,5.36466513 L19.960531,8.07117744 C19.7289278,8.31564041 19.3782081,8.40768945 19.0559527,8.3085908 Z\\\" transform=\\\"translate(1 1)\\\"/><path stroke-linecap=\\\"round\\\" d=\\\"M12.522 10.435L16.696 6.261\\\" transform=\\\"translate(1 1)\\\"/></g></symbol><symbol id=\\\"manage-users\\\" viewBox=\\\"0 0 25 25\\\"><path d=\\\"M4.4 10.8V.2H3.6v10.7c-1.9.2-3.4 1.8-3.4 3.8s1.5 3.6 3.4 3.8v6.4h.9v-6.4c1.9-.2 3.4-1.8 3.4-3.8S6.3 11.1 4.4 10.8zM4 17.6c-1.6 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3S5.6 17.6 4 17.6zM12.9 2.3V.2h-.9v2.2c-1.9.2-3.4 1.8-3.4 3.8 0 2 1.5 3.6 3.4 3.8v14.9h.9V9.9c1.9-.2 3.4-1.8 3.4-3.8C16.3 4.2 14.8 2.6 12.9 2.3zM12.5 9.1c-1.6 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3S14.1 9.1 12.5 9.1zM24.8 18.9c0-2-1.5-3.6-3.4-3.8V.2h-.9v14.9c-1.9.2-3.4 1.8-3.4 3.8s1.5 3.6 3.4 3.8v2.2h.9v-2.2C23.3 22.4 24.8 20.8 24.8 18.9zM21 21.8c-1.6 0-3-1.3-3-3 0-1.6 1.3-3 3-3s3 1.3 3 3C24 20.5 22.6 21.8 21 21.8z\\\"/></symbol></svg>\";","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { handleNavigation } from '../helpers';\nimport { SwitchPractice, ChevronRight } from '../../../lib/SvgComponents.jsx';\n\nconst CmsSwitchLink = ({ linkCallback, url, label }) => {\n return (\n <div className=\"switch-container\">\n <a\n href={url}\n onClick={(e) => handleNavigation(e, linkCallback, label)}\n className=\"switch-link\"\n >\n <div className=\"button-partition\">\n <svg className=\"icon\">\n <SwitchPractice />\n <title>Switch Practice Icon</title>\n </svg>\n <span>{label}</span>\n </div>\n <div className=\"button-partition\">\n <svg\n className=\"icon right-icon rotated\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <ChevronRight />\n </svg>\n </div>\n </a>\n </div>\n );\n};\n\nCmsSwitchLink.propTypes = {\n linkCallback: PropTypes.func,\n url: PropTypes.string,\n label: PropTypes.string,\n};\n\nexport default CmsSwitchLink;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport SessionDialogUI from '../SessionDialogUI';\n\n/**\n * Renders the Session Dialog UI content.\n */\nexport default class SessionDialog {\n /**\n * @param {Object} options - An object containing content and config data\n * @param {Boolean} options.showImmediate\n * @param {Number} options.warningTimeout\n * @param {String} options.appElement\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n constructor(options) {\n render(\n <SessionDialogUI\n showImmediate={options.showImmediate}\n warningTimeout={options.warningTimeout}\n appElement={options.appElement}\n />,\n options.rootElement\n );\n }\n}\n","/**\n * what-input - A global utility for tracking the current input method (mouse, keyboard or touch).\n * @version v5.2.10\n * @link https://github.com/ten1seven/what-input\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"whatInput\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"whatInput\"] = factory();\n\telse\n\t\troot[\"whatInput\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = function () {\n\t /*\n\t * bail out if there is no document or window\n\t * (i.e. in a node/non-DOM environment)\n\t *\n\t * Return a stubbed API instead\n\t */\n\t if (typeof document === 'undefined' || typeof window === 'undefined') {\n\t return {\n\t // always return \"initial\" because no interaction will ever be detected\n\t ask: function ask() {\n\t return 'initial';\n\t },\n\n\t // always return null\n\t element: function element() {\n\t return null;\n\t },\n\n\t // no-op\n\t ignoreKeys: function ignoreKeys() {},\n\n\t // no-op\n\t specificKeys: function specificKeys() {},\n\n\t // no-op\n\t registerOnChange: function registerOnChange() {},\n\n\t // no-op\n\t unRegisterOnChange: function unRegisterOnChange() {}\n\t };\n\t }\n\n\t /*\n\t * variables\n\t */\n\n\t // cache document.documentElement\n\t var docElem = document.documentElement;\n\n\t // currently focused dom element\n\t var currentElement = null;\n\n\t // last used input type\n\t var currentInput = 'initial';\n\n\t // last used input intent\n\t var currentIntent = currentInput;\n\n\t // UNIX timestamp of current event\n\t var currentTimestamp = Date.now();\n\n\t // check for a `data-whatpersist` attribute on either the `html` or `body` elements, defaults to `true`\n\t var shouldPersist = 'false';\n\n\t // form input types\n\t var formInputs = ['button', 'input', 'select', 'textarea'];\n\n\t // empty array for holding callback functions\n\t var functionList = [];\n\n\t // list of modifier keys commonly used with the mouse and\n\t // can be safely ignored to prevent false keyboard detection\n\t var ignoreMap = [16, // shift\n\t 17, // control\n\t 18, // alt\n\t 91, // Windows key / left Apple cmd\n\t 93 // Windows menu / right Apple cmd\n\t ];\n\n\t var specificMap = [];\n\n\t // mapping of events to input types\n\t var inputMap = {\n\t keydown: 'keyboard',\n\t keyup: 'keyboard',\n\t mousedown: 'mouse',\n\t mousemove: 'mouse',\n\t MSPointerDown: 'pointer',\n\t MSPointerMove: 'pointer',\n\t pointerdown: 'pointer',\n\t pointermove: 'pointer',\n\t touchstart: 'touch',\n\t touchend: 'touch'\n\n\t // boolean: true if the page is being scrolled\n\t };var isScrolling = false;\n\n\t // store current mouse position\n\t var mousePos = {\n\t x: null,\n\t y: null\n\n\t // map of IE 10 pointer events\n\t };var pointerMap = {\n\t 2: 'touch',\n\t 3: 'touch', // treat pen like touch\n\t 4: 'mouse'\n\n\t // check support for passive event listeners\n\t };var supportsPassive = false;\n\n\t try {\n\t var opts = Object.defineProperty({}, 'passive', {\n\t get: function get() {\n\t supportsPassive = true;\n\t }\n\t });\n\n\t window.addEventListener('test', null, opts);\n\t } catch (e) {}\n\t // fail silently\n\n\n\t /*\n\t * set up\n\t */\n\n\t var setUp = function setUp() {\n\t // add correct mouse wheel event mapping to `inputMap`\n\t inputMap[detectWheel()] = 'mouse';\n\n\t addListeners();\n\t };\n\n\t /*\n\t * events\n\t */\n\n\t var addListeners = function addListeners() {\n\t // `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding\n\t // can only demonstrate potential, but not actual, interaction\n\t // and are treated separately\n\t var options = supportsPassive ? { passive: true } : false;\n\n\t document.addEventListener('DOMContentLoaded', setPersist);\n\n\t // pointer events (mouse, pen, touch)\n\t if (window.PointerEvent) {\n\t window.addEventListener('pointerdown', setInput);\n\t window.addEventListener('pointermove', setIntent);\n\t } else if (window.MSPointerEvent) {\n\t window.addEventListener('MSPointerDown', setInput);\n\t window.addEventListener('MSPointerMove', setIntent);\n\t } else {\n\t // mouse events\n\t window.addEventListener('mousedown', setInput);\n\t window.addEventListener('mousemove', setIntent);\n\n\t // touch events\n\t if ('ontouchstart' in window) {\n\t window.addEventListener('touchstart', setInput, options);\n\t window.addEventListener('touchend', setInput);\n\t }\n\t }\n\n\t // mouse wheel\n\t window.addEventListener(detectWheel(), setIntent, options);\n\n\t // keyboard events\n\t window.addEventListener('keydown', setInput);\n\t window.addEventListener('keyup', setInput);\n\n\t // focus events\n\t window.addEventListener('focusin', setElement);\n\t window.addEventListener('focusout', clearElement);\n\t };\n\n\t // checks if input persistence should happen and\n\t // get saved state from session storage if true (defaults to `false`)\n\t var setPersist = function setPersist() {\n\t shouldPersist = !(docElem.getAttribute('data-whatpersist') || document.body.getAttribute('data-whatpersist') === 'false');\n\n\t if (shouldPersist) {\n\t // check for session variables and use if available\n\t try {\n\t if (window.sessionStorage.getItem('what-input')) {\n\t currentInput = window.sessionStorage.getItem('what-input');\n\t }\n\n\t if (window.sessionStorage.getItem('what-intent')) {\n\t currentIntent = window.sessionStorage.getItem('what-intent');\n\t }\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\n\t // always run these so at least `initial` state is set\n\t doUpdate('input');\n\t doUpdate('intent');\n\t };\n\n\t // checks conditions before updating new input\n\t var setInput = function setInput(event) {\n\t var eventKey = event.which;\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;\n\n\t var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;\n\n\t var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';\n\n\t // prevent touch detection from being overridden by event execution order\n\t if (validateTouch(value)) {\n\t shouldUpdate = false;\n\t }\n\n\t if (shouldUpdate && currentInput !== value) {\n\t currentInput = value;\n\n\t persistInput('input', currentInput);\n\t doUpdate('input');\n\t }\n\n\t if (shouldUpdate && currentIntent !== value) {\n\t // preserve intent for keyboard interaction with form fields\n\t var activeElem = document.activeElement;\n\t var notFormInput = activeElem && activeElem.nodeName && (formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form'));\n\n\t if (notFormInput) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t }\n\t };\n\n\t // updates the doc and `inputTypes` array with new input\n\t var doUpdate = function doUpdate(which) {\n\t docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);\n\n\t fireFunctions(which);\n\t };\n\n\t // updates input intent for `mousemove` and `pointermove`\n\t var setIntent = function setIntent(event) {\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t // test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove\n\t detectScrolling(event);\n\n\t // only execute if scrolling isn't happening\n\t if ((!isScrolling && !validateTouch(value) || isScrolling && event.type === 'wheel' || event.type === 'mousewheel' || event.type === 'DOMMouseScroll') && currentIntent !== value) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t };\n\n\t var setElement = function setElement(event) {\n\t if (!event.target.nodeName) {\n\t // If nodeName is undefined, clear the element\n\t // This can happen if click inside an <svg> element.\n\t clearElement();\n\t return;\n\t }\n\n\t currentElement = event.target.nodeName.toLowerCase();\n\t docElem.setAttribute('data-whatelement', currentElement);\n\n\t if (event.target.classList && event.target.classList.length) {\n\t docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));\n\t }\n\t };\n\n\t var clearElement = function clearElement() {\n\t currentElement = null;\n\n\t docElem.removeAttribute('data-whatelement');\n\t docElem.removeAttribute('data-whatclasses');\n\t };\n\n\t var persistInput = function persistInput(which, value) {\n\t if (shouldPersist) {\n\t try {\n\t window.sessionStorage.setItem('what-' + which, value);\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\t };\n\n\t /*\n\t * utilities\n\t */\n\n\t var pointerType = function pointerType(event) {\n\t if (typeof event.pointerType === 'number') {\n\t return pointerMap[event.pointerType];\n\t } else {\n\t // treat pen like touch\n\t return event.pointerType === 'pen' ? 'touch' : event.pointerType;\n\t }\n\t };\n\n\t // prevent touch detection from being overridden by event execution order\n\t var validateTouch = function validateTouch(value) {\n\t var timestamp = Date.now();\n\n\t var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;\n\n\t currentTimestamp = timestamp;\n\n\t return touchIsValid;\n\t };\n\n\t // detect version of mouse wheel event to use\n\t // via https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\t var detectWheel = function detectWheel() {\n\t var wheelType = null;\n\n\t // Modern browsers support \"wheel\"\n\t if ('onwheel' in document.createElement('div')) {\n\t wheelType = 'wheel';\n\t } else {\n\t // Webkit and IE support at least \"mousewheel\"\n\t // or assume that remaining browsers are older Firefox\n\t wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';\n\t }\n\n\t return wheelType;\n\t };\n\n\t // runs callback functions\n\t var fireFunctions = function fireFunctions(type) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].type === type) {\n\t functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);\n\t }\n\t }\n\t };\n\n\t // finds matching element in an object\n\t var objPos = function objPos(match) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].fn === match) {\n\t return i;\n\t }\n\t }\n\t };\n\n\t var detectScrolling = function detectScrolling(event) {\n\t if (mousePos.x !== event.screenX || mousePos.y !== event.screenY) {\n\t isScrolling = false;\n\n\t mousePos.x = event.screenX;\n\t mousePos.y = event.screenY;\n\t } else {\n\t isScrolling = true;\n\t }\n\t };\n\n\t // manual version of `closest()`\n\t var checkClosest = function checkClosest(elem, tag) {\n\t var ElementPrototype = window.Element.prototype;\n\n\t if (!ElementPrototype.matches) {\n\t ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;\n\t }\n\n\t if (!ElementPrototype.closest) {\n\t do {\n\t if (elem.matches(tag)) {\n\t return elem;\n\t }\n\n\t elem = elem.parentElement || elem.parentNode;\n\t } while (elem !== null && elem.nodeType === 1);\n\n\t return null;\n\t } else {\n\t return elem.closest(tag);\n\t }\n\t };\n\n\t /*\n\t * init\n\t */\n\n\t // don't start script unless browser cuts the mustard\n\t // (also passes if polyfills are used)\n\t if ('addEventListener' in window && Array.prototype.indexOf) {\n\t setUp();\n\t }\n\n\t /*\n\t * api\n\t */\n\n\t return {\n\t // returns string: the current input type\n\t // opt: 'intent'|'input'\n\t // 'input' (default): returns the same value as the `data-whatinput` attribute\n\t // 'intent': includes `data-whatintent` value if it's different than `data-whatinput`\n\t ask: function ask(opt) {\n\t return opt === 'intent' ? currentIntent : currentInput;\n\t },\n\n\t // returns string: the currently focused element or null\n\t element: function element() {\n\t return currentElement;\n\t },\n\n\t // overwrites ignored keys with provided array\n\t ignoreKeys: function ignoreKeys(arr) {\n\t ignoreMap = arr;\n\t },\n\n\t // overwrites specific char keys to update on\n\t specificKeys: function specificKeys(arr) {\n\t specificMap = arr;\n\t },\n\n\t // attach functions to input and intent \"events\"\n\t // funct: function to fire on change\n\t // eventType: 'input'|'intent'\n\t registerOnChange: function registerOnChange(fn, eventType) {\n\t functionList.push({\n\t fn: fn,\n\t type: eventType || 'input'\n\t });\n\t },\n\n\t unRegisterOnChange: function unRegisterOnChange(fn) {\n\t var position = objPos(fn);\n\n\t if (position || position === 0) {\n\t functionList.splice(position, 1);\n\t }\n\t },\n\n\t clearStorage: function clearStorage() {\n\t window.sessionStorage.clear();\n\t }\n\t };\n\t}();\n\n/***/ })\n/******/ ])\n});\n;","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/utils/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 iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n var url = 'https://material-ui.com/production-error/?code=' + code;\n\n for (var 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\n return 'Minified Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\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 a 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\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.reduce(function (acc, func) {\n if (func == null) {\n return acc;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof func !== 'function') {\n console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n }\n\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, function () {});\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","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","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","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/**\n * Converts array values to 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 */\nvar toCssValue = function toCssValue(value, ignoreImportant) {\n if (ignoreImportant === void 0) {\n ignoreImportant = false;\n }\n\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 (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\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 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 += '\\n';\n result += indentStr(prop + \": \" + 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 += '\\n';\n result += indentStr(_prop + \": \" + 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 += '\\n';\n result += indentStr(_prop2 + \": \" + 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 = \"\\n\" + result + \"\\n\";\n return indentStr(selector + \" {\" + 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.key = void 0;\n this.isProcessed = false;\n this.style = void 0;\n this.renderer = void 0;\n this.renderable = void 0;\n this.options = void 0;\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 _this.selectorText = void 0;\n _this.id = void 0;\n _this.renderable = void 0;\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(name, style, options) {\n if (name[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(name, 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.at = void 0;\n this.key = void 0;\n this.query = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\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 * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\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 + \" {\\n\" + children + \"\\n}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@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.key = void 0;\n this.name = void 0;\n this.id = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\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 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 = \"\\n\" + children + \"\\n\";\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 plugin = {\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 var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _BaseStyleRule.call.apply(_BaseStyleRule, [this].concat(args)) || this;\n _this.renderable = void 0;\n return _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.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\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 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 += '\\n';\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.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\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.key = void 0;\n this.value = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\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, plugin, 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 = void 0;\n this.classes = void 0;\n this.keyframes = void 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 * Get a rule.\n */\n ;\n\n _proto.get = function get(name) {\n return this.map[name];\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]; // $FlowFixMe[invalid-tuple-index]\n\n data = arguments.length <= 1 ? undefined : arguments[1]; // $FlowFixMe[invalid-tuple-index]\n\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe[invalid-tuple-index]\n\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.map[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 styleRule = rule;\n var style = styleRule.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 !== styleRule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(styleRule.style, styleRule, sheet); // Update and add props.\n\n for (var prop in styleRule.style) {\n var nextValue = styleRule.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 styleRule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = styleRule.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 styleRule.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 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 += '\\n';\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.options = void 0;\n this.deployed = void 0;\n this.attached = void 0;\n this.rules = void 0;\n this.renderer = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.queue = void 0;\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 * 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.\n */\n ;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\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 = void 0;\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 // $FlowFixMe[prop-missing]\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 them all at one place.\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 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 += '\\n';\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 registry = 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/**\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 */\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 */\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n\n/**\n * Get a style property value.\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/**\n * Set a style property.\n */\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n cssRule.style.setProperty(prop, cssValue);\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n\n/**\n * Remove a style property.\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/**\n * Set the selector.\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/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options) {\n var registry$1 = registry.registry;\n\n if (registry$1.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry$1, 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$1, 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 // https://stackoverflow.com/questions/41328728/force-casting-in-flow\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 var c = container;\n c.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n var _c = container;\n\n _c.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 // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\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.element = void 0;\n this.sheet = void 0;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) registry.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[index] = 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 * Only used for some old browsers because they can't set a selector.\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.7.1\";\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 = registry.index === 0 ? 0 : registry.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 registry.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 // $FlowFixMe[incompatible-call]\n return this.createRule(undefined, name, style);\n } // $FlowFixMe[incompatible-type]\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\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 * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\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 * 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 */\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 * Creates a new instance of Jss.\n */\n\nvar create = function create(options) {\n return new Jss(options);\n};\n/**\n * A global Jss instance.\n */\n\nvar jss = create();\n\nexport default jss;\nexport { RuleList, SheetsManager, SheetsRegistry, create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, registry as sheets, toCssValue };\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getDisplayName } from '@material-ui/utils';\nexport default function mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n\n if (!newClasses) {\n return baseClasses;\n }\n\n var nextClasses = _extends({}, baseClasses);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([\"Material-UI: The value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat(getDisplayName(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n\n Object.keys(newClasses).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat(getDisplayName(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n }\n\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat(getDisplayName(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n }\n }\n\n if (newClasses[key]) {\n nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}","// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nexport default multiKeyStore;","import React from 'react';\nvar ThemeContext = React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n var theme = React.useContext(ThemeContext);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","var hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import nested from '../ThemeProvider/nested';\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nexport default function createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? '' : _options$seed;\n var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n var ruleCounter = 0;\n\n var getNextCounterId = function getNextCounterId() {\n ruleCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n\n return ruleCounter;\n };\n\n return function (rule, styleSheet) {\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return \"Mui-\".concat(rule.key);\n }\n\n var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n\n if (!styleSheet.options.theme[nested] || seed !== '') {\n return prefix;\n }\n\n return \"\".concat(prefix, \"-\").concat(getNextCounterId());\n }\n\n if (process.env.NODE_ENV === 'production') {\n return \"\".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());\n }\n\n var suffix = \"\".concat(rule.key, \"-\").concat(getNextCounterId()); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n }\n\n return \"\".concat(seedPrefix).concat(suffix);\n };\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 } // $FlowFixMe[prop-missing]\n\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule; // $FlowFixMe[prop-missing]\n\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 } // $FlowFixMe[prop-missing]\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","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.rules = void 0;\n this.options = void 0;\n this.key = void 0;\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 * 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() {\n return this.rules.toString();\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.options = void 0;\n this.rule = void 0;\n this.isProcessed = false;\n this.key = void 0;\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 * @param {Rule} rule\n * @api public\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.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 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 * @param {Rule} rule\n * @api public\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 rule = 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 // $FlowFixMe[prop-missing]\n\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 container.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options) // Flow expects more options but they aren't required\n // And flow doesn't know this will always be a StyleRule which has the addRule method\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n .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","/* 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 * @param {Object} style\n * @return {Object}\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 * @param {Rule} rule\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 * @type object\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 */\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","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export 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}","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 * @api public\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 global from 'jss-plugin-global';\nimport nested from 'jss-plugin-nested';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort'; // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nexport default function jssPreset() {\n return {\n plugins: [functions(), global(), nested(), camelCase(), defaultUnit(), // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : vendorPrefixer(), propsSort()]\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport createGenerateClassName from '../createGenerateClassName';\nimport { create } from 'jss';\nimport jssPreset from '../jssPreset'; // Default JSS instance.\n\nvar jss = create(jssPreset()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = createGenerateClassName(); // Exported for test purposes\n\nexport var sheetsManager = new Map();\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\nexport var StylesContext = React.createContext(defaultOptions);\n\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\n\nvar injectFirstNode;\nexport default function StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = _objectWithoutProperties(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n\n var outerOptions = React.useContext(StylesContext);\n\n var context = _extends({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('Material-UI: You need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('Material-UI: You cannot use a custom insertionPoint and <StylesContext injectFirst> at the same time.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('Material-UI: You cannot use the jss and injectFirst props at the same time.');\n }\n }\n\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n\n context.jss = create({\n plugins: jssPreset().plugins,\n insertionPoint: injectFirstNode\n });\n }\n\n return /*#__PURE__*/React.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * You can disable the generation of the styles with this option.\n * It can be useful when traversing the React tree outside of the HTML\n * rendering step on the server.\n * Let's say you are using react-apollo to extract all\n * the queries made by the interface server-side - you can significantly speed up the traversal with this prop.\n */\n disableGeneration: PropTypes.bool,\n\n /**\n * JSS's class name generator.\n */\n generateClassName: PropTypes.func,\n\n /**\n * By default, the styles are injected last in the <head> element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override Material-UI's styles, set this prop.\n */\n injectFirst: PropTypes.bool,\n\n /**\n * JSS's instance.\n */\n jss: PropTypes.object,\n\n /**\n * @ignore\n */\n serverGenerateClassName: PropTypes.func,\n\n /**\n * @ignore\n *\n * Beta feature.\n *\n * Cache for the sheets.\n */\n sheetsCache: PropTypes.object,\n\n /**\n * @ignore\n *\n * The sheetsManager is used to deduplicate style sheet injection in the page.\n * It's deduplicating using the (theme, styles) couple.\n * On the server, you should provide a new instance for each request.\n */\n sheetsManager: PropTypes.object,\n\n /**\n * @ignore\n *\n * Collect the sheets.\n */\n sheetsRegistry: PropTypes.object\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = exactProp(StylesProvider.propTypes) : void 0;\n}","/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nexport function increment() {\n indexCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['Material-UI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n\n return indexCounter;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function isPlainObject(item) {\n return item && _typeof(item) === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? _extends({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { deepmerge } from '@material-ui/utils';\nimport noopTheme from './noopTheme';\nexport default function getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === 'function';\n\n if (process.env.NODE_ENV !== 'production') {\n if (_typeof(stylesOrCreator) !== 'object' && !themingEnabled) {\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n\n return {\n create: function create(theme, name) {\n var styles;\n\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === noopTheme) {\n // TODO: prepend error message/name instead\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n throw err;\n }\n\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n\n var overrides = theme.overrides[name];\n\n var stylesWithOverrides = _extends({}, styles);\n\n Object.keys(overrides).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['Material-UI: You are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n }\n }\n\n stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}","// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\nexport default noopTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { getDynamicStyles } from 'jss';\nimport mergeClasses from '../mergeClasses';\nimport multiKeyStore from './multiKeyStore';\nimport useTheme from '../useTheme';\nimport { StylesContext } from '../StylesProvider';\nimport { increment } from './indexCounter';\nimport getStylesCreator from '../getStylesCreator';\nimport noopTheme from '../getStylesCreator/noopTheme';\n\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n\n var generate = false;\n\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n\n if (generate) {\n state.cacheClasses.value = mergeClasses({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n\n return state.cacheClasses.value;\n}\n\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n\n var options = _extends({}, stylesCreator.options, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n var staticSheet;\n\n if (stylesOptions.sheetsCache) {\n staticSheet = multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n\n var styles = stylesCreator.create(theme, name);\n\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, _extends({\n link: false\n }, options));\n staticSheet.attach();\n\n if (stylesOptions.sheetsCache) {\n multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = getDynamicStyles(styles);\n }\n\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = mergeClasses({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n\n sheetManager.refs += 1;\n}\n\nfunction update(_ref3, props) {\n var state = _ref3.state;\n\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\n\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n multiKeyStore.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\n\nfunction useSynchronousEffect(func, values) {\n var key = React.useRef([]);\n var output; // Store \"generation\" key. Just returns a new object every time\n\n var currentKey = React.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // \"the first render\", or \"memo dropped the value\"\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n\n React.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nexport default function makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? noopTheme : _options$defaultTheme,\n stylesOptions2 = _objectWithoutProperties(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n\n var stylesCreator = getStylesCreator(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: increment(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n\n var useStyles = function useStyles() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = useTheme() || defaultTheme;\n\n var stylesOptions = _extends({}, React.useContext(StylesContext), stylesOptions2);\n\n var instance = React.useRef();\n var shouldUpdate = React.useRef();\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n React.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n\n shouldUpdate.current = true;\n });\n var classes = getClasses(instance.current, props.classes, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(classes);\n }\n\n return classes;\n };\n\n return useStyles;\n}","/* eslint-disable no-restricted-syntax */\nexport default function getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n var defaultProps = theme.props[name];\n var propName;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? WithStyles.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: chainPropTypes(PropTypes.oneOfType([PropTypes.func, PropTypes.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return null; // return new Error(\n // 'Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' +\n // 'Refs are now automatically forwarded to the inner component.',\n // );\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nexport default withStyles;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","var 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: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var 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;","var 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;","var 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;","var 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;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\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 clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\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 *\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 */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\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 *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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 */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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 *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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 */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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 */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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 */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\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 (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var 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.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: '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: grey[50]\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 var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: '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: grey[800],\n default: '#303030'\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};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\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}\n\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // 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\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(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\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: 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: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://material-ui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var 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 };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar 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;","var shape = {\n borderRadius: 4\n};\nexport default shape;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { deepmerge } from '@material-ui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar 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: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (_typeof(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\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'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default breakpoints;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = memoize(function (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\n var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\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 (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\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 var 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}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var 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};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://material-ui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\nexport function createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\nexport default createTheme;","import createTheme from './createTheme';\nvar defaultTheme = createTheme();\nexport default defaultTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n fontSize: theme.typography.pxToRem(24),\n transition: theme.transitions.create('fill', {\n duration: theme.transitions.duration.shorter\n })\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color=\"action\"`. */\n colorAction: {\n color: theme.palette.action.active\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `color=\"disabled\"`. */\n colorDisabled: {\n color: theme.palette.action.disabled\n },\n\n /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n fontSizeInherit: {\n fontSize: 'inherit'\n },\n\n /* Styles applied to the root element if `fontSize=\"small\"`. */\n fontSizeSmall: {\n fontSize: theme.typography.pxToRem(20)\n },\n\n /* Styles applied to the root element if `fontSize=\"large\"`. */\n fontSizeLarge: {\n fontSize: theme.typography.pxToRem(35)\n }\n };\n};\nvar SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'inherit' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'svg' : _props$component,\n _props$fontSize = props.fontSize,\n fontSize = _props$fontSize === void 0 ? 'medium' : _props$fontSize,\n htmlColor = props.htmlColor,\n titleAccess = props.titleAccess,\n _props$viewBox = props.viewBox,\n viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"titleAccess\", \"viewBox\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, color !== 'inherit' && classes[\"color\".concat(capitalize(color))], fontSize !== 'default' && fontSize !== 'medium' && classes[\"fontSize\".concat(capitalize(fontSize))]),\n focusable: \"false\",\n viewBox: viewBox,\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, other), children, titleAccess ? /*#__PURE__*/React.createElement(\"title\", null, titleAccess) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n */\n color: PropTypes.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']),\n\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\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n */\n fontSize: chainPropTypes(PropTypes.oneOf(['default', 'inherit', 'large', 'medium', 'small']), function (props) {\n var fontSize = props.fontSize;\n\n if (fontSize === 'default') {\n throw new Error('Material-UI: `fontSize=\"default\"` is deprecated. Use `fontSize=\"medium\"` instead.');\n }\n\n return null;\n }),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n\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 property.\n */\n shapeRendering: PropTypes.string,\n\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 /**\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 */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default withStyles(styles, {\n name: 'MuiSvgIcon'\n})(SvgIcon);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport SvgIcon from '../SvgIcon';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function createSvgIcon(path, displayName) {\n var Component = function Component(props, ref) {\n return /*#__PURE__*/React.createElement(SvgIcon, _extends({\n ref: ref\n }, props), 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 = \"\".concat(displayName, \"Icon\");\n }\n\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\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) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;\n var timeout;\n\n function debounced() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // eslint-disable-next-line consistent-this\n var that = this;\n\n var later = function later() {\n func.apply(that, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = function () {\n clearTimeout(timeout);\n };\n\n return debounced;\n}","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n return function (props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The \".concat(location, \" `\").concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameSafe, \"` is deprecated. \").concat(reason));\n }\n\n return null;\n };\n}","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(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 var doc = ownerDocument(node);\n return doc.defaultView || window;\n}","export default function requirePropFactory(componentNameInError) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n var requireProp = function requireProp(requiredProp) {\n return function (props, propName, componentName, location, propFullName) {\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(\"The prop `\".concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameInError, \"` must be used on `\").concat(requiredProp, \"`.\"));\n }\n\n return null;\n };\n };\n\n return requireProp;\n}","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The prop `\".concat(propFullNameSafe, \"` is not supported. Please remove it.\"));\n }\n\n return null;\n}","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled(_ref) {\n var controlled = _ref.controlled,\n defaultProp = _ref.default,\n name = _ref.name,\n _ref$state = _ref.state,\n state = _ref$state === void 0 ? 'value' : _ref$state;\n\n var _React$useRef = React.useRef(controlled !== undefined),\n isControlled = _React$useRef.current;\n\n var _React$useState = React.useState(defaultProp),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var value = isControlled ? controlled : valueState;\n\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(function () {\n if (isControlled !== (controlled !== undefined)) {\n console.error([\"Material-UI: A component is changing the \".concat(isControlled ? '' : 'un', \"controlled \").concat(state, \" state of \").concat(name, \" to be \").concat(isControlled ? 'un' : '', \"controlled.\"), 'Elements should not switch from uncontrolled to controlled (or vice versa).', \"Decide between using a controlled or uncontrolled \".concat(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 }, [controlled]);\n\n var _React$useRef2 = React.useRef(defaultProp),\n defaultValue = _React$useRef2.current;\n\n React.useEffect(function () {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([\"Material-UI: A component is changing the default \".concat(state, \" state of an uncontrolled \").concat(name, \" after being initialized. \") + \"To suppress this warning opt to use a controlled \".concat(name, \".\")].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n\n var setValueIfUncontrolled = React.useCallback(function (newValue) {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are 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(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","import * as React from 'react';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function useId(idOverride) {\n var _React$useState = React.useState(idOverride),\n defaultId = _React$useState[0],\n setDefaultId = _React$useState[1];\n\n var id = idOverride || defaultId;\n React.useEffect(function () {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the random value for client-side rendering only.\n // We can't use it server-side.\n setDefaultId(\"mui-\".concat(Math.round(Math.random() * 1e5)));\n }\n }, [defaultId]);\n return id;\n}","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar 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 * 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 * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\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 */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\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 */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\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}\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}\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}\n\nfunction isFocusVisible(event) {\n var target = event.target;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {} // 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 // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\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 window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\n\nexport default function useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(isFocusVisible);\n }\n\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","export var slice = Array.prototype.slice;\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","import { useState, useEffect } from 'react';\nimport { useIsomorphicLayoutEffect } from '@reach/utils/use-isomorphic-layout-effect';\n\n/*\n * Welcome to @reach/auto-id!\n\n * Let's see if we can make sense of why this hook exists and its\n * implementation.\n *\n * Some background:\n * 1. Accessibility APIs rely heavily on element IDs\n * 2. Requiring developers to put IDs on every element in Reach UI is both\n * cumbersome and error-prone\n * 3. With a component model, we can generate IDs for them!\n *\n * Solution 1: Generate random IDs.\n *\n * This works great as long as you don't server render your app. When React (in\n * the client) tries to reuse the markup from the server, the IDs won't match\n * and React will then recreate the entire DOM tree.\n *\n * Solution 2: Increment an integer\n *\n * This sounds great. Since we're rendering the exact same tree on the server\n * and client, we can increment a counter and get a deterministic result between\n * client and server. Also, JS integers can go up to nine-quadrillion. I'm\n * pretty sure the tab will be closed before an app never needs\n * 10 quadrillion IDs!\n *\n * Problem solved, right?\n *\n * Ah, but there's a catch! React's concurrent rendering makes this approach\n * non-deterministic. While the client and server will end up with the same\n * elements in the end, depending on suspense boundaries (and possibly some user\n * input during the initial render) the incrementing integers won't always match\n * up.\n *\n * Solution 3: Don't use IDs at all on the server; patch after first render.\n *\n * What we've done here is solution 2 with some tricks. With this approach, the\n * ID returned is an empty string on the first render. This way the server and\n * client have the same markup no matter how wild the concurrent rendering may\n * have gotten.\n *\n * After the render, we patch up the components with an incremented ID. This\n * causes a double render on any components with `useId`. Shouldn't be a problem\n * since the components using this hook should be small, and we're only updating\n * the ID attribute on the DOM, nothing big is happening.\n *\n * It doesn't have to be an incremented number, though--we could do generate\n * random strings instead, but incrementing a number is probably the cheapest\n * thing we can do.\n *\n * Additionally, we only do this patchup on the very first client render ever.\n * Any calls to `useId` that happen dynamically in the client will be\n * populated immediately with a value. So, we only get the double render after\n * server hydration and never again, SO BACK OFF ALRIGHT?\n */\nvar serverHandoffComplete = false;\nvar id = 0;\n\nvar genId = function genId() {\n return ++id;\n};\n/**\n * useId\n *\n * Autogenerate IDs to facilitate WAI-ARIA and server rendering.\n *\n * Note: The returned ID will initially be `null` and will update after a\n * component mounts. Users may need to supply their own ID if they need\n * consistent values for SSR.\n *\n * @see Docs https://reach.tech/auto-id\n */\n\n\nfunction useId(idFromProps) {\n /*\n * If this instance isn't part of the initial render, we don't have to do the\n * double render/patch-up dance. We can just generate the ID and return it.\n */\n var initialId = idFromProps || (serverHandoffComplete ? genId() : null);\n\n var _React$useState = useState(initialId),\n id = _React$useState[0],\n setId = _React$useState[1];\n\n useIsomorphicLayoutEffect(function () {\n if (id === null) {\n /*\n * Patch the ID after render. We do this in `useLayoutEffect` to avoid any\n * rendering flicker, though it'll make the first render slower (unlikely\n * to matter, but you're welcome to measure your app and let us know if\n * it's a problem).\n */\n setId(genId());\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n useEffect(function () {\n if (serverHandoffComplete === false) {\n /*\n * Flag all future uses of `useId` to skip the update dance. This is in\n * `useEffect` because it goes after `useLayoutEffect`, ensuring we don't\n * accidentally bail out of the patch-up dance prematurely.\n */\n serverHandoffComplete = true;\n }\n }, []);\n return id != null ? String(id) : undefined;\n}\n\nexport { useId };\n","import { canUseDOM } from '../../can-use-dom/dist/reach-utils-can-use-dom.esm.js';\n\n/**\n * Get an element's owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\n\nfunction getOwnerDocument(element) {\n return canUseDOM() ? element ? element.ownerDocument : document : null;\n}\n/**\n * TODO: Remove in 1.0\n */\n\nfunction getOwnerWindow(element) {\n var ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\nexport { getOwnerDocument, getOwnerWindow };\n","/**\n * Joins strings to format IDs for compound components.\n *\n * @param args\n */\nfunction makeId() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.filter(function (val) {\n return val != null;\n }).join(\"--\");\n}\n\nexport { makeId };\n","/**\n * Checks whether or not a value is a boolean.\n *\n * @param value\n */\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\n/**\n * Checks whether or not a value is a function.\n *\n * @param value\n */\n\nfunction isFunction(value) {\n // eslint-disable-next-line eqeqeq\n return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\n/**\n * Checks whether or not a value is a number.\n *\n * @param value\n */\n\nfunction isNumber(value) {\n return typeof value === \"number\" && !isNaN(value);\n}\n/**\n * Checks whether or not a value is a string.\n *\n * @param value\n */\n\nfunction isString(value) {\n return typeof value === \"string\";\n}\n\nexport { isBoolean, isFunction, isNumber, isString };\n","import { useCallback } from 'react';\nimport { isFunction } from '../../type-check/dist/reach-utils-type-check.esm.js';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\n/**\n * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(\"Cannot assign value \\\"\" + value + \"\\\" to ref \\\"\" + ref + \"\\\"\");\n }\n }\n}\n/**\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\n * dealing with components that need an explicit ref for DOM calculations but\n * also forwards refs assigned by an app.\n *\n * @param refs Refs to fork\n */\n\nfunction useComposedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useCallback(function (node) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n assignRef(ref, node);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, refs);\n}\n\nexport { assignRef, useComposedRefs };\n","/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return function (event) {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\nexport { composeEventHandlers };\n","import { forwardRef, createElement } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"as\", \"style\"];\n\n/**\n * VisuallyHidden\n *\n * Provides text for screen readers that is visually hidden.\n * It is the logical opposite of the `aria-hidden` attribute.\n */\nvar VisuallyHidden = /*#__PURE__*/forwardRef(function VisuallyHidden(_ref, ref) {\n var _ref$as = _ref.as,\n Comp = _ref$as === void 0 ? \"span\" : _ref$as,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/createElement(Comp, _extends({\n ref: ref,\n style: _extends({\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n }, style)\n }, props));\n});\n/**\n * @see Docs https://reach.tech/visually-hidden#visuallyhidden-props\n */\n\nif (process.env.NODE_ENV !== \"production\") {\n VisuallyHidden.displayName = \"VisuallyHidden\";\n VisuallyHidden.propTypes = {\n as: PropTypes.any,\n children: PropTypes.node\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\nexport default VisuallyHidden;\nexport { VisuallyHidden };\n","var props = [\"bottom\", \"height\", \"left\", \"right\", \"top\", \"width\"];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes = /*#__PURE__*/new Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes[\"delete\"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\nexport default observeRect;\n//# sourceMappingURL=observe-rect.esm.js.map\n","import { useRef, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport observeRect from '@reach/observe-rect';\nimport { useIsomorphicLayoutEffect } from '@reach/utils/use-isomorphic-layout-effect';\nimport { isBoolean, isFunction } from '@reach/utils/type-check';\nimport warning from 'tiny-warning';\n\n/**\n * Welcome to @reach/rect!\n *\n * Measures DOM elements (aka. bounding client rect).\n *\n * @see getBoundingClientRect https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect\n * @see Docs https://reach.tech/rect\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/rect\n */\n\n/**\n * Rect\n *\n * @param props\n */\n\nvar Rect = function Rect(_ref) {\n var onChange = _ref.onChange,\n _ref$observe = _ref.observe,\n observe = _ref$observe === void 0 ? true : _ref$observe,\n children = _ref.children;\n var ref = useRef(null);\n var rect = useRect(ref, {\n observe: observe,\n onChange: onChange\n });\n return children({\n ref: ref,\n rect: rect\n });\n};\n/**\n * @see Docs https://reach.tech/rect#rect-props\n */\n\n\nif (process.env.NODE_ENV !== \"production\") {\n Rect.displayName = \"Rect\";\n Rect.propTypes = {\n children: PropTypes.func.isRequired,\n observe: PropTypes.bool,\n onChange: PropTypes.func\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\n\n/**\n * useRect\n *\n * @param nodeRef\n * @param observe\n * @param onChange\n */\nfunction useRect(nodeRef, observeOrOptions, deprecated_onChange) {\n var observe;\n var onChange;\n\n if (isBoolean(observeOrOptions)) {\n observe = observeOrOptions;\n } else {\n var _observeOrOptions$obs;\n\n observe = (_observeOrOptions$obs = observeOrOptions == null ? void 0 : observeOrOptions.observe) != null ? _observeOrOptions$obs : true;\n onChange = observeOrOptions == null ? void 0 : observeOrOptions.onChange;\n }\n\n if (isFunction(deprecated_onChange)) {\n onChange = deprecated_onChange;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n process.env.NODE_ENV !== \"production\" ? warning(!isBoolean(observeOrOptions), \"Passing `observe` as the second argument to `useRect` is deprecated and will be removed in a future version of Reach UI. Instead, you can pass an object of options with an `observe` property as the second argument (`useRect(ref, { observe })`).\\n\" + \"See https://reach.tech/rect#userect-observe\") : void 0;\n }, [observeOrOptions]); // eslint-disable-next-line react-hooks/rules-of-hooks\n\n useEffect(function () {\n process.env.NODE_ENV !== \"production\" ? warning(!isFunction(deprecated_onChange), \"Passing `onChange` as the third argument to `useRect` is deprecated and will be removed in a future version of Reach UI. Instead, you can pass an object of options with an `onChange` property as the second argument (`useRect(ref, { onChange })`).\\n\" + \"See https://reach.tech/rect#userect-onchange\") : void 0;\n }, [deprecated_onChange]);\n }\n\n var _React$useState = useState(nodeRef.current),\n element = _React$useState[0],\n setElement = _React$useState[1];\n\n var initialRectIsSet = useRef(false);\n var initialRefIsSet = useRef(false);\n\n var _React$useState2 = useState(null),\n rect = _React$useState2[0],\n setRect = _React$useState2[1];\n\n var onChangeRef = useRef(onChange); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n useIsomorphicLayoutEffect(function () {\n onChangeRef.current = onChange;\n\n if (nodeRef.current !== element) {\n setElement(nodeRef.current);\n }\n });\n useIsomorphicLayoutEffect(function () {\n if (element && !initialRectIsSet.current) {\n initialRectIsSet.current = true;\n setRect(element.getBoundingClientRect());\n }\n }, [element]);\n useIsomorphicLayoutEffect(function () {\n if (!observe) {\n return;\n }\n\n var elem = element; // State initializes before refs are placed, meaning the element state will\n // be undefined on the first render. We still want the rect on the first\n // render, so initially we'll use the nodeRef that was passed instead of\n // state for our measurements.\n\n if (!initialRefIsSet.current) {\n initialRefIsSet.current = true;\n elem = nodeRef.current;\n }\n\n if (!elem) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"You need to place the ref\");\n }\n\n return;\n }\n\n var observer = observeRect(elem, function (rect) {\n onChangeRef.current == null ? void 0 : onChangeRef.current(rect);\n setRect(rect);\n });\n observer.observe();\n return function () {\n observer.unobserve();\n };\n }, [observe, element, nodeRef]);\n return rect;\n}\n\nexport default Rect;\nexport { Rect, useRect };\n","import { useState, useRef, useEffect, forwardRef, Children, createElement, Fragment, cloneElement } from 'react';\nimport { useId } from '@reach/auto-id';\nimport { getDocumentDimensions } from '@reach/utils/get-document-dimensions';\nimport { getOwnerDocument } from '@reach/utils/owner-document';\nimport { makeId } from '@reach/utils/make-id';\nimport { useCheckStyles } from '@reach/utils/dev-utils';\nimport { useComposedRefs } from '@reach/utils/compose-refs';\nimport { composeEventHandlers } from '@reach/utils/compose-event-handlers';\nimport { Portal } from '@reach/portal';\nimport { VisuallyHidden } from '@reach/visually-hidden';\nimport { useRect } from '@reach/rect';\nimport warning from 'tiny-warning';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"children\", \"label\", \"ariaLabel\", \"id\", \"DEBUG_STYLE\"],\n _excluded2 = [\"label\", \"ariaLabel\", \"isVisible\", \"id\"],\n _excluded3 = [\"ariaLabel\", \"aria-label\", \"as\", \"id\", \"isVisible\", \"label\", \"position\", \"style\", \"triggerRect\"],\n _excluded4 = [\"type\"];\n\nvar _on, _on2, _on3, _on4, _on5, _states;\nvar MOUSE_REST_TIMEOUT = 100;\nvar LEAVE_TIMEOUT = 500; ////////////////////////////////////////////////////////////////////////////////\n// States\n\nvar TooltipStates; ////////////////////////////////////////////////////////////////////////////////\n// Events\n\n(function (TooltipStates) {\n TooltipStates[\"Idle\"] = \"IDLE\";\n TooltipStates[\"Focused\"] = \"FOCUSED\";\n TooltipStates[\"Visible\"] = \"VISIBLE\";\n TooltipStates[\"LeavingVisible\"] = \"LEAVING_VISIBLE\";\n TooltipStates[\"Dismissed\"] = \"DISMISSED\";\n})(TooltipStates || (TooltipStates = {}));\n\nvar TooltipEvents;\n\n(function (TooltipEvents) {\n TooltipEvents[\"Blur\"] = \"BLUR\";\n TooltipEvents[\"Focus\"] = \"FOCUS\";\n TooltipEvents[\"GlobalMouseMove\"] = \"GLOBAL_MOUSE_MOVE\";\n TooltipEvents[\"MouseDown\"] = \"MOUSE_DOWN\";\n TooltipEvents[\"MouseEnter\"] = \"MOUSE_ENTER\";\n TooltipEvents[\"MouseLeave\"] = \"MOUSE_LEAVE\";\n TooltipEvents[\"MouseMove\"] = \"MOUSE_MOVE\";\n TooltipEvents[\"Rest\"] = \"REST\";\n TooltipEvents[\"SelectWithKeyboard\"] = \"SELECT_WITH_KEYBOARD\";\n TooltipEvents[\"TimeComplete\"] = \"TIME_COMPLETE\";\n})(TooltipEvents || (TooltipEvents = {}));\n\nvar chart = {\n initial: TooltipStates.Idle,\n states: (_states = {}, _states[TooltipStates.Idle] = {\n enter: clearContextId,\n on: (_on = {}, _on[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on[TooltipEvents.Focus] = TooltipStates.Visible, _on)\n }, _states[TooltipStates.Focused] = {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: (_on2 = {}, _on2[TooltipEvents.MouseMove] = TooltipStates.Focused, _on2[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on2[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on2[TooltipEvents.Blur] = TooltipStates.Idle, _on2[TooltipEvents.Rest] = TooltipStates.Visible, _on2)\n }, _states[TooltipStates.Visible] = {\n on: (_on3 = {}, _on3[TooltipEvents.Focus] = TooltipStates.Focused, _on3[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on3[TooltipEvents.MouseLeave] = TooltipStates.LeavingVisible, _on3[TooltipEvents.Blur] = TooltipStates.LeavingVisible, _on3[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on3[TooltipEvents.SelectWithKeyboard] = TooltipStates.Dismissed, _on3[TooltipEvents.GlobalMouseMove] = TooltipStates.LeavingVisible, _on3)\n }, _states[TooltipStates.LeavingVisible] = {\n enter: startLeavingVisibleTimer,\n leave: function leave() {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: (_on4 = {}, _on4[TooltipEvents.MouseEnter] = TooltipStates.Visible, _on4[TooltipEvents.Focus] = TooltipStates.Visible, _on4[TooltipEvents.TimeComplete] = TooltipStates.Idle, _on4)\n }, _states[TooltipStates.Dismissed] = {\n leave: function leave() {\n clearContextId();\n },\n on: (_on5 = {}, _on5[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on5[TooltipEvents.Blur] = TooltipStates.Idle, _on5)\n }, _states)\n};\n/*\n * Chart context allows us to persist some data around, in Tooltip all we use\n * is the id of the current tooltip being interacted with.\n */\n\nvar state = {\n value: chart.initial,\n context: {\n id: null\n }\n}; ////////////////////////////////////////////////////////////////////////////////\n// Subscriptions:\n//\n// We could require apps to render a <TooltipProvider> around the app and use\n// React context to notify Tooltips of changes to our state machine, instead\n// we manage subscriptions ourselves and simplify the Tooltip API.\n//\n// Maybe if default context could take a hook (instead of just a static value)\n// that was rendered at the root for us, that'd be cool! But it doesn't.\n\nvar subscriptions = [];\n\nfunction subscribe(fn) {\n subscriptions.push(fn);\n return function () {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n}\n\nfunction notify() {\n subscriptions.forEach(function (fn) {\n return fn(state);\n });\n} ////////////////////////////////////////////////////////////////////////////////\n// Timeouts:\n// Manages when the user \"rests\" on an element. Keeps the interface from being\n// flashing tooltips all the time as the user moves the mouse around the screen.\n\n\nvar restTimeout;\n\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(function () {\n send({\n type: TooltipEvents.Rest\n });\n }, MOUSE_REST_TIMEOUT);\n}\n\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n} // Manages the delay to hide the tooltip after rest leaves.\n\n\nvar leavingVisibleTimer;\n\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(function () {\n return send({\n type: TooltipEvents.TimeComplete\n });\n }, LEAVE_TIMEOUT);\n}\n\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n} // allows us to come on back later w/o entering something else first after the\n// user leaves or dismisses\n\n\nfunction clearContextId() {\n state.context.id = null;\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * useTooltip\n *\n * @param params\n */\n\n\nfunction useTooltip(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n idProp = _ref.id,\n onPointerEnter = _ref.onPointerEnter,\n onPointerMove = _ref.onPointerMove,\n onPointerLeave = _ref.onPointerLeave,\n onPointerDown = _ref.onPointerDown,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onMouseDown = _ref.onMouseDown,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onKeyDown = _ref.onKeyDown,\n disabled = _ref.disabled,\n forwardedRef = _ref.ref,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n\n var id = String(useId(idProp));\n\n var _React$useState = useState(DEBUG_STYLE ? true : isTooltipVisible(id, true)),\n isVisible = _React$useState[0],\n setIsVisible = _React$useState[1]; // hopefully they always pass a ref if they ever pass one\n\n\n var ownRef = useRef(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var triggerRect = useRect(ownRef, {\n observe: isVisible\n });\n useEffect(function () {\n return subscribe(function () {\n setIsVisible(isTooltipVisible(id));\n });\n }, [id]);\n useCheckStyles(\"tooltip\");\n useEffect(function () {\n var ownerDocument = getOwnerDocument(ownRef.current);\n\n function listener(event) {\n if ((event.key === \"Escape\" || event.key === \"Esc\") && state.value === TooltipStates.Visible) {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n ownerDocument.addEventListener(\"keydown\", listener);\n return function () {\n return ownerDocument.removeEventListener(\"keydown\", listener);\n };\n }, []);\n useDisabledTriggerOnSafari({\n disabled: disabled,\n isVisible: isVisible,\n ref: ownRef\n });\n\n function wrapMouseEvent(theirHandler, ourHandler) {\n // Use internal MouseEvent handler only if PointerEvent is not supported\n if (typeof window !== \"undefined\" && \"PointerEvent\" in window) {\n return theirHandler;\n }\n\n return composeEventHandlers(theirHandler, ourHandler);\n }\n\n function wrapPointerEventHandler(handler) {\n return function onPointerEvent(event) {\n // Handle pointer events only from mouse device\n if (event.pointerType !== \"mouse\") {\n return;\n }\n\n handler(event);\n };\n }\n\n function handleMouseEnter() {\n send({\n type: TooltipEvents.MouseEnter,\n id: id\n });\n }\n\n function handleMouseMove() {\n send({\n type: TooltipEvents.MouseMove,\n id: id\n });\n }\n\n function handleMouseLeave() {\n send({\n type: TooltipEvents.MouseLeave\n });\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.MouseDown\n });\n }\n }\n\n function handleFocus() {\n // @ts-ignore\n if (window.__REACH_DISABLE_TOOLTIPS) {\n return;\n }\n\n send({\n type: TooltipEvents.Focus,\n id: id\n });\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.Blur\n });\n }\n }\n\n function handleKeyDown(event) {\n if (event.key === \"Enter\" || event.key === \" \") {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n var trigger = {\n // The element that triggers the tooltip references the tooltip element with\n // `aria-describedby`.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n \"aria-describedby\": isVisible ? makeId(\"tooltip\", id) : undefined,\n \"data-state\": isVisible ? \"tooltip-visible\" : \"tooltip-hidden\",\n \"data-reach-tooltip-trigger\": \"\",\n ref: ref,\n onPointerEnter: composeEventHandlers(onPointerEnter, wrapPointerEventHandler(handleMouseEnter)),\n onPointerMove: composeEventHandlers(onPointerMove, wrapPointerEventHandler(handleMouseMove)),\n onPointerLeave: composeEventHandlers(onPointerLeave, wrapPointerEventHandler(handleMouseLeave)),\n onPointerDown: composeEventHandlers(onPointerDown, wrapPointerEventHandler(handleMouseDown)),\n onMouseEnter: wrapMouseEvent(onMouseEnter, handleMouseEnter),\n onMouseMove: wrapMouseEvent(onMouseMove, handleMouseMove),\n onMouseLeave: wrapMouseEvent(onMouseLeave, handleMouseLeave),\n onMouseDown: wrapMouseEvent(onMouseDown, handleMouseDown),\n onFocus: composeEventHandlers(onFocus, handleFocus),\n onBlur: composeEventHandlers(onBlur, handleBlur),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown)\n };\n var tooltip = {\n id: id,\n triggerRect: triggerRect,\n isVisible: isVisible\n };\n return [trigger, tooltip, isVisible];\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Tooltip\n *\n * @see Docs https://reach.tech/tooltip#tooltip\n */\n\n\nvar Tooltip = /*#__PURE__*/forwardRef(function (_ref2, forwardedRef) {\n var children = _ref2.children,\n label = _ref2.label,\n DEPRECATED_ariaLabel = _ref2.ariaLabel,\n id = _ref2.id,\n DEBUG_STYLE = _ref2.DEBUG_STYLE,\n props = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var child = Children.only(children);\n process.env.NODE_ENV !== \"production\" ? warning(!DEPRECATED_ariaLabel, \"The `ariaLabel prop is deprecated and will be removed from @reach/tooltip in a future version of Reach UI. Please use `aria-label` instead.\") : void 0; // We need to pass some properties from the child into useTooltip\n // to make sure users can maintain control over the trigger's ref and events\n\n var _useTooltip = useTooltip({\n id: id,\n onPointerEnter: child.props.onPointerEnter,\n onPointerMove: child.props.onPointerMove,\n onPointerLeave: child.props.onPointerLeave,\n onPointerDown: child.props.onPointerDown,\n onMouseEnter: child.props.onMouseEnter,\n onMouseMove: child.props.onMouseMove,\n onMouseLeave: child.props.onMouseLeave,\n onMouseDown: child.props.onMouseDown,\n onFocus: child.props.onFocus,\n onBlur: child.props.onBlur,\n onKeyDown: child.props.onKeyDown,\n disabled: child.props.disabled,\n ref: child.ref,\n DEBUG_STYLE: DEBUG_STYLE\n }),\n trigger = _useTooltip[0],\n tooltip = _useTooltip[1];\n\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/cloneElement(child, trigger), /*#__PURE__*/createElement(TooltipPopup, _extends({\n ref: forwardedRef,\n label: label,\n \"aria-label\": DEPRECATED_ariaLabel\n }, tooltip, props)));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Tooltip.displayName = \"Tooltip\";\n Tooltip.propTypes = {\n children: PropTypes.node.isRequired,\n label: PropTypes.node.isRequired,\n ariaLabel: PropTypes.string\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * TooltipPopup\n *\n * @see Docs https://reach.tech/tooltip#tooltippopup\n */\n\n\nvar TooltipPopup = /*#__PURE__*/forwardRef(function TooltipPopup(_ref3, forwardRef) {\n var label = _ref3.label,\n DEPRECATED_ariaLabel = _ref3.ariaLabel,\n isVisible = _ref3.isVisible,\n id = _ref3.id,\n props = _objectWithoutPropertiesLoose(_ref3, _excluded2);\n\n return isVisible ? /*#__PURE__*/createElement(Portal, null, /*#__PURE__*/createElement(TooltipContent, _extends({\n ref: forwardRef,\n label: label,\n \"aria-label\": DEPRECATED_ariaLabel,\n isVisible: isVisible\n }, props, {\n id: makeId(\"tooltip\", String(id))\n }))) : null;\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n TooltipPopup.displayName = \"TooltipPopup\";\n TooltipPopup.propTypes = {\n label: PropTypes.node.isRequired,\n ariaLabel: PropTypes.string,\n position: PropTypes.func\n };\n}\n/**\n * TooltipContent\n *\n * We need a separate component so that useRect works inside the portal.\n *\n * @see Docs https://reach.tech/tooltip#tooltipcontent\n */\n\n\nvar TooltipContent = /*#__PURE__*/forwardRef(function TooltipContent(_ref4, forwardedRef) {\n var ariaLabel = _ref4.ariaLabel,\n realAriaLabel = _ref4[\"aria-label\"],\n _ref4$as = _ref4.as,\n Comp = _ref4$as === void 0 ? \"div\" : _ref4$as,\n id = _ref4.id,\n isVisible = _ref4.isVisible,\n label = _ref4.label,\n _ref4$position = _ref4.position,\n position = _ref4$position === void 0 ? positionTooltip : _ref4$position,\n style = _ref4.style,\n triggerRect = _ref4.triggerRect,\n props = _objectWithoutPropertiesLoose(_ref4, _excluded3);\n\n // The element that serves as the tooltip container has role tooltip.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip When an app passes\n // an `aria-label`, we actually want to implement `role=\"tooltip\"` on a\n // visually hidden element inside of the trigger. In these cases we want the\n // screen reader user to know both the content in the tooltip, but also the\n // content in the badge. For screen reader users, the only content announced\n // to them is whatever is in the tooltip.\n var hasAriaLabel = (realAriaLabel || ariaLabel) != null;\n var ownRef = useRef(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var tooltipRect = useRect(ownRef, {\n observe: isVisible\n });\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Comp, _extends({\n role: hasAriaLabel ? undefined : \"tooltip\"\n }, props, {\n ref: ref,\n \"data-reach-tooltip\": \"\",\n id: hasAriaLabel ? undefined : id,\n style: _extends({}, style, getStyles(position, triggerRect, tooltipRect))\n }), label), hasAriaLabel && /*#__PURE__*/createElement(VisuallyHidden, {\n role: \"tooltip\",\n id: id\n }, realAriaLabel || ariaLabel));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n TooltipContent.displayName = \"TooltipContent\";\n TooltipContent.propTypes = {};\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction getStyles(position, triggerRect, tooltipRect) {\n var haventMeasuredTooltipYet = !tooltipRect;\n\n if (haventMeasuredTooltipYet) {\n return {\n visibility: \"hidden\"\n };\n }\n\n return position(triggerRect, tooltipRect);\n} // Default offset from the trigger (e.g., if the tooltip is positioned above,\n// there will be 8px between the bottom of the tooltip and the top of the trigger).\n// It feels awkward when it's perfectly aligned w/ the trigger\n\n\nvar OFFSET_DEFAULT = 8;\nvar positionTooltip = function positionTooltip(triggerRect, tooltipRect, offset) {\n if (offset === void 0) {\n offset = OFFSET_DEFAULT;\n }\n\n var _getDocumentDimension = getDocumentDimensions(),\n windowWidth = _getDocumentDimension.width,\n windowHeight = _getDocumentDimension.height;\n\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n right: windowWidth < triggerRect.left + tooltipRect.width,\n bottom: windowHeight < triggerRect.bottom + tooltipRect.height + offset,\n left: triggerRect.left - tooltipRect.width < 0\n };\n var directionRight = collisions.right && !collisions.left;\n var directionUp = collisions.bottom && !collisions.top;\n return {\n left: directionRight ? triggerRect.right - tooltipRect.width + window.pageXOffset + \"px\" : triggerRect.left + window.pageXOffset + \"px\",\n top: directionUp ? triggerRect.top - offset - tooltipRect.height + window.pageYOffset + \"px\" : triggerRect.top + offset + triggerRect.height + window.pageYOffset + \"px\"\n };\n};\n/**\n * This is a workaround for using tooltips with disabled controls in Safari.\n * Safari fires `pointerenter` but does not fire `pointerleave`, and\n * `onPointerEventLeave` added to the trigger element will not work.\n *\n * TODO: We may remove or modiify this behavior in a future version. Direction\n * from WAI-ARIA needed for guidance on handling disabled triggers. Tooltips\n * must be accessible by keyboard, and disabled form controls are generally\n * excluded from the tab sequence.\n *\n * @see https://github.com/reach/reach-ui/issues/564\n * @see https://github.com/w3c/aria-practices/issues/128#issuecomment-588625727\n */\n\nfunction useDisabledTriggerOnSafari(_ref5) {\n var disabled = _ref5.disabled,\n isVisible = _ref5.isVisible,\n ref = _ref5.ref;\n useEffect(function () {\n if (!(typeof window !== \"undefined\" && \"PointerEvent\" in window) || !disabled || !isVisible) {\n return;\n }\n\n var ownerDocument = getOwnerDocument(ref.current);\n\n function handleMouseMove(event) {\n if (!isVisible) {\n return;\n }\n\n if (event.target instanceof Element && event.target.closest(\"[data-reach-tooltip-trigger][data-state='tooltip-visible']\")) {\n return;\n }\n\n send({\n type: TooltipEvents.GlobalMouseMove\n });\n }\n\n ownerDocument.addEventListener(\"mousemove\", handleMouseMove);\n return function () {\n ownerDocument.removeEventListener(\"mousemove\", handleMouseMove);\n };\n }, [disabled, isVisible, ref]);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Send an event to our state machine to find the next state from the current\n * state + action.\n *\n * It also manages lifecycles of the machine, (enter/leave hooks on the state\n * chart)\n *\n * @param event\n * @param payload\n */\n\n\nfunction send(event) {\n var _transition = transition(state, event),\n value = _transition.value,\n context = _transition.context,\n changed = _transition.changed;\n\n if (changed) {\n state = {\n value: value,\n context: context\n };\n notify();\n }\n}\n\nfunction transition(currentState, event) {\n var stateDef = chart.states[currentState.value];\n var nextState = stateDef && stateDef.on && stateDef.on[event.type]; // Really useful for debugging\n // console.log({ event, state, nextState, contextId: context.id });\n // !nextState && console.log(\"no transition taken\");\n\n if (!nextState) {\n return _extends({}, currentState, {\n changed: false\n });\n }\n\n if (stateDef && stateDef.leave) {\n stateDef.leave(currentState.context, event);\n }\n\n event.type;\n var payload = _objectWithoutPropertiesLoose(event, _excluded4); // TODO: Use actions instead of directly setting context\n\n\n var context = _extends({}, state.context, payload);\n\n var nextStateValue = typeof nextState === \"string\" ? nextState : nextState.target;\n var nextDef = chart.states[nextStateValue];\n\n if (nextDef && nextDef.enter) {\n nextDef.enter(currentState.context, event);\n }\n\n return {\n value: nextStateValue,\n context: context,\n changed: true\n };\n}\n\nfunction isTooltipVisible(id, initial) {\n return state.context.id === id && (initial ? state.value === TooltipStates.Visible : state.value === TooltipStates.Visible || state.value === TooltipStates.LeavingVisible);\n} ////////////////////////////////////////////////////////////////////////////////\n\nexport default Tooltip;\nexport { LEAVE_TIMEOUT, MOUSE_REST_TIMEOUT, Tooltip, TooltipPopup, positionTooltip, useTooltip };\n","import { getOwnerDocument } from '../../owner-document/dist/reach-utils-owner-document.esm.js';\nimport '../../can-use-dom/dist/reach-utils-can-use-dom.esm.js';\n\n/**\n * Get the size of the working document minus the scrollbar offset.\n *\n * @param element\n */\n\nfunction getDocumentDimensions(element) {\n var _ownerDocument$docume, _ownerDocument$docume2;\n\n var ownerDocument = getOwnerDocument(element);\n var ownerWindow = ownerDocument.defaultView || window;\n\n if (!ownerDocument) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: (_ownerDocument$docume = ownerDocument.documentElement.clientWidth) != null ? _ownerDocument$docume : ownerWindow.innerWidth,\n height: (_ownerDocument$docume2 = ownerDocument.documentElement.clientHeight) != null ? _ownerDocument$docume2 : ownerWindow.innerHeight\n };\n}\n\nexport { getDocumentDimensions };\n"],"sourceRoot":""}
|