@allurereport/web-components 3.0.0-beta.10
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/README.md +62 -0
- package/dist/components/ArrowButton/index.d.ts +10 -0
- package/dist/components/ArrowButton/index.d.ts.map +1 -0
- package/dist/components/Attachment/Attachment.d.ts +8 -0
- package/dist/components/Attachment/Attachment.d.ts.map +1 -0
- package/dist/components/Attachment/AttachmentCode.d.ts +10 -0
- package/dist/components/Attachment/AttachmentCode.d.ts.map +1 -0
- package/dist/components/Attachment/AttachmentEmpty.d.ts +5 -0
- package/dist/components/Attachment/AttachmentEmpty.d.ts.map +1 -0
- package/dist/components/Attachment/AttachmentImage.d.ts +8 -0
- package/dist/components/Attachment/AttachmentImage.d.ts.map +1 -0
- package/dist/components/Attachment/AttachmentVideo.d.ts +8 -0
- package/dist/components/Attachment/AttachmentVideo.d.ts.map +1 -0
- package/dist/components/Attachment/CodeViewer.d.ts +8 -0
- package/dist/components/Attachment/CodeViewer.d.ts.map +1 -0
- package/dist/components/Attachment/HtmlPreview.d.ts +8 -0
- package/dist/components/Attachment/HtmlPreview.d.ts.map +1 -0
- package/dist/components/Attachment/index.d.ts +8 -0
- package/dist/components/Attachment/index.d.ts.map +1 -0
- package/dist/components/Button/index.d.ts +29 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Counter/index.d.ts +10 -0
- package/dist/components/Counter/index.d.ts.map +1 -0
- package/dist/components/Label/index.d.ts +3 -0
- package/dist/components/Label/index.d.ts.map +1 -0
- package/dist/components/Link/index.d.ts +9 -0
- package/dist/components/Link/index.d.ts.map +1 -0
- package/dist/components/Loadable/index.d.ts +16 -0
- package/dist/components/Loadable/index.d.ts.map +1 -0
- package/dist/components/Menu/index.d.ts +37 -0
- package/dist/components/Menu/index.d.ts.map +1 -0
- package/dist/components/Modal/Gallery.d.ts +5 -0
- package/dist/components/Modal/Gallery.d.ts.map +1 -0
- package/dist/components/Modal/Thumb.d.ts +10 -0
- package/dist/components/Modal/Thumb.d.ts.map +1 -0
- package/dist/components/Modal/index.d.ts +24 -0
- package/dist/components/Modal/index.d.ts.map +1 -0
- package/dist/components/PageLoader/index.d.ts +2 -0
- package/dist/components/PageLoader/index.d.ts.map +1 -0
- package/dist/components/SearchBox/index.d.ts +11 -0
- package/dist/components/SearchBox/index.d.ts.map +1 -0
- package/dist/components/Spinner/index.d.ts +5 -0
- package/dist/components/Spinner/index.d.ts.map +1 -0
- package/dist/components/SuccessRatePieChart/index.d.ts +13 -0
- package/dist/components/SuccessRatePieChart/index.d.ts.map +1 -0
- package/dist/components/SvgIcon/index.d.ts +67 -0
- package/dist/components/SvgIcon/index.d.ts.map +1 -0
- package/dist/components/Toggle/index.d.ts +9 -0
- package/dist/components/Toggle/index.d.ts.map +1 -0
- package/dist/components/Tooltip/index.d.ts +14 -0
- package/dist/components/Tooltip/index.d.ts.map +1 -0
- package/dist/components/Tree/Tree.d.ts +21 -0
- package/dist/components/Tree/Tree.d.ts.map +1 -0
- package/dist/components/Tree/TreeHeader.d.ts +16 -0
- package/dist/components/Tree/TreeHeader.d.ts.map +1 -0
- package/dist/components/Tree/TreeItem.d.ts +14 -0
- package/dist/components/Tree/TreeItem.d.ts.map +1 -0
- package/dist/components/Tree/TreeItemIcon.d.ts +9 -0
- package/dist/components/Tree/TreeItemIcon.d.ts.map +1 -0
- package/dist/components/Tree/index.d.ts +5 -0
- package/dist/components/Tree/index.d.ts.map +1 -0
- package/dist/components/TrendChart/index.d.ts +25 -0
- package/dist/components/TrendChart/index.d.ts.map +1 -0
- package/dist/components/Typography/index.d.ts +28 -0
- package/dist/components/Typography/index.d.ts.map +1 -0
- package/dist/fonts/JetBrainsMono_vf.woff +0 -0
- package/dist/fonts/JetBrainsMono_vf.woff2 +0 -0
- package/dist/fonts/pt-root-ui_vf.woff +0 -0
- package/dist/fonts/pt-root-ui_vf.woff2 +0 -0
- package/dist/hooks/useDebouncedCallback.d.ts +2 -0
- package/dist/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +335 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/mixins.scss +50 -0
- package/package.json +148 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../.yarn/cache/preact-npm-10.24.0-1e922a9bf3-855506eedf.zip/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs","../../../.yarn/cache/clsx-npm-2.1.1-96125b98be-cdfb57fa6c.zip/node_modules/clsx/dist/clsx.mjs","../svg-sprites-virtual-module","../src/assets/svg/arrows-chevron-down.svg","../src/assets/svg/github.svg","../src/assets/svg/line-alerts-alert-circle.svg","../src/assets/svg/line-alerts-notification-box.svg","../src/assets/svg/line-arrows-chevron-down-double.svg","../src/assets/svg/line-arrows-chevron-down.svg","../src/assets/svg/line-arrows-chevron-right.svg","../src/assets/svg/line-arrows-chevron-up-double.svg","../src/assets/svg/line-arrows-chevron-up.svg","../src/assets/svg/line-arrows-corner-down-right.svg","../src/assets/svg/line-arrows-expand-3.svg","../src/assets/svg/line-arrows-refresh-ccw-1.svg","../src/assets/svg/line-arrows-sort-line-asc.svg","../src/assets/svg/line-arrows-sort-line-desc.svg","../src/assets/svg/line-arrows-switch-vertical-1.svg","../src/assets/svg/line-charts-bar-chart-square.svg","../src/assets/svg/line-dev-bug-2.svg","../src/assets/svg/line-dev-code-square.svg","../src/assets/svg/line-dev-dataflow-3.svg","../src/assets/svg/line-files-clipboard-check.svg","../src/assets/svg/line-files-file-2.svg","../src/assets/svg/line-files-file-attachment-2.svg","../src/assets/svg/line-files-folder.svg","../src/assets/svg/line-general-check.svg","../src/assets/svg/line-general-checklist3.svg","../src/assets/svg/line-general-copy-3.svg","../src/assets/svg/line-general-download-cloud.svg","../src/assets/svg/line-general-equal.svg","../src/assets/svg/line-general-eye.svg","../src/assets/svg/line-general-home-line.svg","../src/assets/svg/line-general-link-1.svg","../src/assets/svg/line-general-link-external.svg","../src/assets/svg/line-general-search-md.svg","../src/assets/svg/line-general-settings-1.svg","../src/assets/svg/line-general-x-close.svg","../src/assets/svg/line-general-zap.svg","../src/assets/svg/line-helpers-flag.svg","../src/assets/svg/line-helpers-play-circle.svg","../src/assets/svg/line-icon-bomb-2.svg","../src/assets/svg/line-images-image.svg","../src/assets/svg/line-layouts-columns-2.svg","../src/assets/svg/line-layouts-layout-top.svg","../src/assets/svg/line-security-key.svg","../src/assets/svg/line-shapes-dot-circle.svg","../src/assets/svg/line-shapes-moon.svg","../src/assets/svg/line-shapes-sun.svg","../src/assets/svg/line-time-clock-stopwatch.svg","../src/assets/svg/report-logo.svg","../src/assets/svg/solid-alert-circle.svg","../src/assets/svg/solid-check-circle.svg","../src/assets/svg/solid-help-circle.svg","../src/assets/svg/solid-minus-circle.svg","../src/assets/svg/solid-x-circle.svg","../src/assets/svg/spinner.svg","../src/assets/svg/view-off.svg","../src/assets/svg/view.svg","../src/components/SvgIcon/index.tsx","../src/components/Spinner/index.tsx","../src/components/Typography/index.tsx","../src/components/Button/index.tsx","../../../.yarn/cache/@floating-ui-utils-npm-0.2.8-01a00634a5-3e3ea3b2de.zip/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../.yarn/cache/@floating-ui-core-npm-1.6.8-496cdfbb6e-87d52989c3.zip/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../.yarn/cache/@floating-ui-utils-npm-0.2.9-f2d9dffc79-0ca786347d.zip/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../.yarn/cache/@floating-ui-utils-npm-0.2.9-f2d9dffc79-0ca786347d.zip/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../.yarn/cache/@floating-ui-dom-npm-1.6.13-faaec36e87-4bb732baf3.zip/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../src/components/Tooltip/index.tsx","../src/components/Loadable/index.tsx","../src/components/PageLoader/index.tsx","../src/hooks/useDebouncedCallback.ts","../src/components/SearchBox/index.tsx","../src/components/Menu/index.tsx","../../web-commons/dist/data.js","../../web-commons/dist/attachments.js","../../../.yarn/cache/prismjs-npm-1.29.0-6faa5b04b8-2080db382c.zip/node_modules/prismjs/prism.js","../src/components/Attachment/AttachmentCode.tsx","../src/components/Attachment/AttachmentImage.tsx","../src/components/Attachment/AttachmentVideo.tsx","../src/components/Attachment/HtmlPreview.tsx","../src/components/Attachment/Attachment.tsx","../src/components/Attachment/AttachmentEmpty.tsx","../src/components/Attachment/CodeViewer.tsx","../src/components/Modal/Thumb.tsx","../src/components/Modal/Gallery.tsx","../src/components/Modal/index.tsx","../../core-api/dist/constants.js","../../core-api/dist/utils/time.js","../src/components/Tree/TreeItemIcon.tsx","../src/components/Tree/TreeItem.tsx","../src/components/ArrowButton/index.tsx","../src/components/Tree/TreeHeader.tsx","../src/components/Tree/Tree.tsx","../src/components/Counter/index.tsx","../src/components/Toggle/index.tsx","../src/components/Link/index.tsx","../src/components/SuccessRatePieChart/index.tsx","../src/components/Label/index.tsx","../../../.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-5aa564a1cd.zip/node_modules/react-is/index.js","../../../.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-5aa564a1cd.zip/node_modules/react-is/cjs/react-is.production.min.js","../../../.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-5aa564a1cd.zip/node_modules/react-is/cjs/react-is.development.js","../../../.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip/node_modules/object-assign/index.js","../../../.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-7d959caec0.zip/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-7d959caec0.zip/node_modules/prop-types/lib/has.js","../../../.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-7d959caec0.zip/node_modules/prop-types/checkPropTypes.js","../../../.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-7d959caec0.zip/node_modules/prop-types/factoryWithTypeCheckers.js","../../../.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-7d959caec0.zip/node_modules/prop-types/factoryWithThrowingShims.js","../../../.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-7d959caec0.zip/node_modules/prop-types/index.js","../../../.yarn/cache/@react-spring-rafz-npm-9.7.5-1d03adee03-25b2dfc674.zip/node_modules/@react-spring/rafz/dist/react-spring_rafz.modern.mjs","../../../.yarn/__virtual__/@react-spring-shared-virtual-d82020fd18/0/cache/@react-spring-shared-npm-9.7.5-3e317d9163-4e8d7927a1.zip/node_modules/@react-spring/shared/dist/react-spring_shared.modern.mjs","../../../.yarn/__virtual__/@react-spring-animated-virtual-cf62e767bb/0/cache/@react-spring-animated-npm-9.7.5-e7a80d3c21-f4130b7ffa.zip/node_modules/@react-spring/animated/dist/react-spring_animated.modern.mjs","../../../.yarn/__virtual__/@react-spring-core-virtual-298f439f90/0/cache/@react-spring-core-npm-9.7.5-9c7c5bcc24-b76578ffbd.zip/node_modules/@react-spring/core/dist/react-spring_core.modern.mjs","../../../.yarn/__virtual__/@react-spring-web-virtual-c54b0f9526/0/cache/@react-spring-web-npm-9.7.5-9609448a64-ecd6c410d0.zip/node_modules/@react-spring/web/dist/react-spring_web.modern.mjs","../../../.yarn/__virtual__/@nivo-tooltip-virtual-af256c6c6b/0/cache/@nivo-tooltip-npm-0.88.0-f4440e2fca-1e5c6d72ef.zip/node_modules/@nivo/tooltip/dist/nivo-tooltip.es.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/eq.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_assocIndexOf.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_ListCache.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_listCacheClear.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_listCacheDelete.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_listCacheGet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_listCacheHas.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_listCacheSet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_freeGlobal.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_root.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_Symbol.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseGetTag.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_getRawTag.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_objectToString.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isObject.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isFunction.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_isMasked.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_coreJsData.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_toSource.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_getNative.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIsNative.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_getValue.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_Map.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_nativeCreate.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_Hash.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_hashClear.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_hashDelete.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_hashGet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_hashHas.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_hashSet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_getMapData.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_isKeyable.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_MapCache.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_mapCacheClear.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_mapCacheDelete.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_mapCacheGet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_mapCacheHas.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_mapCacheSet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_Stack.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_stackClear.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_stackDelete.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_stackGet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_stackHas.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_stackSet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_defineProperty.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseAssignValue.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_assignMergeValue.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseFor.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_createBaseFor.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_Uint8Array.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_cloneTypedArray.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_cloneArrayBuffer.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_overArg.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_getPrototype.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_isPrototype.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_initCloneObject.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseCreate.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isObjectLike.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isArguments.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIsArguments.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isArray.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isLength.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isArrayLike.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isArrayLikeObject.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isBuffer.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/stubFalse.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isPlainObject.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseUnary.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_nodeUtil.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isTypedArray.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIsTypedArray.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_safeGet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_assignValue.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_isIndex.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_arrayLikeKeys.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseTimes.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseKeysIn.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_nativeKeysIn.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/keysIn.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/toPlainObject.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_copyObject.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseMergeDeep.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_cloneBuffer.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_copyArray.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/identity.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_overRest.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_apply.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseSetToString.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/constant.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_setToString.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_shortOut.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseRest.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_isIterateeCall.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/merge.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseMerge.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_createAssigner.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isSymbol.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_isKey.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_memoizeCapped.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/memoize.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_arrayMap.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/toString.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseToString.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_castPath.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_stringToPath.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_toKey.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseGet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/get.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseSet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/set.js","../../../.yarn/cache/d3-color-npm-3.1.0-fc73fe3b15-536ba05bfd.zip/node_modules/d3-color/src/define.js","../../../.yarn/cache/d3-color-npm-3.1.0-fc73fe3b15-536ba05bfd.zip/node_modules/d3-color/src/color.js","../../../.yarn/cache/d3-color-npm-3.1.0-fc73fe3b15-536ba05bfd.zip/node_modules/d3-color/src/math.js","../../../.yarn/cache/d3-color-npm-3.1.0-fc73fe3b15-536ba05bfd.zip/node_modules/d3-color/src/cubehelix.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/constant.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/color.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/rgb.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/basis.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/numberArray.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/array.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/date.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/number.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/object.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/string.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/value.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/round.js","../../../.yarn/cache/d3-interpolate-npm-3.0.1-77ddca7977-988d66497e.zip/node_modules/d3-interpolate/src/cubehelix.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isString.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/last.js","../../../.yarn/cache/d3-array-npm-3.2.4-b427632bcc-5800c467f8.zip/node_modules/d3-array/src/ascending.js","../../../.yarn/cache/d3-array-npm-3.2.4-b427632bcc-5800c467f8.zip/node_modules/d3-array/src/descending.js","../../../.yarn/cache/d3-array-npm-3.2.4-b427632bcc-5800c467f8.zip/node_modules/d3-array/src/bisector.js","../../../.yarn/cache/d3-array-npm-3.2.4-b427632bcc-5800c467f8.zip/node_modules/d3-array/src/bisect.js","../../../.yarn/cache/d3-array-npm-3.2.4-b427632bcc-5800c467f8.zip/node_modules/d3-array/src/number.js","../../../.yarn/cache/internmap-npm-2.0.3-d74f5c9998-873e0e7fcf.zip/node_modules/internmap/src/index.js","../../../.yarn/cache/d3-array-npm-3.2.4-b427632bcc-5800c467f8.zip/node_modules/d3-array/src/ticks.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/init.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/ordinal.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/band.js","../../../.yarn/cache/d3-array-npm-3.2.4-b427632bcc-5800c467f8.zip/node_modules/d3-array/src/range.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/number.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/continuous.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/constant.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/formatDecimal.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/exponent.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/formatSpecifier.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/formatPrefixAuto.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/formatRounded.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/formatTypes.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/identity.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/locale.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/defaultLocale.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/formatGroup.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/formatNumerals.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/formatTrim.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/tickFormat.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/precisionPrefix.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/precisionRound.js","../../../.yarn/cache/d3-format-npm-3.1.0-dfc19924ca-a0fe23d257.zip/node_modules/d3-format/src/precisionFixed.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/linear.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/nice.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/log.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/symlog.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/interval.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/millisecond.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/duration.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/second.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/minute.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/hour.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/day.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/week.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/month.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/year.js","../../../.yarn/cache/d3-time-npm-3.1.0-fb068fd1c9-c110bed295.zip/node_modules/d3-time/src/ticks.js","../../../.yarn/cache/d3-time-format-npm-4.1.0-7f352c4634-ffc0959258.zip/node_modules/d3-time-format/src/locale.js","../../../.yarn/cache/d3-time-format-npm-4.1.0-7f352c4634-ffc0959258.zip/node_modules/d3-time-format/src/defaultLocale.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/time.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/colors.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/category10.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/Accent.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/Dark2.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/Paired.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/Set1.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/Set2.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/Set3.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/ramp.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/diverging/BrBG.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/diverging/PRGn.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/diverging/PiYG.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/diverging/PuOr.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/diverging/RdBu.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/diverging/RdGy.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/diverging/Spectral.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_SetCache.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_setCacheAdd.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_setCacheHas.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIndexOf.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseFindIndex.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIsNaN.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_strictIndexOf.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_arrayIncludes.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_arrayIncludesWith.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_cacheHas.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/without.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseDifference.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/constant.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/math.js","../../../.yarn/cache/d3-path-npm-3.1.0-8d69e9e4e5-8e97a9ab49.zip/node_modules/d3-path/src/path.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/path.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/array.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/linear.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/point.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/line.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/noop.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/basis.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/basisClosed.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/basisOpen.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/bundle.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/cardinal.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/cardinalClosed.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/cardinalOpen.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/catmullRom.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/catmullRomClosed.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/catmullRomOpen.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/linearClosed.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/monotone.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/natural.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/curve/step.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/formatDecimal.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/formatSpecifier.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/formatPrefixAuto.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/formatRounded.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/formatTypes.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/identity.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/locale.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/defaultLocale.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/formatGroup.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/formatNumerals.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/formatTrim.js","../../../.yarn/cache/d3-format-npm-1.4.5-a17fc8af8f-c1b7d8de6f.zip/node_modules/d3-format/src/exponent.js","../../../.yarn/cache/d3-time-npm-2.1.1-73fdf673f7-fe780d761e.zip/node_modules/d3-time/src/interval.js","../../../.yarn/cache/d3-time-npm-2.1.1-73fdf673f7-fe780d761e.zip/node_modules/d3-time/src/duration.js","../../../.yarn/cache/d3-time-npm-2.1.1-73fdf673f7-fe780d761e.zip/node_modules/d3-time/src/day.js","../../../.yarn/cache/d3-time-npm-2.1.1-73fdf673f7-fe780d761e.zip/node_modules/d3-time/src/week.js","../../../.yarn/cache/d3-time-npm-2.1.1-73fdf673f7-fe780d761e.zip/node_modules/d3-time/src/year.js","../../../.yarn/cache/d3-time-npm-2.1.1-73fdf673f7-fe780d761e.zip/node_modules/d3-time/src/utcDay.js","../../../.yarn/cache/d3-time-npm-2.1.1-73fdf673f7-fe780d761e.zip/node_modules/d3-time/src/utcWeek.js","../../../.yarn/cache/d3-time-npm-2.1.1-73fdf673f7-fe780d761e.zip/node_modules/d3-time/src/utcYear.js","../../../.yarn/cache/d3-time-format-npm-3.0.0-0803464fb3-2ae8d0d432.zip/node_modules/d3-time-format/src/locale.js","../../../.yarn/cache/d3-time-format-npm-3.0.0-0803464fb3-2ae8d0d432.zip/node_modules/d3-time-format/src/defaultLocale.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/hasIn.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseHasIn.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_hasPath.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_basePick.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_basePickBy.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_arrayPush.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseFlatten.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_isFlattenable.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_flatRest.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/flatten.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/pick.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_equalArrays.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_arraySome.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_setToArray.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_equalByTag.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_mapToArray.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_getSymbols.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_arrayFilter.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/stubArray.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseKeys.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_nativeKeys.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/keys.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_getAllKeys.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseGetAllKeys.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_Set.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_getTag.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_DataView.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_Promise.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_WeakMap.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIsEqualDeep.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_equalObjects.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIsEqual.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isEqual.js","../../../.yarn/__virtual__/@nivo-core-virtual-15c30793c9/0/cache/@nivo-core-npm-0.88.0-d0bd18f82f-14823e5366.zip/node_modules/@nivo/core/dist/nivo-core.es.js","../../../.yarn/__virtual__/@nivo-colors-virtual-1bf944e71c/0/cache/@nivo-colors-npm-0.88.0-6879e62e62-fc8cf07afb.zip/node_modules/@nivo/colors/dist/nivo-colors.es.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js","../../../.yarn/cache/d3-scale-chromatic-npm-3.1.0-4c3af415f5-25df6a7c62.zip/node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_createSet.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/noop.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseUniq.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/uniq.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_isStrictComparable.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_matchesStrictComparable.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseMatches.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIsMatch.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_getMatchData.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/property.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseProperty.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_basePropertyDeep.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIteratee.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseMatchesProperty.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/uniqBy.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseEach.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseForOwn.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_createBaseEach.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_compareMultiple.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_compareAscending.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseOrderBy.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseMap.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseSortBy.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/sortBy.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/isDate.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/_baseIsDate.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/interval.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/millisecond.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/duration.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/second.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/minute.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/hour.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/week.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/month.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/year.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/utcMinute.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/utcHour.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/utcWeek.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/utcMonth.js","../../../.yarn/cache/d3-time-npm-1.1.0-5df1aeb229-24d4509974.zip/node_modules/d3-time/src/utcYear.js","../../../.yarn/cache/@nivo-scales-npm-0.88.0-800513ba04-f585fb03fe.zip/node_modules/@nivo/scales/dist/nivo-scales.es.js","../../../.yarn/cache/d3-scale-npm-4.0.2-d17a53447b-e2dc424358.zip/node_modules/d3-scale/src/utcTime.js","../../../.yarn/__virtual__/@nivo-axes-virtual-aac8a984f4/0/cache/@nivo-axes-npm-0.88.0-5507cdb5fa-a5148a73ab.zip/node_modules/@nivo/axes/dist/nivo-axes.es.js","../../../.yarn/__virtual__/@nivo-legends-virtual-3e5cc1d15d/0/cache/@nivo-legends-npm-0.88.0-f2c525db74-b50f170bf1.zip/node_modules/@nivo/legends/dist/nivo-legends.es.js","../../../.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/uniqueId.js","../../../.yarn/cache/robust-predicates-npm-3.0.2-7f800d94ab-88bd7d45a6.zip/node_modules/robust-predicates/esm/util.js","../../../.yarn/cache/robust-predicates-npm-3.0.2-7f800d94ab-88bd7d45a6.zip/node_modules/robust-predicates/esm/orient2d.js","../../../.yarn/cache/delaunator-npm-5.0.1-629c5bafdf-c378a55138.zip/node_modules/delaunator/index.js","../../../.yarn/cache/d3-delaunay-npm-6.0.4-606be6b5a9-4588e2872d.zip/node_modules/d3-delaunay/src/path.js","../../../.yarn/cache/d3-delaunay-npm-6.0.4-606be6b5a9-4588e2872d.zip/node_modules/d3-delaunay/src/polygon.js","../../../.yarn/cache/d3-delaunay-npm-6.0.4-606be6b5a9-4588e2872d.zip/node_modules/d3-delaunay/src/voronoi.js","../../../.yarn/cache/d3-delaunay-npm-6.0.4-606be6b5a9-4588e2872d.zip/node_modules/d3-delaunay/src/delaunay.js","../../../.yarn/__virtual__/@nivo-voronoi-virtual-0f9a0f3152/0/cache/@nivo-voronoi-npm-0.88.0-9998e36115-c22a2bb9e1.zip/node_modules/@nivo/voronoi/dist/nivo-voronoi.es.js","../../../.yarn/__virtual__/@nivo-line-virtual-81ebbe8658/0/cache/@nivo-line-npm-0.88.0-41821a3407-c34729b96a.zip/node_modules/@nivo/line/dist/nivo-line.es.js","../../../.yarn/cache/d3-shape-npm-3.2.0-0beb7d8b02-2e861f4d47.zip/node_modules/d3-shape/src/area.js","../src/components/TrendChart/index.tsx"],"sourcesContent":["import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),_=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(_=\"px;\"),i=i+l+\":\"+a+_}}return e+'=\"'+i+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(t)+'\"'}function _(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=_(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,_ as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/* eslint-disable */\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar deepmerge = {exports: {}};\n\n(function (module, exports) {\n(function (root, factory) {\n {\n module.exports = factory();\n }\n}(commonjsGlobal, function () {\n\nfunction isMergeableObject(val) {\n var nonNullObject = val && typeof val === 'object';\n\n return nonNullObject\n && Object.prototype.toString.call(val) !== '[object RegExp]'\n && Object.prototype.toString.call(val) !== '[object Date]'\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function(e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function (key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function (key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n var array = Array.isArray(source);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n\n if (array) {\n return Array.isArray(target) ? arrayMerge(target, source, optionsArgument) : cloneIfNecessary(source, optionsArgument)\n } else {\n return mergeObject(target, source, optionsArgument)\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements')\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function(prev, next) {\n return deepmerge(prev, next, optionsArgument)\n })\n};\n\nreturn deepmerge\n\n}));\n}(deepmerge));\n\nvar merge = deepmerge.exports;\n\n// \n// An event handler can take an optional event argument\n// and should not return a value\n \n// An array of all currently registered event handlers for a type\n \n// A map of event types and their corresponding event handlers.\n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberof mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nvar namespaces$1 = {exports: {}};\n\n(function (module, exports) {\nconst namespaces = {\n svg: {\n name: 'xmlns',\n uri: 'http://www.w3.org/2000/svg'\n },\n xlink: {\n name: 'xmlns:xlink',\n uri: 'http://www.w3.org/1999/xlink'\n }\n};\n\nexports.default = namespaces;\nmodule.exports = exports.default;\n}(namespaces$1, namespaces$1.exports));\n\nvar namespaces = namespaces$1.exports;\n\n/**\n * @param {Object} attrs\n * @return {string}\n */\nfunction objectToAttrsString (attrs) {\n return Object.keys(attrs).map((attr) => {\n const value = attrs[attr].toString().replace(/\"/g, '"');\n return `${attr}=\"${value}\"`;\n }).join(' ');\n}\n\nconst { svg: svg$1, xlink: xlink$1 } = namespaces;\n\nconst defaultAttrs = {\n [svg$1.name]: svg$1.uri,\n [xlink$1.name]: xlink$1.uri\n};\n\n/**\n * @param {string} [content]\n * @param {Object} [attributes]\n * @return {string}\n */\nfunction wrapInSvgString (content = '', attributes) {\n const attrs = merge(defaultAttrs, attributes || {});\n const attrsRendered = objectToAttrsString(attrs);\n return `<svg ${attrsRendered}>${content}</svg>`;\n}\n\nconst { svg, xlink } = namespaces;\n\nvar defaultConfig$1 = {\n attrs: {\n [svg.name]: svg.uri,\n [xlink.name]: xlink.uri,\n style: ['position: absolute', 'width: 0', 'height: 0'].join('; '),\n 'aria-hidden': 'true'\n }\n};\n\nclass Sprite {\n /**\n * @param {Object} [config]\n */\n constructor(config) {\n this.config = merge(defaultConfig$1, config || {});\n this.symbols = [];\n }\n\n /**\n * Add new symbol. If symbol with the same id exists it will be replaced.\n * @param {SpriteSymbol} symbol\n * @return {boolean} `true` - symbol was added, `false` - replaced\n */\n add(symbol) {\n const { symbols } = this;\n const existing = this.find(symbol.id);\n\n if (existing) {\n symbols[symbols.indexOf(existing)] = symbol;\n return false;\n }\n\n symbols.push(symbol);\n return true;\n }\n\n /**\n * Remove symbol & destroy it\n * @param {string} id\n * @return {boolean} `true` - symbol was found & successfully destroyed, `false` - otherwise\n */\n remove(id) {\n const { symbols } = this;\n const symbol = this.find(id);\n\n if (symbol) {\n symbols.splice(symbols.indexOf(symbol), 1);\n symbol.destroy();\n return true;\n }\n\n return false;\n }\n\n /**\n * @param {string} id\n * @return {SpriteSymbol|null}\n */\n find(id) {\n return this.symbols.filter(s => s.id === id)[0] || null;\n }\n\n /**\n * @param {string} id\n * @return {boolean}\n */\n has(id) {\n return this.find(id) !== null;\n }\n\n /**\n * @return {string}\n */\n stringify() {\n const { attrs } = this.config;\n const stringifiedSymbols = this.symbols.map(s => s.stringify()).join('');\n return wrapInSvgString(stringifiedSymbols, attrs);\n }\n\n /**\n * @return {string}\n */\n toString() {\n return this.stringify();\n }\n\n destroy() {\n this.symbols.forEach(s => s.destroy());\n }\n}\n\nclass SpriteSymbol {\n constructor({ id, viewBox, content }) {\n this.id = id;\n this.viewBox = viewBox;\n this.content = content;\n }\n\n /**\n * @return {string}\n */\n stringify() {\n return this.content;\n }\n\n /**\n * @return {string}\n */\n toString() {\n return this.stringify();\n }\n\n destroy() {\n ['id', 'viewBox', 'content'].forEach(prop => delete this[prop]);\n }\n}\n\n/**\n * @param {string} content\n * @return {Element}\n */\nfunction parse (content) {\n const hasImportNode = !!document.importNode;\n const doc = new DOMParser().parseFromString(content, 'image/svg+xml').documentElement;\n\n /**\n * Fix for browser which are throwing WrongDocumentError\n * if you insert an element which is not part of the document\n * @see http://stackoverflow.com/a/7986519/4624403\n */\n if (hasImportNode) {\n return document.importNode(doc, true);\n }\n\n return doc;\n}\n\nclass BrowserSpriteSymbol extends SpriteSymbol {\n get isMounted() {\n return !!this.node;\n }\n\n /**\n * @param {Element} node\n * @return {BrowserSpriteSymbol}\n */\n static createFromExistingNode(node) {\n return new BrowserSpriteSymbol({\n id: node.getAttribute('id'),\n viewBox: node.getAttribute('viewBox'),\n content: node.outerHTML\n });\n }\n\n destroy() {\n if (this.isMounted) {\n this.unmount();\n }\n super.destroy();\n }\n\n /**\n * @param {Element|string} target\n * @return {Element}\n */\n mount(target) {\n if (this.isMounted) {\n return this.node;\n }\n\n const mountTarget = typeof target === 'string' ? document.querySelector(target) : target;\n const node = this.render();\n this.node = node;\n\n mountTarget.appendChild(node);\n\n return node;\n }\n\n /**\n * @return {Element}\n */\n render() {\n const content = this.stringify();\n return parse(wrapInSvgString(content)).childNodes[0];\n }\n\n unmount() {\n this.node.parentNode.removeChild(this.node);\n }\n}\n\nvar defaultConfig = {\n /**\n * Should following options be automatically configured:\n * - `syncUrlsWithBaseTag`\n * - `locationChangeAngularEmitter`\n * - `moveGradientsOutsideSymbol`\n * @type {boolean}\n */\n autoConfigure: true,\n\n /**\n * Default mounting selector\n * @type {string}\n */\n mountTo: 'body',\n\n /**\n * Fix disappearing SVG elements when <base href> exists.\n * Executes when sprite mounted.\n * @see http://stackoverflow.com/a/18265336/796152\n * @see https://github.com/everdimension/angular-svg-base-fix\n * @see https://github.com/angular/angular.js/issues/8934#issuecomment-56568466\n * @type {boolean}\n */\n syncUrlsWithBaseTag: false,\n\n /**\n * Should sprite listen custom location change event\n * @type {boolean}\n */\n listenLocationChangeEvent: true,\n\n /**\n * Custom window event name which should be emitted to update sprite urls\n * @type {string}\n */\n locationChangeEvent: 'locationChange',\n\n /**\n * Emit location change event in Angular automatically\n * @type {boolean}\n */\n locationChangeAngularEmitter: false,\n\n /**\n * Selector to find symbols usages when updating sprite urls\n * @type {string}\n */\n usagesToUpdate: 'use[*|href]',\n\n /**\n * Fix Firefox bug when gradients and patterns don't work if they are within a symbol.\n * Executes when sprite is rendered, but not mounted.\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=306674\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=353575\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=1235364\n * @type {boolean}\n */\n moveGradientsOutsideSymbol: false\n};\n\n/**\n * @param {*} arrayLike\n * @return {Array}\n */\nfunction arrayFrom (arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n}\n\nvar browser = {\n isChrome: () => /chrome/i.test(navigator.userAgent),\n isFirefox: () => /firefox/i.test(navigator.userAgent),\n\n // https://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx\n isIE: () => /msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent),\n isEdge: () => /edge/i.test(navigator.userAgent)\n};\n\n/**\n * @param {string} name\n * @param {*} data\n */\nfunction dispatchEvent (name, data) {\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent(name, false, false, data);\n window.dispatchEvent(event);\n}\n\n/**\n * IE doesn't evaluate <style> tags in SVGs that are dynamically added to the page.\n * This trick will trigger IE to read and use any existing SVG <style> tags.\n * @see https://github.com/iconic/SVGInjector/issues/23\n * @see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/\n *\n * @param {Element} node DOM Element to search <style> tags in\n * @return {Array<HTMLStyleElement>}\n */\nfunction evalStylesIEWorkaround (node) {\n const updatedNodes = [];\n\n arrayFrom(node.querySelectorAll('style'))\n .forEach((style) => {\n style.textContent += '';\n updatedNodes.push(style);\n });\n\n return updatedNodes;\n}\n\n/**\n * @param {string} [url] If not provided - current URL will be used\n * @return {string}\n */\nfunction getUrlWithoutFragment (url) {\n return (url || window.location.href).split('#')[0];\n}\n\n/* global angular */\n\n/**\n * @param {string} eventName\n */\nfunction locationChangeAngularEmitter (eventName) {\n angular.module('ng').run(['$rootScope', ($rootScope) => {\n $rootScope.$on('$locationChangeSuccess', (e, newUrl, oldUrl) => {\n dispatchEvent(eventName, { oldUrl, newUrl });\n });\n }]);\n}\n\nconst defaultSelector = 'linearGradient, radialGradient, pattern, mask, clipPath';\n\n/**\n * @param {Element} svg\n * @param {string} [selector]\n * @return {Element}\n */\nfunction moveGradientsOutsideSymbol (svg, selector = defaultSelector) {\n arrayFrom(svg.querySelectorAll('symbol')).forEach((symbol) => {\n arrayFrom(symbol.querySelectorAll(selector)).forEach((node) => {\n symbol.parentNode.insertBefore(node, symbol);\n });\n });\n return svg;\n}\n\n/**\n * @param {NodeList} nodes\n * @param {Function} [matcher]\n * @return {Attr[]}\n */\nfunction selectAttributes(nodes, matcher) {\n const attrs = arrayFrom(nodes).reduce((acc, node) => {\n if (!node.attributes) {\n return acc;\n }\n\n const arrayfied = arrayFrom(node.attributes);\n const matched = matcher ? arrayfied.filter(matcher) : arrayfied;\n return acc.concat(matched);\n }, []);\n\n return attrs;\n}\n\nconst xLinkNS = namespaces.xlink.uri;\nconst xLinkAttrName = 'xlink:href';\n\n// eslint-disable-next-line no-useless-escape\nconst specialUrlCharsPattern = /[{}|\\\\\\^\\[\\]`\"<>]/g;\n\nfunction encoder(url) {\n return url.replace(specialUrlCharsPattern, (match) => {\n return `%${match[0].charCodeAt(0).toString(16).toUpperCase()}`;\n });\n}\n\nfunction escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\n}\n\n/**\n * @param {NodeList} nodes\n * @param {string} startsWith\n * @param {string} replaceWith\n * @return {NodeList}\n */\nfunction updateReferences(nodes, startsWith, replaceWith) {\n arrayFrom(nodes).forEach((node) => {\n const href = node.getAttribute(xLinkAttrName);\n if (href && href.indexOf(startsWith) === 0) {\n const newUrl = href.replace(startsWith, replaceWith);\n node.setAttributeNS(xLinkNS, xLinkAttrName, newUrl);\n }\n });\n\n return nodes;\n}\n\n/**\n * List of SVG attributes to update url() target in them\n */\nconst attList = [\n 'clipPath',\n 'colorProfile',\n 'src',\n 'cursor',\n 'fill',\n 'filter',\n 'marker',\n 'markerStart',\n 'markerMid',\n 'markerEnd',\n 'mask',\n 'stroke',\n 'style'\n];\n\nconst attSelector = attList.map(attr => `[${attr}]`).join(',');\n\n/**\n * Update URLs in svg image (like `fill=\"url(...)\"`) and update referencing elements\n * @param {Element} svg\n * @param {NodeList} references\n * @param {string|RegExp} startsWith\n * @param {string} replaceWith\n * @return {void}\n *\n * @example\n * const sprite = document.querySelector('svg.sprite');\n * const usages = document.querySelectorAll('use');\n * updateUrls(sprite, usages, '#', 'prefix#');\n */\nfunction updateUrls (svg, references, startsWith, replaceWith) {\n const startsWithEncoded = encoder(startsWith);\n const replaceWithEncoded = encoder(replaceWith);\n\n const nodes = svg.querySelectorAll(attSelector);\n const attrs = selectAttributes(nodes, ({ localName, value }) => {\n return attList.indexOf(localName) !== -1 && value.indexOf(`url(${startsWithEncoded}`) !== -1;\n });\n\n attrs.forEach(attr => attr.value = attr.value.replace(new RegExp(escapeRegExp(startsWithEncoded), 'g'), replaceWithEncoded));\n updateReferences(references, startsWithEncoded, replaceWithEncoded);\n}\n\n/**\n * Internal emitter events\n * @enum\n * @private\n */\nconst Events = {\n MOUNT: 'mount',\n SYMBOL_MOUNT: 'symbol_mount'\n};\n\nclass BrowserSprite extends Sprite {\n constructor(cfg = {}) {\n super(merge(defaultConfig, cfg));\n\n const emitter = mitt();\n this._emitter = emitter;\n this.node = null;\n\n const { config } = this;\n\n if (config.autoConfigure) {\n this._autoConfigure(cfg);\n }\n\n if (config.syncUrlsWithBaseTag) {\n const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\n emitter.on(Events.MOUNT, () => this.updateUrls('#', baseUrl));\n }\n\n const handleLocationChange = this._handleLocationChange.bind(this);\n this._handleLocationChange = handleLocationChange;\n\n // Provide way to update sprite urls externally via dispatching custom window event\n if (config.listenLocationChangeEvent) {\n window.addEventListener(config.locationChangeEvent, handleLocationChange);\n }\n\n // Emit location change event in Angular automatically\n if (config.locationChangeAngularEmitter) {\n locationChangeAngularEmitter(config.locationChangeEvent);\n }\n\n // After sprite mounted\n emitter.on(Events.MOUNT, (spriteNode) => {\n if (config.moveGradientsOutsideSymbol) {\n moveGradientsOutsideSymbol(spriteNode);\n }\n });\n\n // After symbol mounted into sprite\n emitter.on(Events.SYMBOL_MOUNT, (symbolNode) => {\n if (config.moveGradientsOutsideSymbol) {\n moveGradientsOutsideSymbol(symbolNode.parentNode);\n }\n\n if (browser.isIE() || browser.isEdge()) {\n evalStylesIEWorkaround(symbolNode);\n }\n });\n }\n\n /**\n * @return {boolean}\n */\n get isMounted() {\n return !!this.node;\n }\n\n /**\n * Automatically configure following options\n * - `syncUrlsWithBaseTag`\n * - `locationChangeAngularEmitter`\n * - `moveGradientsOutsideSymbol`\n * @param {Object} cfg\n * @private\n */\n _autoConfigure(cfg) {\n const { config } = this;\n\n if (typeof cfg.syncUrlsWithBaseTag === 'undefined') {\n config.syncUrlsWithBaseTag = typeof document.getElementsByTagName('base')[0] !== 'undefined';\n }\n\n if (typeof cfg.locationChangeAngularEmitter === 'undefined') {\n config.locationChangeAngularEmitter = typeof window.angular !== 'undefined';\n }\n\n if (typeof cfg.moveGradientsOutsideSymbol === 'undefined') {\n config.moveGradientsOutsideSymbol = browser.isFirefox();\n }\n }\n\n /**\n * @param {Event} event\n * @param {Object} event.detail\n * @param {string} event.detail.oldUrl\n * @param {string} event.detail.newUrl\n * @private\n */\n _handleLocationChange(event) {\n const { oldUrl, newUrl } = event.detail;\n this.updateUrls(oldUrl, newUrl);\n }\n\n /**\n * Add new symbol. If symbol with the same id exists it will be replaced.\n * If sprite already mounted - `symbol.mount(sprite.node)` will be called.\n * @fires Events#SYMBOL_MOUNT\n * @param {BrowserSpriteSymbol} symbol\n * @return {boolean} `true` - symbol was added, `false` - replaced\n */\n add(symbol) {\n const sprite = this;\n const isNewSymbol = super.add(symbol);\n\n if (this.isMounted && isNewSymbol) {\n symbol.mount(sprite.node);\n this._emitter.emit(Events.SYMBOL_MOUNT, symbol.node);\n }\n\n return isNewSymbol;\n }\n\n /**\n * Attach to existing DOM node\n * @param {string|Element} target\n * @return {Element|null} attached DOM Element. null if node to attach not found.\n */\n attach(target) {\n const sprite = this;\n\n if (sprite.isMounted) {\n return sprite.node;\n }\n\n /** @type Element */\n const node = typeof target === 'string' ? document.querySelector(target) : target;\n sprite.node = node;\n\n // Already added symbols needs to be mounted\n this.symbols.forEach((symbol) => {\n symbol.mount(sprite.node);\n this._emitter.emit(Events.SYMBOL_MOUNT, symbol.node);\n });\n\n // Create symbols from existing DOM nodes, add and mount them\n arrayFrom(node.querySelectorAll('symbol'))\n .forEach((symbolNode) => {\n const symbol = BrowserSpriteSymbol.createFromExistingNode(symbolNode);\n symbol.node = symbolNode; // hack to prevent symbol mounting to sprite when adding\n sprite.add(symbol);\n });\n\n this._emitter.emit(Events.MOUNT, node);\n\n return node;\n }\n\n destroy() {\n const { config, symbols, _emitter } = this;\n\n symbols.forEach(s => s.destroy());\n\n _emitter.off('*');\n window.removeEventListener(config.locationChangeEvent, this._handleLocationChange);\n\n if (this.isMounted) {\n this.unmount();\n }\n }\n\n /**\n * @fires Events#MOUNT\n * @param {string|Element} [target]\n * @param {boolean} [prepend=false]\n * @return {Element|null} rendered sprite node. null if mount node not found.\n */\n mount(target = this.config.mountTo, prepend = false) {\n const sprite = this;\n\n if (sprite.isMounted) {\n return sprite.node;\n }\n\n const mountNode = typeof target === 'string' ? document.querySelector(target) : target;\n const node = sprite.render();\n this.node = node;\n\n if (prepend && mountNode.childNodes[0]) {\n mountNode.insertBefore(node, mountNode.childNodes[0]);\n } else {\n mountNode.appendChild(node);\n }\n\n this._emitter.emit(Events.MOUNT, node);\n\n return node;\n }\n\n /**\n * @return {Element}\n */\n render() {\n return parse(this.stringify());\n }\n\n /**\n * Detach sprite from the DOM\n */\n unmount() {\n this.node.parentNode.removeChild(this.node);\n }\n\n /**\n * Update URLs in sprite and usage elements\n * @param {string} oldUrl\n * @param {string} newUrl\n * @return {boolean} `true` - URLs was updated, `false` - sprite is not mounted\n */\n updateUrls(oldUrl, newUrl) {\n if (!this.isMounted) {\n return false;\n }\n\n const usages = document.querySelectorAll(this.config.usagesToUpdate);\n\n updateUrls(\n this.node,\n usages,\n `${getUrlWithoutFragment(oldUrl)}#`,\n `${getUrlWithoutFragment(newUrl)}#`\n );\n\n return true;\n }\n\n}\n\nconst spriteNodeId = '__SVG_SPRITE_NODE__';\nconst spriteGlobalVarName = '__SVG_SPRITE__';\n\nconst loadSprite = () => {\n /**\n * Check for page already contains sprite node\n * If found - attach to and reuse it's content\n * If not - render and mount the new sprite\n */\n const existing = document.getElementById(spriteNodeId);\n\n if (existing) {\n sprite.attach(existing);\n } else {\n sprite.mount(document.body, true);\n }\n};\n\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\nconst createDomReady = () => {\n var fns = [],\n listener,\n doc = document,\n hack = doc.documentElement.doScroll,\n domContentLoaded = 'DOMContentLoaded',\n loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded)\n doc.addEventListener(\n domContentLoaded,\n (listener = function () {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n }\n};\n\nlet sprite = new BrowserSprite({\n attrs: {\n id: spriteNodeId,\n 'aria-hidden': 'true'\n },\n autoConfigure: typeof document !== 'undefined',\n listenLocationChangeEvent: typeof window !== 'undefined'\n});\n\nconst init = () => {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return\n }\n\n if (window[spriteGlobalVarName]) {\n sprite = window[spriteGlobalVarName];\n } else {\n window[spriteGlobalVarName] = sprite;\n }\n\n if (document.body) {\n loadSprite();\n } else {\n createDomReady()(loadSprite);\n }\n};\n\ninit();\n\nexport { BrowserSpriteSymbol as SpriteSymbol, sprite };\n","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"7e3aa6e8f105b74dd36141c94bfbc1eb\",\"content\":\"<symbol viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"7e3aa6e8f105b74dd36141c94bfbc1eb\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M9.554 4.47a.6.6 0 0 1-.13.654l-3 3a.6.6 0 0 1-.849 0l-3-3A.6.6 0 0 1 3 4.1h6a.6.6 0 0 1 .554.37Z\\\" fill=\\\"currentColor\\\" fill-opacity=\\\".56\\\" />\\n</symbol>\",\"viewBox\":\"0 0 12 12\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"b1d648a783b58a400b404192338f655e\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 98 96\\\" id=\\\"b1d648a783b58a400b404192338f655e\\\">\\n <path fill=\\\"currentColor\\\" fill-rule=\\\"evenodd\\\" d=\\\"M48.85 0C21.84 0 0 22 0 49.22 0 70.97 14 89.39 33.4 95.9c2.43.49 3.32-1.06 3.32-2.37 0-1.14-.08-5.05-.08-9.12-13.59 2.93-16.42-5.87-16.42-5.87-2.18-5.7-5.42-7.17-5.42-7.17-4.45-3.01.33-3.01.33-3.01 4.93.32 7.52 5.05 7.52 5.05 4.37 7.5 11.4 5.38 14.23 4.07.4-3.18 1.7-5.38 3.08-6.6-10.84-1.14-22.25-5.38-22.25-24.28 0-5.38 1.94-9.78 5.02-13.2-.49-1.22-2.19-6.28.48-13.04 0 0 4.13-1.3 13.43 5.05a46.97 46.97 0 0 1 12.21-1.63c4.13 0 8.33.57 12.22 1.63 9.3-6.35 13.42-5.05 13.42-5.05 2.67 6.76.97 11.82.49 13.04a18.9 18.9 0 0 1 5.01 13.2c0 18.9-11.4 23.06-22.32 24.28 1.78 1.55 3.32 4.48 3.32 9.13 0 6.6-.08 11.9-.08 13.52 0 1.3.89 2.86 3.31 2.37a49.18 49.18 0 0 0 33.4-46.7C97.72 22 75.8 0 48.86 0z\\\" clip-rule=\\\"evenodd\\\" />\\n</symbol>\",\"viewBox\":\"0 0 98 96\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"97e840812207a4e85942a3d4cc9c425d\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 16 16\\\" id=\\\"97e840812207a4e85942a3d4cc9c425d\\\">\\n <g clip-path=\\\"url(#97e840812207a4e85942a3d4cc9c425d_a)\\\">\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\".56\\\" stroke-width=\\\"1.5\\\" d=\\\"M8 5.333V8m0 2.666h.006M14.666 8A6.667 6.667 0 1 1 1.333 8a6.667 6.667 0 0 1 13.333 0Z\\\" />\\n </g>\\n <defs>\\n <clipPath id=\\\"97e840812207a4e85942a3d4cc9c425d_a\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M0 0h16v16H0z\\\" />\\n </clipPath>\\n </defs>\\n</symbol>\",\"viewBox\":\"0 0 16 16\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"fd1fdbebd322c484b74d1ba8222ec72e\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"fd1fdbebd322c484b74d1ba8222ec72e\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M11 4H7.8C6.11984 4 5.27976 4 4.63803 4.32698C4.07354 4.6146 3.6146 5.07354 3.32698 5.63803C3 6.27976 3 7.11984 3 8.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21H15.2C16.8802 21 17.7202 21 18.362 20.673C18.9265 20.3854 19.3854 19.9265 19.673 19.362C20 18.7202 20 17.8802 20 16.2V13M20.1213 3.87868C21.2929 5.05025 21.2929 6.94975 20.1213 8.12132C18.9497 9.29289 17.0503 9.29289 15.8787 8.12132C14.7071 6.94975 14.7071 5.05025 15.8787 3.87868C17.0503 2.70711 18.9497 2.70711 20.1213 3.87868Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"6a0dfad9d21a9029d1e845251a03a91c\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"6a0dfad9d21a9029d1e845251a03a91c\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M7 13L12 18L17 13M7 6L12 11L17 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"6714b0a01cad0cd868b19137adbf8ef7\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"6714b0a01cad0cd868b19137adbf8ef7\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M6 9L12 15L18 9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"d369105b52d959e0f31d7e56dae2612e\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"d369105b52d959e0f31d7e56dae2612e\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M9 18L15 12L9 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"0b66582bad1b04536ee18b4b8d9e9a30\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"0b66582bad1b04536ee18b4b8d9e9a30\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M17 18L12 13L7 18M17 11L12 6L7 11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"7d421dfdc55a22c840e4f6e7f6d142f1\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"7d421dfdc55a22c840e4f6e7f6d142f1\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M18 15L12 9L6 15\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"a5aca797db351fc35e3c4b4d5d3a6673\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"a5aca797db351fc35e3c4b4d5d3a6673\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M4 4V5.4C4 8.76031 4 10.4405 4.65396 11.7239C5.2292 12.8529 6.14708 13.7708 7.27606 14.346C8.55953 15 10.2397 15 13.6 15H20M20 15L15 10M20 15L15 20\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"14ab32a1c041859dcf2a710b85f4e6bb\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"14ab32a1c041859dcf2a710b85f4e6bb\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M14 10L21 3M21 3H15M21 3V9M10 14L3 21M3 21H9M3 21L3 15\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"2df7897188ce65409ea57e820129bd3f\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"2df7897188ce65409ea57e820129bd3f\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M8.54636 19.7675C10.9455 20.8319 13.803 20.7741 16.2499 19.3613C20.3154 17.0141 21.7084 11.8156 19.3612 7.75008L19.1112 7.31706M4.63826 16.2502C2.29105 12.1847 3.68399 6.98619 7.74948 4.63898C10.1965 3.22621 13.0539 3.16841 15.4531 4.23277M2.49316 16.3338L5.22521 17.0659L5.95727 14.3338M18.0424 9.6659L18.7744 6.93385L21.5065 7.6659\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"2e896c815a6200a31f8b8e813ff3443b\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"2e896c815a6200a31f8b8e813ff3443b\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M4.5 18H19.5M4.5 12H15.5M4.5 6H12.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"9401086058a257018c5f11bd2d0f1699\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"9401086058a257018c5f11bd2d0f1699\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M4.5 6H19.5M4.5 12C6.45262 12 13.5474 12 15.5 12M4.5 18L12.5 18\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"b46ed421558c23c2bc56040f64fea542\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"b46ed421558c23c2bc56040f64fea542\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M7 4V20M7 20L3 16M7 20L11 16M17 20V4M17 4L13 8M17 4L21 8\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"bb021e85399e995f42b66451360b7f3e\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" id=\\\"bb021e85399e995f42b66451360b7f3e\\\">\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\".7\\\" stroke-width=\\\"1.5\\\" d=\\\"M8 13v4m8-6v6M12 7v10m-4 4h11l2-2V5l-2-2H5L3 5v14l2 2h3Z\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"c2b90d2236acecf4ea15dfe9c6962306\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"c2b90d2236acecf4ea15dfe9c6962306\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M2.5 7L5 9.5M2.5 20.5L5.5 17.5M1.5 13.5H4.6213M19 13.5H22.5M19 9.5L21.5 7M18.5 17.5L21.5 20.5M8 7.5V6.5C8 4.29086 9.7908 2.5 12 2.5C14.2092 2.5 16 4.29086 16 6.5V7.5M12 21.5C8.13401 21.5 5 18.366 5 14.5V11.4999C5 10.3829 5 9.82428 5.15712 9.37516C5.43856 8.57093 6.07093 7.93856 6.87522 7.65712C7.32427 7.5 7.88284 7.5 9 7.5H15.0001C16.1171 7.5 16.6757 7.5 17.1248 7.65712C17.9291 7.93856 18.5614 8.57093 18.8429 9.37516C19 9.82428 19 10.3829 19 11.4999V14.5C19 18.366 15.866 21.5 12 21.5Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"11fffc2467a7bbf0274413a1ad37dc9f\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"11fffc2467a7bbf0274413a1ad37dc9f\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M14.5 15L17.5 12L14.5 9M9.5 9L6.5 12L9.5 15M7.8 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"6a4ae14f6cf80dfe96ec4985f4a1f09a\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" id=\\\"6a4ae14f6cf80dfe96ec4985f4a1f09a\\\">\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\".7\\\" stroke-width=\\\"1.5\\\" d=\\\"M12 4v14l2 2h3m0 0a2 2 0 1 0 4 0 2 2 0 0 0-4 0ZM7 4h10M7 4a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm10 0a2 2 0 1 0 4 0 2 2 0 0 0-4 0Zm-5 8h5m0 0a2 2 0 1 0 4 0 2 2 0 0 0-4 0Z\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"28573ddc1fa4574541a30ea41dc809d3\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" id=\\\"28573ddc1fa4574541a30ea41dc809d3\\\">\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\".7\\\" stroke-width=\\\"1.5\\\" d=\\\"M16 4h2l2 2v14l-2 2H6l-2-2V6l2-2h2m1 11 2 2 5-4m-6-7h5l1-1V4v0-1l-1-1H9L8 3v2l1 1h1Z\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"5d13576ad53afa1a06870e7f2a89611c\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" id=\\\"5d13576ad53afa1a06870e7f2a89611c\\\">\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\".7\\\" stroke-width=\\\"1.5\\\" d=\\\"M14 11H8m2 4H8m8-8H8m12 0v13l-2 2H6l-2-2V4l2-2h12l2 2v3Z\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"301433459aced022caf70a344436a818\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"301433459aced022caf70a344436a818\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M20 7V6.8C20 5.11984 20 4.27976 19.673 3.63803C19.3854 3.07354 18.9265 2.6146 18.362 2.32698C17.7202 2 16.8802 2 15.2 2H8.8C7.11984 2 6.27976 2 5.63803 2.32698C5.07354 2.6146 4.6146 3.07354 4.32698 3.63803C4 4.27976 4 5.11984 4 6.8V17.2C4 18.8802 4 19.7202 4.32698 20.362C4.6146 20.9265 5.07354 21.3854 5.63803 21.673C6.27976 22 7.11984 22 8.8 22H12.5M12.5 11H8M11.5 15H8M16 7H8M18 18V12.5C18 11.6716 18.6716 11 19.5 11C20.3284 11 21 11.6716 21 12.5V18C21 19.6569 19.6569 21 18 21C16.3431 21 15 19.6569 15 18V14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"8e25e3f623b611fe5142a6270ac7268d\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 24 24\\\" id=\\\"8e25e3f623b611fe5142a6270ac7268d\\\">\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\".7\\\" stroke-width=\\\"1.5\\\" d=\\\"m13 7-1-2-1-1-1-1H3L2 4v3m0 0h18l2 2v10l-2 2H4l-2-2V7Z\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"fcf877cdf00a9154483271d31c261114\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"fcf877cdf00a9154483271d31c261114\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M20 6L9 17L4 12\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"1bc28c2f0dfd279d91231ef6e553e638\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"1bc28c2f0dfd279d91231ef6e553e638\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M13 5H21M13 9H18M13 15H21M13 19H18M3 17.012L4.99133 19L9 15M4 4H8C8.55228 4 9 4.44772 9 5V9C9 9.55228 8.55228 10 8 10H4C3.44772 10 3 9.55228 3 9V5C3 4.44772 3.44772 4 4 4Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"472a7e86c3a9476a4f38bb06c801d30d\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"472a7e86c3a9476a4f38bb06c801d30d\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M5 15C4.06812 15 3.60218 15 3.23463 14.8478C2.74458 14.6448 2.35523 14.2554 2.15224 13.7654C2 13.3978 2 12.9319 2 12V5.2C2 4.0799 2 3.51984 2.21799 3.09202C2.40973 2.71569 2.71569 2.40973 3.09202 2.21799C3.51984 2 4.0799 2 5.2 2H12C12.9319 2 13.3978 2 13.7654 2.15224C14.2554 2.35523 14.6448 2.74458 14.8478 3.23463C15 3.60218 15 4.06812 15 5M12.2 22H18.8C19.9201 22 20.4802 22 20.908 21.782C21.2843 21.5903 21.5903 21.2843 21.782 20.908C22 20.4802 22 19.9201 22 18.8V12.2C22 11.0799 22 10.5198 21.782 10.092C21.5903 9.71569 21.2843 9.40973 20.908 9.21799C20.4802 9 19.9201 9 18.8 9H12.2C11.0799 9 10.5198 9 10.092 9.21799C9.71569 9.40973 9.40973 9.71569 9.21799 10.092C9 10.5198 9 11.0799 9 12.2V18.8C9 19.9201 9 20.4802 9.21799 20.908C9.40973 21.2843 9.71569 21.5903 10.092 21.782C10.5198 22 11.0799 22 12.2 22Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"0e6dd40015c633a2be9271018b9b22bf\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"0e6dd40015c633a2be9271018b9b22bf\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M4 16.2422C2.79401 15.435 2 14.0602 2 12.5C2 10.1564 3.79151 8.23129 6.07974 8.01937C6.54781 5.17213 9.02024 3 12 3C14.9798 3 17.4522 5.17213 17.9203 8.01937C20.2085 8.23129 22 10.1564 22 12.5C22 14.0602 21.206 15.435 20 16.2422M8 17L12 21M12 21L16 17M12 21V12\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"dacf24b7c84e8a250ab378b98cf65780\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"dacf24b7c84e8a250ab378b98cf65780\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M5 9H19M5 15H19\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"f6af8233c5d208fa571aed090bfc4178\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 16 16\\\" id=\\\"f6af8233c5d208fa571aed090bfc4178\\\">\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\".56\\\" stroke-width=\\\"1.5\\\" d=\\\"M1.613 8.475c-.09-.144-.136-.216-.161-.326a.782.782 0 0 1 0-.298c.025-.111.07-.183.161-.327C2.363 6.336 4.597 3.333 8 3.333c3.404 0 5.637 3.003 6.387 4.191.09.144.136.216.162.327.019.083.019.214 0 .298-.026.11-.071.182-.162.326-.75 1.188-2.983 4.191-6.387 4.191-3.403 0-5.636-3.003-6.387-4.19Z\\\" />\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\".56\\\" stroke-width=\\\"1.5\\\" d=\\\"M8 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\\\" />\\n</symbol>\",\"viewBox\":\"0 0 16 16\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"e2bf3103166453fd92fed1c3c2fcc807\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"e2bf3103166453fd92fed1c3c2fcc807\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M8 17H16M11.0177 2.764L4.23539 8.03912C3.78202 8.39175 3.55534 8.56806 3.39203 8.78886C3.24737 8.98444 3.1396 9.20478 3.07403 9.43905C3 9.70352 3 9.9907 3 10.5651V17.8C3 18.9201 3 19.4801 3.21799 19.908C3.40973 20.2843 3.71569 20.5903 4.09202 20.782C4.51984 21 5.07989 21 6.2 21H17.8C18.9201 21 19.4802 21 19.908 20.782C20.2843 20.5903 20.5903 20.2843 20.782 19.908C21 19.4801 21 18.9201 21 17.8V10.5651C21 9.9907 21 9.70352 20.926 9.43905C20.8604 9.20478 20.7526 8.98444 20.608 8.78886C20.4447 8.56806 20.218 8.39175 19.7646 8.03913L12.9823 2.764C12.631 2.49075 12.4553 2.35412 12.2613 2.3016C12.0902 2.25526 11.9098 2.25526 11.7387 2.3016C11.5447 2.35412 11.369 2.49075 11.0177 2.764Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"db4c3937a96a0ed2c4446a44d3ed4487\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"db4c3937a96a0ed2c4446a44d3ed4487\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M10.0002 13C10.4297 13.5741 10.9776 14.0491 11.6067 14.3929C12.2359 14.7367 12.9317 14.9411 13.6468 14.9923C14.362 15.0435 15.0798 14.9403 15.7515 14.6897C16.4233 14.4392 17.0333 14.047 17.5402 13.54L20.5402 10.54C21.451 9.59695 21.955 8.33394 21.9436 7.02296C21.9322 5.71198 21.4063 4.45791 20.4793 3.53087C19.5523 2.60383 18.2982 2.07799 16.9872 2.0666C15.6762 2.0552 14.4132 2.55918 13.4702 3.46997L11.7502 5.17997M14.0002 11C13.5707 10.4258 13.0228 9.95078 12.3936 9.60703C11.7645 9.26327 11.0687 9.05885 10.3535 9.00763C9.63841 8.95641 8.92061 9.0596 8.24885 9.31018C7.5771 9.56077 6.96709 9.9529 6.4602 10.46L3.4602 13.46C2.54941 14.403 2.04544 15.666 2.05683 16.977C2.06822 18.288 2.59407 19.542 3.52111 20.4691C4.44815 21.3961 5.70221 21.9219 7.01319 21.9333C8.32418 21.9447 9.58719 21.4408 10.5302 20.53L12.2402 18.82\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"f346781556394af2bd92144ed8a81446\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"f346781556394af2bd92144ed8a81446\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M21 9L21 3M21 3H15M21 3L13 11M10 5H7.8C6.11984 5 5.27976 5 4.63803 5.32698C4.07354 5.6146 3.6146 6.07354 3.32698 6.63803C3 7.27976 3 8.11984 3 9.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21H14.2C15.8802 21 16.7202 21 17.362 20.673C17.9265 20.3854 18.3854 19.9265 18.673 19.362C19 18.7202 19 17.8802 19 16.2V14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"eb91e2adaaf820e51d7f9276a36ae9bc\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"eb91e2adaaf820e51d7f9276a36ae9bc\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M21 21L16.65 16.65M19 11C19 15.4183 15.4183 19 11 19C6.58172 19 3 15.4183 3 11C3 6.58172 6.58172 3 11 3C15.4183 3 19 6.58172 19 11Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"a3d8dc7d008afa216e105f1d0e428c8a\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"a3d8dc7d008afa216e105f1d0e428c8a\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M3 8L15 8M15 8C15 9.65686 16.3431 11 18 11C19.6569 11 21 9.65685 21 8C21 6.34315 19.6569 5 18 5C16.3431 5 15 6.34315 15 8ZM9 16L21 16M9 16C9 17.6569 7.65685 19 6 19C4.34315 19 3 17.6569 3 16C3 14.3431 4.34315 13 6 13C7.65685 13 9 14.3431 9 16Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"00720afc1b6bf51893d1d598043a4de1\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"00720afc1b6bf51893d1d598043a4de1\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M18 6L6 18M6 6L18 18\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"72dc6b01e3eb761c8218eb9909e841a6\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"72dc6b01e3eb761c8218eb9909e841a6\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M12.9999 2L4.09332 12.6879C3.74451 13.1064 3.57011 13.3157 3.56744 13.4925C3.56512 13.6461 3.63359 13.7923 3.75312 13.8889C3.89061 14 4.16304 14 4.7079 14H11.9999L10.9999 22L19.9064 11.3121C20.2552 10.8936 20.4296 10.6843 20.4323 10.5075C20.4346 10.3539 20.3661 10.2077 20.2466 10.1111C20.1091 10 19.8367 10 19.2918 10H11.9999L12.9999 2Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"2b588854ea2eb02a33849edc6074ba47\",\"content\":\"<symbol fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" id=\\\"2b588854ea2eb02a33849edc6074ba47\\\">\\n <path d=\\\"M2.667 10s.667-.667 2.667-.667c2 0 3.333 1.333 5.333 1.333S13.334 10 13.334 10V2s-.667.666-2.667.666c-2 0-3.333-1.333-5.333-1.333S2.667 2 2.667 2v12.666\\\" stroke=\\\"currentColor\\\" stroke-opacity=\\\".72\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 16 16\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"e7a5450a50d9dbdceccdc513ec1c2df5\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"e7a5450a50d9dbdceccdc513ec1c2df5\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M9.5 8.96533C9.5 8.48805 9.5 8.24941 9.59974 8.11618C9.68666 8.00007 9.81971 7.92744 9.96438 7.9171C10.1304 7.90525 10.3311 8.03429 10.7326 8.29239L15.4532 11.3271C15.8016 11.551 15.9758 11.663 16.0359 11.8054C16.0885 11.9298 16.0885 12.0702 16.0359 12.1946C15.9758 12.337 15.8016 12.449 15.4532 12.6729L10.7326 15.7076C10.3311 15.9657 10.1304 16.0948 9.96438 16.0829C9.81971 16.0726 9.68666 15.9999 9.59974 15.8838C9.5 15.7506 9.5 15.512 9.5 15.0347V8.96533Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"212b7cc7454a8f2131b99a6dc35cdac7\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 16 16\\\" id=\\\"212b7cc7454a8f2131b99a6dc35cdac7\\\">\\n <g clip-path=\\\"url(#212b7cc7454a8f2131b99a6dc35cdac7_a)\\\">\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\".56\\\" stroke-width=\\\"1.5\\\" d=\\\"m9.566 3.1 1.3-1.3a1.607 1.607 0 0 1 2.267 0L14.2 2.867a1.6 1.6 0 0 1 0 2.266l-1.3 1.3m1.766-5.1-1 1m-.333 6.334a6 6 0 1 1-12 0 6 6 0 0 1 12 0Z\\\" />\\n </g>\\n <defs>\\n <clipPath id=\\\"212b7cc7454a8f2131b99a6dc35cdac7_a\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M0 0h16v16H0z\\\" />\\n </clipPath>\\n </defs>\\n</symbol>\",\"viewBox\":\"0 0 16 16\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"74dd05c5f266368b8b6322f3a7323966\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"74dd05c5f266368b8b6322f3a7323966\\\">\\n <path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M16.2 21H6.93137C6.32555 21 6.02265 21 5.88238 20.8802C5.76068 20.7763 5.69609 20.6203 5.70865 20.4608C5.72312 20.2769 5.93731 20.0627 6.36569 19.6343L14.8686 11.1314C15.2646 10.7354 15.4627 10.5373 15.691 10.4632C15.8918 10.3979 16.1082 10.3979 16.309 10.4632C16.5373 10.5373 16.7354 10.7354 17.1314 11.1314L21 15V16.2M16.2 21C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2M16.2 21H7.8C6.11984 21 5.27976 21 4.63803 20.673C4.07354 20.3854 3.6146 19.9265 3.32698 19.362C3 18.7202 3 17.8802 3 16.2V7.8C3 6.11984 3 5.27976 3.32698 4.63803C3.6146 4.07354 4.07354 3.6146 4.63803 3.32698C5.27976 3 6.11984 3 7.8 3H16.2C17.8802 3 18.7202 3 19.362 3.32698C19.9265 3.6146 20.3854 4.07354 20.673 4.63803C21 5.27976 21 6.11984 21 7.8V16.2M10.5 8.5C10.5 9.60457 9.60457 10.5 8.5 10.5C7.39543 10.5 6.5 9.60457 6.5 8.5C6.5 7.39543 7.39543 6.5 8.5 6.5C9.60457 6.5 10.5 7.39543 10.5 8.5Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"59472a73e3c4c5e34794720bd8f10af7\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" id=\\\"59472a73e3c4c5e34794720bd8f10af7\\\">\\n <path vector-effect=\\\"non-scaling-stroke\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-opacity=\\\"1\\\" stroke-width=\\\"1.5\\\" d=\\\"M12 3v18M8 3h11l2 2v14l-2 2H5l-2-2V5l2-2h3Z\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"a7ec9c9b2ab84be9a85639d7ee018535\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"a7ec9c9b2ab84be9a85639d7ee018535\\\">\\n <path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M3 9H21M7.8 3H16.2C17.8802 3 18.7202 3 19.362 3.32698C19.9265 3.6146 20.3854 4.07354 20.673 4.63803C21 5.27976 21 6.11984 21 7.8V16.2C21 17.8802 21 18.7202 20.673 19.362C20.3854 19.9265 19.9265 20.3854 19.362 20.673C18.7202 21 17.8802 21 16.2 21H7.8C6.11984 21 5.27976 21 4.63803 20.673C4.07354 20.3854 3.6146 19.9265 3.32698 19.362C3 18.7202 3 17.8802 3 16.2V7.8C3 6.11984 3 5.27976 3.32698 4.63803C3.6146 4.07354 4.07354 3.6146 4.63803 3.32698C5.27976 3 6.11984 3 7.8 3Z\\\" stroke=\\\"currentColor\\\" stroke-opacity=\\\"1\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"2cfef4a6ca3bcab80737e78fa35a1e8e\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"2cfef4a6ca3bcab80737e78fa35a1e8e\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M15 9H15.01M15 15C18.3137 15 21 12.3137 21 9C21 5.68629 18.3137 3 15 3C11.6863 3 9 5.68629 9 9C9 9.27368 9.01832 9.54308 9.05381 9.80704C9.11218 10.2412 9.14136 10.4583 9.12172 10.5956C9.10125 10.7387 9.0752 10.8157 9.00469 10.9419C8.937 11.063 8.81771 11.1823 8.57913 11.4209L3.46863 16.5314C3.29568 16.7043 3.2092 16.7908 3.14736 16.8917C3.09253 16.9812 3.05213 17.0787 3.02763 17.1808C3 17.2959 3 17.4182 3 17.6627V19.4C3 19.9601 3 20.2401 3.10899 20.454C3.20487 20.6422 3.35785 20.7951 3.54601 20.891C3.75992 21 4.03995 21 4.6 21H6.33726C6.58185 21 6.70414 21 6.81923 20.9724C6.92127 20.9479 7.01881 20.9075 7.10828 20.8526C7.2092 20.7908 7.29568 20.7043 7.46863 20.5314L12.5791 15.4209C12.8177 15.1823 12.937 15.063 13.0581 14.9953C13.1843 14.9248 13.2613 14.8987 13.4044 14.8783C13.5417 14.8586 13.7588 14.8878 14.193 14.9462C14.4569 14.9817 14.7263 15 15 15Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"f5f0f4b804a352ab8e0f24140051bbe3\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"f5f0f4b804a352ab8e0f24140051bbe3\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M8.99999 12H12M8.99999 12C8.99999 12.3965 9.07692 12.7751 9.21667 13.1216M8.99999 12C8.99999 11.6224 9.06975 11.2611 9.19707 10.9283M15 12H12M15 12C15 11.6224 14.9303 11.2611 14.8029 10.9283M15 12C15 12.3776 14.9303 12.7389 14.8029 13.0717M12 15V12M12 15C11.6219 15 11.2601 14.93 10.9269 14.8024M12 15C12.4299 15 12.8388 14.9096 13.2085 14.7467M12 9V12M12 9C12.4299 9 12.8388 9.09044 13.2085 9.25334M12 9C11.5908 9 11.2008 9.08191 10.8454 9.23022M12 12L9.82377 9.93503M12 12L14.3085 13.916M12 12L9.94168 14.1825M12 12L14.1762 9.93503M12 12L14.8029 10.9283M12 12L9.21667 13.1216M12 12L10.9269 14.8024M12 12L13.2085 9.25334M12 12L14.8029 13.0717M12 12L13.2085 14.7467M12 12L10.8454 9.23022M12 12L9.19707 10.9283M9.82377 9.93503C10.1094 9.63416 10.4567 9.39246 10.8454 9.23022M9.82377 9.93503C9.55415 10.2191 9.33956 10.5559 9.19707 10.9283M14.3085 13.916C14.5165 13.6657 14.6846 13.381 14.8029 13.0717M14.3085 13.916C14.0131 14.2716 13.6371 14.5578 13.2085 14.7467M9.94168 14.1825C9.62921 13.8877 9.38003 13.5266 9.21667 13.1216M9.94168 14.1825C10.224 14.4488 10.5579 14.661 10.9269 14.8024M14.1762 9.93503C14.4458 10.2191 14.6604 10.5559 14.8029 10.9283M14.1762 9.93503C13.9039 9.64814 13.5755 9.41504 13.2085 9.25334M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"b53acf6616bc3217ee53f6fa11e30526\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"b53acf6616bc3217ee53f6fa11e30526\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M5.5839 4.7328C6.33209 3.98462 7.17125 3.38527 8.06529 2.9339C7.43285 6.41756 8.46285 10.1468 11.158 12.842C13.8532 15.5372 17.5824 16.5672 21.0661 15.9347C20.6147 16.8288 20.0154 17.6679 19.2672 18.4161C15.4887 22.1946 9.36244 22.1946 5.5839 18.4161C1.80537 14.6376 1.80537 8.51134 5.5839 4.7328Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"f6726cf2a294337e9b40efc54b12453b\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"f6726cf2a294337e9b40efc54b12453b\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M22 12H20M19.071 19.0711L17.6567 17.6569M4 12H2M6.34292 6.34317L4.92871 4.92896M12 4V2M17.6567 6.34317L19.071 4.92896M12 22V20M4.92871 19.0711L6.34292 17.6569M18 12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12Z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"fcf01aebea5d02da45d4b8d3bac62b58\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"fcf01aebea5d02da45d4b8d3bac62b58\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" d=\\\"M12 9.5V13.5L14.5 15M12 5C7.30558 5 3.5 8.80558 3.5 13.5C3.5 18.1944 7.30558 22 12 22C16.6944 22 20.5 18.1944 20.5 13.5C20.5 8.80558 16.6944 5 12 5ZM12 5V2M10 2H14M20.329 5.59204L18.829 4.09204L19.579 4.84204M3.67102 5.59204L5.17102 4.09204L4.42102 4.84204\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"4af8011a58a597dd8fd8c52187120c54\",\"content\":\"<symbol xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" viewBox=\\\"0 0 32 32\\\" id=\\\"4af8011a58a597dd8fd8c52187120c54\\\">\\n <g clip-path=\\\"url(#4af8011a58a597dd8fd8c52187120c54_a)\\\">\\n <path fill=\\\"url(#4af8011a58a597dd8fd8c52187120c54_b)\\\" fill-rule=\\\"evenodd\\\" d=\\\"M22.23 4.66a3.6 3.6 0 0 1 5.1.04A16.08 16.08 0 0 1 31.97 16a3.6 3.6 0 1 1-7.2 0c0-2.4-.98-4.61-2.58-6.24a3.6 3.6 0 0 1 .03-5.1Z\\\" clip-rule=\\\"evenodd\\\" />\\n <path fill=\\\"url(#4af8011a58a597dd8fd8c52187120c54_c)\\\" fill-rule=\\\"evenodd\\\" d=\\\"M12.4 3.6A3.6 3.6 0 0 1 16 0c4.4 0 8.4 1.8 11.29 4.66a3.6 3.6 0 0 1-5.06 5.13A8.87 8.87 0 0 0 16 7.2a3.6 3.6 0 0 1-3.6-3.6Z\\\" clip-rule=\\\"evenodd\\\" />\\n <path fill=\\\"url(#4af8011a58a597dd8fd8c52187120c54_d)\\\" fill-rule=\\\"evenodd\\\" d=\\\"M0 16A16 16 0 0 1 16 0a3.6 3.6 0 0 1 0 7.2 8.8 8.8 0 0 0-6.21 15.04 3.6 3.6 0 0 1-5.13 5.06A16.08 16.08 0 0 1 0 16Z\\\" clip-rule=\\\"evenodd\\\" />\\n <path fill=\\\"url(#4af8011a58a597dd8fd8c52187120c54_e)\\\" fill-rule=\\\"evenodd\\\" d=\\\"M4.66 22.24a3.6 3.6 0 0 1 5.1-.03 8.87 8.87 0 0 0 6.23 2.59 3.6 3.6 0 0 1 0 7.2c-4.4 0-8.4-1.8-11.3-4.66a3.6 3.6 0 0 1-.03-5.1Z\\\" clip-rule=\\\"evenodd\\\" />\\n <path fill=\\\"url(#4af8011a58a597dd8fd8c52187120c54_f)\\\" fill-rule=\\\"evenodd\\\" d=\\\"M28.38 12.4a3.6 3.6 0 0 1 3.6 3.6A16 16 0 0 1 16 32a3.6 3.6 0 0 1 0-7.2 8.8 8.8 0 0 0 8.8-8.8 3.6 3.6 0 0 1 3.6-3.6Z\\\" clip-rule=\\\"evenodd\\\" />\\n <path fill=\\\"url(#4af8011a58a597dd8fd8c52187120c54_g)\\\" fill-rule=\\\"evenodd\\\" d=\\\"M28.38 12.4a3.6 3.6 0 0 1 3.6 3.6v12.4a3.6 3.6 0 1 1-7.2 0V16a3.6 3.6 0 0 1 3.6-3.6Z\\\" clip-rule=\\\"evenodd\\\" />\\n <g clip-path=\\\"url(#4af8011a58a597dd8fd8c52187120c54_h)\\\">\\n <path fill=\\\"url(#4af8011a58a597dd8fd8c52187120c54_i)\\\" fill-rule=\\\"evenodd\\\" d=\\\"M22.23 4.66a3.6 3.6 0 0 1 5.1.04A16.08 16.08 0 0 1 31.97 16a3.6 3.6 0 1 1-7.2 0c0-2.4-.98-4.61-2.58-6.24a3.6 3.6 0 0 1 .03-5.1Z\\\" clip-rule=\\\"evenodd\\\" />\\n </g>\\n </g>\\n <defs>\\n <linearGradient id=\\\"4af8011a58a597dd8fd8c52187120c54_b\\\" x1=\\\"26.4\\\" x2=\\\"28.8\\\" y1=\\\"9.6\\\" y2=\\\"15.01\\\" gradientUnits=\\\"userSpaceOnUse\\\">\\n <stop stop-color=\\\"#7E22CE\\\" />\\n <stop offset=\\\"1\\\" stop-color=\\\"#8B5CF6\\\" />\\n </linearGradient>\\n <linearGradient id=\\\"4af8011a58a597dd8fd8c52187120c54_c\\\" x1=\\\"26.8\\\" x2=\\\"17.8\\\" y1=\\\"9.4\\\" y2=\\\"3.61\\\" gradientUnits=\\\"userSpaceOnUse\\\">\\n <stop stop-color=\\\"#EF4444\\\" />\\n <stop offset=\\\"1\\\" stop-color=\\\"#DC2626\\\" />\\n </linearGradient>\\n <linearGradient id=\\\"4af8011a58a597dd8fd8c52187120c54_d\\\" x1=\\\"3.6\\\" x2=\\\"5.4\\\" y1=\\\"14.01\\\" y2=\\\"24.81\\\" gradientUnits=\\\"userSpaceOnUse\\\">\\n <stop stop-color=\\\"#22C55E\\\" />\\n <stop offset=\\\"1\\\" stop-color=\\\"#15803D\\\" />\\n </linearGradient>\\n <linearGradient id=\\\"4af8011a58a597dd8fd8c52187120c54_e\\\" x1=\\\"4.8\\\" x2=\\\"14.4\\\" y1=\\\"22.21\\\" y2=\\\"29.21\\\" gradientUnits=\\\"userSpaceOnUse\\\">\\n <stop stop-color=\\\"#94A3B8\\\" />\\n <stop offset=\\\".96\\\" stop-color=\\\"#64748B\\\" />\\n <stop offset=\\\"1\\\" stop-color=\\\"#64748B\\\" />\\n </linearGradient>\\n <linearGradient id=\\\"4af8011a58a597dd8fd8c52187120c54_f\\\" x1=\\\"28.4\\\" x2=\\\"22.19\\\" y1=\\\"22.18\\\" y2=\\\"28.4\\\" gradientUnits=\\\"userSpaceOnUse\\\">\\n <stop stop-color=\\\"#D97706\\\" />\\n <stop offset=\\\"1\\\" stop-color=\\\"#FBBF24\\\" />\\n </linearGradient>\\n <linearGradient id=\\\"4af8011a58a597dd8fd8c52187120c54_g\\\" x1=\\\"29.2\\\" x2=\\\"30.63\\\" y1=\\\"54.43\\\" y2=\\\"54.28\\\" gradientUnits=\\\"userSpaceOnUse\\\">\\n <stop stop-color=\\\"#FBBF24\\\" />\\n <stop offset=\\\"1\\\" stop-color=\\\"#FBBF24\\\" />\\n </linearGradient>\\n <linearGradient id=\\\"4af8011a58a597dd8fd8c52187120c54_i\\\" x1=\\\"26.4\\\" x2=\\\"28.8\\\" y1=\\\"9.6\\\" y2=\\\"15.01\\\" gradientUnits=\\\"userSpaceOnUse\\\">\\n <stop stop-color=\\\"#7E22CE\\\" />\\n <stop offset=\\\"1\\\" stop-color=\\\"#8B5CF6\\\" />\\n </linearGradient>\\n <clipPath id=\\\"4af8011a58a597dd8fd8c52187120c54_a\\\">\\n <path fill=\\\"#fff\\\" d=\\\"M0 0h32v32H0z\\\" />\\n </clipPath>\\n <clipPath id=\\\"4af8011a58a597dd8fd8c52187120c54_h\\\">\\n <path fill=\\\"#fff\\\" d=\\\"M24.8 12H32v8h-7.2z\\\" />\\n </clipPath>\\n </defs>\\n</symbol>\",\"viewBox\":\"0 0 32 32\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"9a80d543f66830af93634ae4d68aa0b7\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"9a80d543f66830af93634ae4d68aa0b7\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1ZM13 8C13 7.44772 12.5523 7 12 7C11.4477 7 11 7.44772 11 8V12C11 12.5523 11.4477 13 12 13C12.5523 13 13 12.5523 13 12V8ZM12 15C11.4477 15 11 15.4477 11 16C11 16.5523 11.4477 17 12 17H12.01C12.5623 17 13.01 16.5523 13.01 16C13.01 15.4477 12.5623 15 12.01 15H12Z\\\" fill=\\\"currentColor\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"9fc212651ca048f099abf61155ea3483\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"9fc212651ca048f099abf61155ea3483\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1ZM17.2071 9.70711C17.5976 9.31658 17.5976 8.68342 17.2071 8.29289C16.8166 7.90237 16.1834 7.90237 15.7929 8.29289L10.5 13.5858L8.20711 11.2929C7.81658 10.9024 7.18342 10.9024 6.79289 11.2929C6.40237 11.6834 6.40237 12.3166 6.79289 12.7071L9.79289 15.7071C10.1834 16.0976 10.8166 16.0976 11.2071 15.7071L17.2071 9.70711Z\\\" fill=\\\"currentColor\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"6f69a868093429cca2d18204c014d1de\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"6f69a868093429cca2d18204c014d1de\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1ZM10.9066 8.27123C11.3138 8.03191 11.7926 7.94443 12.2581 8.02428C12.7236 8.10413 13.1459 8.34615 13.45 8.70749C13.7542 9.06883 13.9207 9.52615 13.92 9.99847L13.92 9.99996C13.92 10.4691 13.5549 10.9582 12.8653 11.4179C12.5509 11.6275 12.2294 11.7889 11.9826 11.8986C11.8606 11.9529 11.7603 11.9929 11.6929 12.0186C11.663 12.03 11.6329 12.041 11.6027 12.0516C11.0794 12.2267 10.7968 12.7926 10.9713 13.3162C11.146 13.8401 11.7123 14.1233 12.2362 13.9486L12.4049 13.8876C12.5015 13.8508 12.6356 13.7971 12.7949 13.7263C13.1105 13.586 13.5391 13.3724 13.9747 13.082C14.7849 12.5419 15.9195 11.5312 15.92 10.0009C15.9213 9.05644 15.5883 8.14201 14.9801 7.41949C14.3717 6.69682 13.5273 6.21277 12.5962 6.05307C11.6652 5.89337 10.7077 6.06833 9.89327 6.54696C9.07886 7.02559 8.46013 7.77701 8.14666 8.66812C7.96339 9.18911 8.23716 9.76002 8.75815 9.9433C9.27914 10.1266 9.85006 9.85279 10.0333 9.33181C10.1901 8.88625 10.4994 8.51054 10.9066 8.27123ZM12 16C11.4477 16 11 16.4477 11 17C11 17.5522 11.4477 18 12 18H12.01C12.5623 18 13.01 17.5522 13.01 17C13.01 16.4477 12.5623 16 12.01 16H12Z\\\" fill=\\\"currentColor\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"27eb29a1af650efa3c8f236e96fd49b8\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"27eb29a1af650efa3c8f236e96fd49b8\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1ZM8 11C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13H16C16.5523 13 17 12.5523 17 12C17 11.4477 16.5523 11 16 11H8Z\\\" fill=\\\"currentColor\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"d37b4d7c76a2a7896f3890561ed86f2d\",\"content\":\"<symbol viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"d37b4d7c76a2a7896f3890561ed86f2d\\\">\\n<path vector-effect=\\\"non-scaling-stroke\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1ZM15.7071 8.29289C16.0976 8.68342 16.0976 9.31658 15.7071 9.70711L13.4142 12L15.7071 14.2929C16.0976 14.6834 16.0976 15.3166 15.7071 15.7071C15.3166 16.0976 14.6834 16.0976 14.2929 15.7071L12 13.4142L9.70711 15.7071C9.31658 16.0976 8.68342 16.0976 8.29289 15.7071C7.90237 15.3166 7.90237 14.6834 8.29289 14.2929L10.5858 12L8.29289 9.70711C7.90237 9.31658 7.90237 8.68342 8.29289 8.29289C8.68342 7.90237 9.31658 7.90237 9.70711 8.29289L12 10.5858L14.2929 8.29289C14.6834 7.90237 15.3166 7.90237 15.7071 8.29289Z\\\" fill=\\\"currentColor\\\" />\\n</symbol>\",\"viewBox\":\"0 0 24 24\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"eddd9bec4b080bb230775b072a486acc\",\"content\":\"<symbol viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"eddd9bec4b080bb230775b072a486acc\\\">\\n <circle cx=\\\"8\\\" cy=\\\"8\\\" r=\\\"7\\\" stroke=\\\"currentColor\\\" stroke-opacity=\\\"0.32\\\" stroke-width=\\\"1.5\\\" vector-effect=\\\"non-scaling-stroke\\\" />\\n <path d=\\\"M 15 8 A 7 7 0 0 1 8 15\\\" stroke=\\\"currentColor\\\" stroke-opacity=\\\"1\\\" stroke-width=\\\"1.5\\\" class=\\\"allure-spinner\\\" vector-effect=\\\"non-scaling-stroke\\\" />\\n <style>\\n #eddd9bec4b080bb230775b072a486acc .allure-spinner {\\n transform-origin: center;\\n animation: allure-spinner-spin 0.75s infinite ease-in-out;\\n }\\n\\n @keyframes allure-spinner-spin {\\n 100% {\\n transform: rotate(360deg);\\n }\\n }\\n </style>\\n</symbol>\",\"viewBox\":\"0 0 16 16\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"baef59387353cd7f2939ebd4ddf30155\",\"content\":\"<symbol viewBox=\\\"0 0 32 32\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"baef59387353cd7f2939ebd4ddf30155\\\">\\n<g clip-path=\\\"url(#baef59387353cd7f2939ebd4ddf30155_clip0_428_25)\\\">\\n<path d=\\\"M5.24 22.51L6.67 21.09C5.10422 19.6841 3.87398 17.9447 3.07 16C5.1 10.93 10.7 7 16 7C17.3639 7.018 18.7154 7.26128 20 7.72L21.55 6.16C19.7927 5.41732 17.9077 5.02335 16 5C12.7405 5.12257 9.58839 6.19756 6.9332 8.09209C4.27802 9.98662 2.23616 12.6176 1.06 15.66C0.980569 15.8797 0.980569 16.1203 1.06 16.34C1.94825 18.697 3.38043 20.811 5.24 22.51Z\\\" fill=\\\"currentColor\\\" />\\n<path d=\\\"M12 15.73C12.0695 14.7717 12.4817 13.8705 13.1611 13.1911C13.8405 12.5117 14.7417 12.0995 15.7 12.03L17.51 10.21C16.4958 9.94295 15.4292 9.94642 14.4168 10.2201C13.4043 10.4937 12.4812 11.028 11.7396 11.7696C10.998 12.5112 10.4637 13.4343 10.1901 14.4468C9.91642 15.4592 9.91295 16.5258 10.18 17.54L12 15.73Z\\\" fill=\\\"currentColor\\\" />\\n<path d=\\\"M30.94 15.66C29.7933 12.6732 27.7981 10.087 25.2 8.22L30 3.41L28.59 2L2 28.59L3.41 30L8.51 24.9C10.7839 26.234 13.364 26.9574 16 27C19.2595 26.8774 22.4116 25.8024 25.0668 23.9079C27.722 22.0134 29.7638 19.3824 30.94 16.34C31.0194 16.1203 31.0194 15.8797 30.94 15.66ZM20 16C19.9958 16.7001 19.8079 17.3868 19.4551 17.9916C19.1023 18.5963 18.597 19.0978 17.9896 19.4461C17.3822 19.7943 16.6941 19.977 15.994 19.9759C15.2939 19.9749 14.6063 19.7901 14 19.44L19.44 14C19.7995 14.6057 19.9927 15.2957 20 16ZM16 25C13.9021 24.9634 11.8439 24.4214 10 23.42L12.54 20.88C13.6953 21.6816 15.0955 22.052 16.4961 21.9265C17.8967 21.8009 19.2087 21.1874 20.2031 20.1931C21.1974 19.1987 21.8109 17.8867 21.9365 16.4861C22.062 15.0855 21.6916 13.6853 20.89 12.53L23.76 9.66C26.0546 11.235 27.849 13.4354 28.93 16C26.9 21.07 21.3 25 16 25Z\\\" fill=\\\"currentColor\\\" />\\n</g>\\n<defs>\\n<clipPath id=\\\"baef59387353cd7f2939ebd4ddf30155_clip0_428_25\\\">\\n<rect width=\\\"32\\\" height=\\\"32\\\" fill=\\\"white\\\" />\\n</clipPath>\\n</defs>\\n</symbol>\",\"viewBox\":\"0 0 32 32\"})\nsprite.add(symbol)\n \nexport default symbol","\nimport { sprite, SpriteSymbol } from \"svg-sprites-virtual-module\"\n\nconst symbol = new SpriteSymbol({\"id\":\"81703ad6b4eb056b5d8424a52fc8c0e8\",\"content\":\"<symbol viewBox=\\\"0 0 32 32\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"81703ad6b4eb056b5d8424a52fc8c0e8\\\">\\n<g clip-path=\\\"url(#81703ad6b4eb056b5d8424a52fc8c0e8_clip0_428_24)\\\">\\n<path d=\\\"M30.94 15.66C29.7638 12.6176 27.722 9.98662 25.0668 8.09209C22.4116 6.19756 19.2595 5.12257 16 5C12.7405 5.12257 9.58839 6.19756 6.9332 8.09209C4.27802 9.98662 2.23616 12.6176 1.06 15.66C0.980569 15.8797 0.980569 16.1203 1.06 16.34C2.23616 19.3824 4.27802 22.0134 6.9332 23.9079C9.58839 25.8024 12.7405 26.8774 16 27C19.2595 26.8774 22.4116 25.8024 25.0668 23.9079C27.722 22.0134 29.7638 19.3824 30.94 16.34C31.0194 16.1203 31.0194 15.8797 30.94 15.66ZM16 25C10.7 25 5.1 21.07 3.07 16C5.1 10.93 10.7 7 16 7C21.3 7 26.9 10.93 28.93 16C26.9 21.07 21.3 25 16 25Z\\\" fill=\\\"currentColor\\\" />\\n<path d=\\\"M16 10C14.8133 10 13.6533 10.3519 12.6666 11.0112C11.6799 11.6705 10.9109 12.6075 10.4567 13.7039C10.0026 14.8003 9.88378 16.0067 10.1153 17.1705C10.3468 18.3344 10.9182 19.4035 11.7574 20.2426C12.5965 21.0818 13.6656 21.6532 14.8295 21.8847C15.9933 22.1162 17.1997 21.9974 18.2961 21.5433C19.3925 21.0892 20.3295 20.3201 20.9888 19.3334C21.6481 18.3467 22 17.1867 22 16C22 14.4087 21.3679 12.8826 20.2426 11.7574C19.1174 10.6321 17.5913 10 16 10ZM16 20C15.2089 20 14.4355 19.7654 13.7777 19.3259C13.1199 18.8864 12.6072 18.2616 12.3045 17.5307C12.0017 16.7998 11.9225 15.9956 12.0769 15.2196C12.2312 14.4437 12.6122 13.731 13.1716 13.1716C13.731 12.6122 14.4437 12.2312 15.2196 12.0769C15.9956 11.9225 16.7998 12.0017 17.5307 12.3045C18.2616 12.6072 18.8864 13.1199 19.3259 13.7777C19.7654 14.4355 20 15.2089 20 16C20 17.0609 19.5786 18.0783 18.8284 18.8284C18.0783 19.5786 17.0609 20 16 20Z\\\" fill=\\\"currentColor\\\" />\\n</g>\\n<defs>\\n<clipPath id=\\\"81703ad6b4eb056b5d8424a52fc8c0e8_clip0_428_24\\\">\\n<rect width=\\\"32\\\" height=\\\"32\\\" fill=\\\"white\\\" />\\n</clipPath>\\n</defs>\\n</symbol>\",\"viewBox\":\"0 0 32 32\"})\nsprite.add(symbol)\n \nexport default symbol",null,null,null,null,"/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n",null,null,null,null,null,null,"export const ALLURE_LIVE_RELOAD_HASH_STORAGE_KEY = \"__allure_report_live_reload_hash__\";\nexport const createReportDataScript = (reportFiles = []) => {\n if (reportFiles.length === 0) {\n return `\n <script async>\n window.allureReportDataReady = true;\n </script>\n `;\n }\n const reportFilesDeclaration = reportFiles.map(({ name, value }) => `d('${name}','${value}')`).join(\",\");\n return `\n <script async>\n window.allureReportDataReady = false;\n window.allureReportData = window.allureReportData || {};\n\n function d(name, value){\n return new Promise(function (resolve) {\n window.allureReportData[name] = value;\n\n return resolve(true);\n });\n }\n </script>\n <script defer>\n Promise.allSettled([${reportFilesDeclaration}])\n .then(function(){\n window.allureReportDataReady = true;\n })\n </script>\n `;\n};\nexport const ensureReportDataReady = () => new Promise((resolve) => {\n const waitForReady = () => {\n if (globalThis.allureReportDataReady) {\n return resolve(true);\n }\n setTimeout(waitForReady, 30);\n };\n waitForReady();\n});\nexport const loadReportData = async (name) => {\n await ensureReportDataReady();\n return new Promise((resolve, reject) => {\n if (globalThis.allureReportData[name]) {\n return resolve(globalThis.allureReportData[name]);\n }\n else {\n return reject(new Error(`Data \"${name}\" not found!`));\n }\n });\n};\nexport const reportDataUrl = async (path, contentType = \"application/octet-stream\") => {\n if (globalThis.allureReportData) {\n const dataKey = path.replace(/\\?attachment$/, \"\");\n const value = await loadReportData(dataKey);\n return `data:${contentType};base64,${value}`;\n }\n const baseEl = globalThis.document.head.querySelector(\"base\")?.href ?? \"https://localhost\";\n const url = new URL(path, baseEl);\n const liveReloadHash = globalThis.localStorage.getItem(ALLURE_LIVE_RELOAD_HASH_STORAGE_KEY);\n if (liveReloadHash) {\n url.searchParams.set(\"live_reload_hash\", liveReloadHash);\n }\n return url.pathname + url.search + url.hash;\n};\nexport const fetchReportJsonData = async (path) => {\n const url = await reportDataUrl(path);\n const res = await globalThis.fetch(url);\n if (!res.ok) {\n throw new Error(`Failed to fetch ${url}, response status: ${res.status}`);\n }\n const data = res.json();\n return data;\n};\nexport const fetchReportAttachment = async (path, contentType) => {\n const url = await reportDataUrl(path, contentType);\n return globalThis.fetch(url);\n};\nexport const getReportOptions = () => {\n return globalThis.allureReportOptions;\n};\n","import { fetchReportAttachment } from \"./data.js\";\nconst fetchFromUrl = async ({ id, ext, contentType }) => {\n const fileName = `${id || \"-\"}${ext || \"\"}`;\n return fetchReportAttachment(`data/attachments/${fileName}?attachment`, contentType);\n};\nexport const fetchAttachment = async (id, ext, contentType) => {\n if (!id && !ext) {\n return null;\n }\n const response = await fetchFromUrl({ id, ext, contentType });\n const fileType = attachmentType(contentType);\n switch (fileType.type) {\n case \"svg\":\n case \"image\": {\n const blob = await response.blob();\n const img = URL.createObjectURL(blob);\n return { img, id };\n }\n case \"uri\":\n case \"code\":\n case \"html\":\n case \"table\":\n case \"text\": {\n const text = await response.text();\n return { text };\n }\n case \"video\": {\n const blob = await response.blob();\n const src = URL.createObjectURL(blob);\n return { src, id, contentType };\n }\n default:\n return null;\n }\n};\nexport const blobAttachment = async (id, ext, contentType) => {\n const response = await fetchFromUrl({ id, ext, contentType });\n return await response.blob();\n};\nexport const downloadAttachment = async (id, ext, contentType) => {\n if (!id && !ext) {\n return;\n }\n const fileName = `${id}${ext}`;\n const blob = await blobAttachment(id, ext, contentType);\n const linkUrl = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = linkUrl;\n link.download = fileName;\n link.click();\n URL.revokeObjectURL(linkUrl);\n};\nexport const openAttachmentInNewTab = async (id, ext, contentType) => {\n if (!id && !ext) {\n return;\n }\n const blob = await blobAttachment(id, ext, contentType);\n const linkUrl = URL.createObjectURL(blob);\n globalThis.open(linkUrl, \"_blank\");\n};\nexport const attachmentType = (type) => {\n switch (type) {\n case \"image/bmp\":\n case \"image/gif\":\n case \"image/tiff\":\n case \"image/jpeg\":\n case \"image/jpg\":\n case \"image/png\":\n case \"image/*\":\n return {\n type: \"image\",\n icon: \"file\",\n };\n case \"text/xml\":\n case \"application/xml\":\n case \"application/json\":\n case \"text/json\":\n case \"text/yaml\":\n case \"application/yaml\":\n case \"application/x-yaml\":\n case \"text/x-yaml\":\n case \"text/css\":\n return {\n type: \"code\",\n icon: \"file\",\n };\n case \"text/plain\":\n case \"text/*\":\n return {\n type: \"text\",\n icon: \"txt\",\n };\n case \"text/html\":\n return {\n type: \"html\",\n icon: \"file\",\n };\n case \"text/csv\":\n return {\n type: \"table\",\n icon: \"csv\",\n };\n case \"text/tab-separated-values\":\n return {\n type: \"table\",\n icon: \"table\",\n };\n case \"image/svg+xml\":\n return {\n type: \"svg\",\n icon: \"file\",\n };\n case \"video/mp4\":\n case \"video/ogg\":\n case \"video/webm\":\n return {\n type: \"video\",\n icon: \"file\",\n };\n case \"text/uri-list\":\n return {\n type: \"uri\",\n icon: \"list\",\n };\n case \"application/x-tar\":\n case \"application/x-gtar\":\n case \"application/x-bzip2\":\n case \"application/gzip\":\n case \"application/zip\":\n return {\n type: \"archive\",\n icon: \"file\",\n };\n default:\n return {\n type: null,\n icon: \"file\",\n };\n }\n};\nexport const restrictedContentTypes = [\"application/gzip\"];\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&').replace(/</g, '<').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': {\n\t\tpattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n\t\tgreedy: true\n\t},\n\t'prolog': {\n\t\tpattern: /<\\?[\\s\\S]+?\\?>/,\n\t\tgreedy: true\n\t},\n\t'doctype': {\n\t\t// https://www.w3.org/TR/xml/#NT-doctypedecl\n\t\tpattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'internal-subset': {\n\t\t\t\tpattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: null // see below\n\t\t\t},\n\t\t\t'string': {\n\t\t\t\tpattern: /\"[^\"]*\"|'[^']*'/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t'punctuation': /^<!|>$|[[\\]]/,\n\t\t\t'doctype-tag': /^DOCTYPE/i,\n\t\t\t'name': /[^\\s<>'\"]+/\n\t\t}\n\t},\n\t'cdata': {\n\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\tgreedy: true\n\t},\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'special-attr': [],\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': [\n\t\t{\n\t\t\tpattern: /&[\\da-z]{1,8};/i,\n\t\t\talias: 'named-entity'\n\t\t},\n\t\t/&#x?[\\da-f]{1,8};/i\n\t]\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function (env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\n\t}\n});\n\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n\t/**\n\t * Adds an inlined language to markup.\n\t *\n\t * An example of an inlined language is CSS with `<style>` tags.\n\t *\n\t * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addInlined('style', 'css');\n\t */\n\tvalue: function addInlined(tagName, lang) {\n\t\tvar includedCdataInside = {};\n\t\tincludedCdataInside['language-' + lang] = {\n\t\t\tpattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\t\tincludedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n\n\t\tvar inside = {\n\t\t\t'included-cdata': {\n\t\t\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\t\t\tinside: includedCdataInside\n\t\t\t}\n\t\t};\n\t\tinside['language-' + lang] = {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\n\t\tvar def = {};\n\t\tdef[tagName] = {\n\t\t\tpattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () { return tagName; }), 'i'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: inside\n\t\t};\n\n\t\tPrism.languages.insertBefore('markup', 'cdata', def);\n\t}\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n\t/**\n\t * Adds an pattern to highlight languages embedded in HTML attributes.\n\t *\n\t * An example of an inlined language is CSS with `style` attributes.\n\t *\n\t * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addAttribute('style', 'css');\n\t */\n\tvalue: function (attrName, lang) {\n\t\tPrism.languages.markup.tag.inside['special-attr'].push({\n\t\t\tpattern: RegExp(\n\t\t\t\t/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n\t\t\t\t'i'\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'attr-name': /^[^\\s=]+/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /=[\\s\\S]+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'value': {\n\t\t\t\t\t\t\tpattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: [lang, 'language-' + lang],\n\t\t\t\t\t\t\tinside: Prism.languages[lang]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t/\"|'/\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n});\n\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\n(function (Prism) {\n\n\tvar string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\t\tpattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: RegExp('^' + string.source + '$'),\n\t\t\t\t\talias: 'url'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'selector': {\n\t\t\tpattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'important': /!important\\b/i,\n\t\t'function': {\n\t\t\tpattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\t\tmarkup.tag.addAttribute('style', 'css');\n\t}\n\n}(Prism));\n\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\tif (!Element.prototype.matches) {\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\t}\n\n\tvar LOADING_MESSAGE = 'Loading…';\n\tvar FAILURE_MESSAGE = function (status, message) {\n\t\treturn '✖ Error ' + status + ' while fetching file: ' + message;\n\t};\n\tvar FAILURE_EMPTY_MESSAGE = '✖ Error: File does not exist or is empty';\n\n\tvar EXTENSIONS = {\n\t\t'js': 'javascript',\n\t\t'py': 'python',\n\t\t'rb': 'ruby',\n\t\t'ps1': 'powershell',\n\t\t'psm1': 'powershell',\n\t\t'sh': 'bash',\n\t\t'bat': 'batch',\n\t\t'h': 'c',\n\t\t'tex': 'latex'\n\t};\n\n\tvar STATUS_ATTR = 'data-src-status';\n\tvar STATUS_LOADING = 'loading';\n\tvar STATUS_LOADED = 'loaded';\n\tvar STATUS_FAILED = 'failed';\n\n\tvar SELECTOR = 'pre[data-src]:not([' + STATUS_ATTR + '=\"' + STATUS_LOADED + '\"])'\n\t\t+ ':not([' + STATUS_ATTR + '=\"' + STATUS_LOADING + '\"])';\n\n\t/**\n\t * Loads the given file.\n\t *\n\t * @param {string} src The URL or path of the source file to load.\n\t * @param {(result: string) => void} success\n\t * @param {(reason: string) => void} error\n\t */\n\tfunction loadFile(src, success, error) {\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.open('GET', src, true);\n\t\txhr.onreadystatechange = function () {\n\t\t\tif (xhr.readyState == 4) {\n\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\tsuccess(xhr.responseText);\n\t\t\t\t} else {\n\t\t\t\t\tif (xhr.status >= 400) {\n\t\t\t\t\t\terror(FAILURE_MESSAGE(xhr.status, xhr.statusText));\n\t\t\t\t\t} else {\n\t\t\t\t\t\terror(FAILURE_EMPTY_MESSAGE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\txhr.send(null);\n\t}\n\n\t/**\n\t * Parses the given range.\n\t *\n\t * This returns a range with inclusive ends.\n\t *\n\t * @param {string | null | undefined} range\n\t * @returns {[number, number | undefined] | undefined}\n\t */\n\tfunction parseRange(range) {\n\t\tvar m = /^\\s*(\\d+)\\s*(?:(,)\\s*(?:(\\d+)\\s*)?)?$/.exec(range || '');\n\t\tif (m) {\n\t\t\tvar start = Number(m[1]);\n\t\t\tvar comma = m[2];\n\t\t\tvar end = m[3];\n\n\t\t\tif (!comma) {\n\t\t\t\treturn [start, start];\n\t\t\t}\n\t\t\tif (!end) {\n\t\t\t\treturn [start, undefined];\n\t\t\t}\n\t\t\treturn [start, Number(end)];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tPrism.hooks.add('before-highlightall', function (env) {\n\t\tenv.selector += ', ' + SELECTOR;\n\t});\n\n\tPrism.hooks.add('before-sanity-check', function (env) {\n\t\tvar pre = /** @type {HTMLPreElement} */ (env.element);\n\t\tif (pre.matches(SELECTOR)) {\n\t\t\tenv.code = ''; // fast-path the whole thing and go to complete\n\n\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADING); // mark as loading\n\n\t\t\t// add code element with loading message\n\t\t\tvar code = pre.appendChild(document.createElement('CODE'));\n\t\t\tcode.textContent = LOADING_MESSAGE;\n\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language = env.language;\n\t\t\tif (language === 'none') {\n\t\t\t\t// the language might be 'none' because there is no language set;\n\t\t\t\t// in this case, we want to use the extension as the language\n\t\t\t\tvar extension = (/\\.(\\w+)$/.exec(src) || [, 'none'])[1];\n\t\t\t\tlanguage = EXTENSIONS[extension] || extension;\n\t\t\t}\n\n\t\t\t// set language classes\n\t\t\tPrism.util.setLanguage(code, language);\n\t\t\tPrism.util.setLanguage(pre, language);\n\n\t\t\t// preload the language\n\t\t\tvar autoloader = Prism.plugins.autoloader;\n\t\t\tif (autoloader) {\n\t\t\t\tautoloader.loadLanguages(language);\n\t\t\t}\n\n\t\t\t// load file\n\t\t\tloadFile(\n\t\t\t\tsrc,\n\t\t\t\tfunction (text) {\n\t\t\t\t\t// mark as loaded\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADED);\n\n\t\t\t\t\t// handle data-range\n\t\t\t\t\tvar range = parseRange(pre.getAttribute('data-range'));\n\t\t\t\t\tif (range) {\n\t\t\t\t\t\tvar lines = text.split(/\\r\\n?|\\n/g);\n\n\t\t\t\t\t\t// the range is one-based and inclusive on both ends\n\t\t\t\t\t\tvar start = range[0];\n\t\t\t\t\t\tvar end = range[1] == null ? lines.length : range[1];\n\n\t\t\t\t\t\tif (start < 0) { start += lines.length; }\n\t\t\t\t\t\tstart = Math.max(0, Math.min(start - 1, lines.length));\n\t\t\t\t\t\tif (end < 0) { end += lines.length; }\n\t\t\t\t\t\tend = Math.max(0, Math.min(end, lines.length));\n\n\t\t\t\t\t\ttext = lines.slice(start, end).join('\\n');\n\n\t\t\t\t\t\t// add data-start for line numbers\n\t\t\t\t\t\tif (!pre.hasAttribute('data-start')) {\n\t\t\t\t\t\t\tpre.setAttribute('data-start', String(start + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// highlight code\n\t\t\t\t\tcode.textContent = text;\n\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t},\n\t\t\t\tfunction (error) {\n\t\t\t\t\t// mark as failed\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_FAILED);\n\n\t\t\t\t\tcode.textContent = error;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\n\tPrism.plugins.fileHighlight = {\n\t\t/**\n\t\t * Executes the File Highlight plugin for all matching `pre` elements under the given container.\n\t\t *\n\t\t * Note: Elements which are already loaded or currently loading will not be touched by this method.\n\t\t *\n\t\t * @param {ParentNode} [container=document]\n\t\t */\n\t\thighlight: function highlight(container) {\n\t\t\tvar elements = (container || document).querySelectorAll(SELECTOR);\n\n\t\t\tfor (var i = 0, element; (element = elements[i++]);) {\n\t\t\t\tPrism.highlightElement(element);\n\t\t\t}\n\t\t}\n\t};\n\n\tvar logged = false;\n\t/** @deprecated Use `Prism.plugins.fileHighlight.highlight` instead. */\n\tPrism.fileHighlight = function () {\n\t\tif (!logged) {\n\t\t\tconsole.warn('Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.');\n\t\t\tlogged = true;\n\t\t}\n\t\tPrism.plugins.fileHighlight.highlight.apply(this, arguments);\n\t};\n\n}());\n",null,null,null,null,null,null,null,null,null,null,"export const statusesList = [\"failed\", \"broken\", \"passed\", \"skipped\", \"unknown\"];\nexport const unsuccessfulStatuses = new Set([\"failed\", \"broken\"]);\nexport const successfulStatuses = new Set([\"passed\"]);\nexport const includedInSuccessRate = new Set([...unsuccessfulStatuses, ...successfulStatuses]);\nexport const filterByStatus = (statuses) => {\n const set = new Set(statuses);\n return (t) => set.has(t.status);\n};\nexport const filterSuccessful = filterByStatus(successfulStatuses);\nexport const filterUnsuccessful = filterByStatus(unsuccessfulStatuses);\nexport const filterIncludedInSuccessRate = filterByStatus(includedInSuccessRate);\nexport const emptyStatistic = () => ({ total: 0 });\nexport const incrementStatistic = (statistic, status, count = 1) => {\n statistic[status] = (statistic[status] ?? 0) + count;\n statistic.total += count;\n};\nexport const mergeStatistic = (statistic, additional) => {\n statusesList.forEach((status) => {\n if (additional[status]) {\n incrementStatistic(statistic, status, additional[status]);\n }\n });\n};\n","const times = [\n {\n suffix: \"d\",\n accessor: (duration) => Math.floor(duration / (24 * 3600 * 1000)),\n },\n {\n suffix: \"h\",\n accessor: (duration) => Math.floor(duration / (3600 * 1000)) % 24,\n },\n {\n suffix: \"m\",\n accessor: (duration) => Math.floor(duration / (60 * 1000)) % 60,\n },\n {\n suffix: \"s\",\n accessor: (duration) => Math.floor(duration / 1000) % 60,\n },\n {\n suffix: \"ms\",\n accessor: (duration) => Math.round(duration) % 1000,\n },\n];\nexport const formatDuration = (duration) => {\n if (duration === undefined) {\n return \"unknown\";\n }\n if (duration < 0.5) {\n return \"0s\";\n }\n const res = [];\n for (const { accessor, suffix } of times) {\n const value = accessor(duration);\n if (res.length === 0 && !value) {\n continue;\n }\n res.push(value + suffix);\n if (res.length > 1) {\n break;\n }\n }\n return res.join(\" \");\n};\n",null,null,null,null,null,null,null,null,null,null,"'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","/** @license React v16.13.1\n * react-is.development.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';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\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 printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\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 ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\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 } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\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 = 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\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","// src/index.ts\nvar updateQueue = makeQueue();\nvar raf = (fn) => schedule(fn, updateQueue);\nvar writeQueue = makeQueue();\nraf.write = (fn) => schedule(fn, writeQueue);\nvar onStartQueue = makeQueue();\nraf.onStart = (fn) => schedule(fn, onStartQueue);\nvar onFrameQueue = makeQueue();\nraf.onFrame = (fn) => schedule(fn, onFrameQueue);\nvar onFinishQueue = makeQueue();\nraf.onFinish = (fn) => schedule(fn, onFinishQueue);\nvar timeouts = [];\nraf.setTimeout = (handler, ms) => {\n const time = raf.now() + ms;\n const cancel = () => {\n const i = timeouts.findIndex((t) => t.cancel == cancel);\n if (~i)\n timeouts.splice(i, 1);\n pendingCount -= ~i ? 1 : 0;\n };\n const timeout = { time, handler, cancel };\n timeouts.splice(findTimeout(time), 0, timeout);\n pendingCount += 1;\n start();\n return timeout;\n};\nvar findTimeout = (time) => ~(~timeouts.findIndex((t) => t.time > time) || ~timeouts.length);\nraf.cancel = (fn) => {\n onStartQueue.delete(fn);\n onFrameQueue.delete(fn);\n onFinishQueue.delete(fn);\n updateQueue.delete(fn);\n writeQueue.delete(fn);\n};\nraf.sync = (fn) => {\n sync = true;\n raf.batchedUpdates(fn);\n sync = false;\n};\nraf.throttle = (fn) => {\n let lastArgs;\n function queuedFn() {\n try {\n fn(...lastArgs);\n } finally {\n lastArgs = null;\n }\n }\n function throttled(...args) {\n lastArgs = args;\n raf.onStart(queuedFn);\n }\n throttled.handler = fn;\n throttled.cancel = () => {\n onStartQueue.delete(queuedFn);\n lastArgs = null;\n };\n return throttled;\n};\nvar nativeRaf = typeof window != \"undefined\" ? window.requestAnimationFrame : (\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {\n }\n);\nraf.use = (impl) => nativeRaf = impl;\nraf.now = typeof performance != \"undefined\" ? () => performance.now() : Date.now;\nraf.batchedUpdates = (fn) => fn();\nraf.catch = console.error;\nraf.frameLoop = \"always\";\nraf.advance = () => {\n if (raf.frameLoop !== \"demand\") {\n console.warn(\n \"Cannot call the manual advancement of rafz whilst frameLoop is not set as demand\"\n );\n } else {\n update();\n }\n};\nvar ts = -1;\nvar pendingCount = 0;\nvar sync = false;\nfunction schedule(fn, queue) {\n if (sync) {\n queue.delete(fn);\n fn(0);\n } else {\n queue.add(fn);\n start();\n }\n}\nfunction start() {\n if (ts < 0) {\n ts = 0;\n if (raf.frameLoop !== \"demand\") {\n nativeRaf(loop);\n }\n }\n}\nfunction stop() {\n ts = -1;\n}\nfunction loop() {\n if (~ts) {\n nativeRaf(loop);\n raf.batchedUpdates(update);\n }\n}\nfunction update() {\n const prevTs = ts;\n ts = raf.now();\n const count = findTimeout(ts);\n if (count) {\n eachSafely(timeouts.splice(0, count), (t) => t.handler());\n pendingCount -= count;\n }\n if (!pendingCount) {\n stop();\n return;\n }\n onStartQueue.flush();\n updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667);\n onFrameQueue.flush();\n writeQueue.flush();\n onFinishQueue.flush();\n}\nfunction makeQueue() {\n let next = /* @__PURE__ */ new Set();\n let current = next;\n return {\n add(fn) {\n pendingCount += current == next && !next.has(fn) ? 1 : 0;\n next.add(fn);\n },\n delete(fn) {\n pendingCount -= current == next && next.has(fn) ? 1 : 0;\n return next.delete(fn);\n },\n flush(arg) {\n if (current.size) {\n next = /* @__PURE__ */ new Set();\n pendingCount -= current.size;\n eachSafely(current, (fn) => fn(arg) && next.add(fn));\n pendingCount += next.size;\n current = next;\n }\n }\n };\n}\nfunction eachSafely(values, each) {\n values.forEach((value) => {\n try {\n each(value);\n } catch (e) {\n raf.catch(e);\n }\n });\n}\nvar __raf = {\n /** The number of pending tasks */\n count() {\n return pendingCount;\n },\n /** Whether there's a raf update loop running */\n isRunning() {\n return ts >= 0;\n },\n /** Clear internal state. Never call from update loop! */\n clear() {\n ts = -1;\n timeouts = [];\n onStartQueue = makeQueue();\n updateQueue = makeQueue();\n onFrameQueue = makeQueue();\n writeQueue = makeQueue();\n onFinishQueue = makeQueue();\n pendingCount = 0;\n }\n};\nexport {\n __raf,\n raf\n};\n//# sourceMappingURL=react-spring_rafz.modern.mjs.map","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/globals.ts\nvar globals_exports = {};\n__export(globals_exports, {\n assign: () => assign,\n colors: () => colors,\n createStringInterpolator: () => createStringInterpolator,\n skipAnimation: () => skipAnimation,\n to: () => to,\n willAdvance: () => willAdvance\n});\nimport { raf } from \"@react-spring/rafz\";\n\n// src/helpers.ts\nfunction noop() {\n}\nvar defineHidden = (obj, key, value) => Object.defineProperty(obj, key, { value, writable: true, configurable: true });\nvar is = {\n arr: Array.isArray,\n obj: (a) => !!a && a.constructor.name === \"Object\",\n fun: (a) => typeof a === \"function\",\n str: (a) => typeof a === \"string\",\n num: (a) => typeof a === \"number\",\n und: (a) => a === void 0\n};\nfunction isEqual(a, b) {\n if (is.arr(a)) {\n if (!is.arr(b) || a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n }\n return a === b;\n}\nvar each = (obj, fn) => obj.forEach(fn);\nfunction eachProp(obj, fn, ctx) {\n if (is.arr(obj)) {\n for (let i = 0; i < obj.length; i++) {\n fn.call(ctx, obj[i], `${i}`);\n }\n return;\n }\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(ctx, obj[key], key);\n }\n }\n}\nvar toArray = (a) => is.und(a) ? [] : is.arr(a) ? a : [a];\nfunction flush(queue, iterator) {\n if (queue.size) {\n const items = Array.from(queue);\n queue.clear();\n each(items, iterator);\n }\n}\nvar flushCalls = (queue, ...args) => flush(queue, (fn) => fn(...args));\nvar isSSR = () => typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\n\n// src/globals.ts\nvar createStringInterpolator;\nvar to;\nvar colors = null;\nvar skipAnimation = false;\nvar willAdvance = noop;\nvar assign = (globals) => {\n if (globals.to)\n to = globals.to;\n if (globals.now)\n raf.now = globals.now;\n if (globals.colors !== void 0)\n colors = globals.colors;\n if (globals.skipAnimation != null)\n skipAnimation = globals.skipAnimation;\n if (globals.createStringInterpolator)\n createStringInterpolator = globals.createStringInterpolator;\n if (globals.requestAnimationFrame)\n raf.use(globals.requestAnimationFrame);\n if (globals.batchedUpdates)\n raf.batchedUpdates = globals.batchedUpdates;\n if (globals.willAdvance)\n willAdvance = globals.willAdvance;\n if (globals.frameLoop)\n raf.frameLoop = globals.frameLoop;\n};\n\n// src/FrameLoop.ts\nimport { raf as raf2 } from \"@react-spring/rafz\";\nvar startQueue = /* @__PURE__ */ new Set();\nvar currentFrame = [];\nvar prevFrame = [];\nvar priority = 0;\nvar frameLoop = {\n get idle() {\n return !startQueue.size && !currentFrame.length;\n },\n /** Advance the given animation on every frame until idle. */\n start(animation) {\n if (priority > animation.priority) {\n startQueue.add(animation);\n raf2.onStart(flushStartQueue);\n } else {\n startSafely(animation);\n raf2(advance);\n }\n },\n /** Advance all animations by the given time. */\n advance,\n /** Call this when an animation's priority changes. */\n sort(animation) {\n if (priority) {\n raf2.onFrame(() => frameLoop.sort(animation));\n } else {\n const prevIndex = currentFrame.indexOf(animation);\n if (~prevIndex) {\n currentFrame.splice(prevIndex, 1);\n startUnsafely(animation);\n }\n }\n },\n /**\n * Clear all animations. For testing purposes.\n *\n * ☠️ Never call this from within the frameloop.\n */\n clear() {\n currentFrame = [];\n startQueue.clear();\n }\n};\nfunction flushStartQueue() {\n startQueue.forEach(startSafely);\n startQueue.clear();\n raf2(advance);\n}\nfunction startSafely(animation) {\n if (!currentFrame.includes(animation))\n startUnsafely(animation);\n}\nfunction startUnsafely(animation) {\n currentFrame.splice(\n findIndex(currentFrame, (other) => other.priority > animation.priority),\n 0,\n animation\n );\n}\nfunction advance(dt) {\n const nextFrame = prevFrame;\n for (let i = 0; i < currentFrame.length; i++) {\n const animation = currentFrame[i];\n priority = animation.priority;\n if (!animation.idle) {\n willAdvance(animation);\n animation.advance(dt);\n if (!animation.idle) {\n nextFrame.push(animation);\n }\n }\n }\n priority = 0;\n prevFrame = currentFrame;\n prevFrame.length = 0;\n currentFrame = nextFrame;\n return currentFrame.length > 0;\n}\nfunction findIndex(arr, test) {\n const index = arr.findIndex(test);\n return index < 0 ? arr.length : index;\n}\n\n// src/clamp.ts\nvar clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\n// src/colors.ts\nvar colors2 = {\n transparent: 0,\n aliceblue: 4042850303,\n antiquewhite: 4209760255,\n aqua: 16777215,\n aquamarine: 2147472639,\n azure: 4043309055,\n beige: 4126530815,\n bisque: 4293182719,\n black: 255,\n blanchedalmond: 4293643775,\n blue: 65535,\n blueviolet: 2318131967,\n brown: 2771004159,\n burlywood: 3736635391,\n burntsienna: 3934150143,\n cadetblue: 1604231423,\n chartreuse: 2147418367,\n chocolate: 3530104575,\n coral: 4286533887,\n cornflowerblue: 1687547391,\n cornsilk: 4294499583,\n crimson: 3692313855,\n cyan: 16777215,\n darkblue: 35839,\n darkcyan: 9145343,\n darkgoldenrod: 3095792639,\n darkgray: 2846468607,\n darkgreen: 6553855,\n darkgrey: 2846468607,\n darkkhaki: 3182914559,\n darkmagenta: 2332068863,\n darkolivegreen: 1433087999,\n darkorange: 4287365375,\n darkorchid: 2570243327,\n darkred: 2332033279,\n darksalmon: 3918953215,\n darkseagreen: 2411499519,\n darkslateblue: 1211993087,\n darkslategray: 793726975,\n darkslategrey: 793726975,\n darkturquoise: 13554175,\n darkviolet: 2483082239,\n deeppink: 4279538687,\n deepskyblue: 12582911,\n dimgray: 1768516095,\n dimgrey: 1768516095,\n dodgerblue: 512819199,\n firebrick: 2988581631,\n floralwhite: 4294635775,\n forestgreen: 579543807,\n fuchsia: 4278255615,\n gainsboro: 3705462015,\n ghostwhite: 4177068031,\n gold: 4292280575,\n goldenrod: 3668254975,\n gray: 2155905279,\n green: 8388863,\n greenyellow: 2919182335,\n grey: 2155905279,\n honeydew: 4043305215,\n hotpink: 4285117695,\n indianred: 3445382399,\n indigo: 1258324735,\n ivory: 4294963455,\n khaki: 4041641215,\n lavender: 3873897215,\n lavenderblush: 4293981695,\n lawngreen: 2096890111,\n lemonchiffon: 4294626815,\n lightblue: 2916673279,\n lightcoral: 4034953471,\n lightcyan: 3774873599,\n lightgoldenrodyellow: 4210742015,\n lightgray: 3553874943,\n lightgreen: 2431553791,\n lightgrey: 3553874943,\n lightpink: 4290167295,\n lightsalmon: 4288707327,\n lightseagreen: 548580095,\n lightskyblue: 2278488831,\n lightslategray: 2005441023,\n lightslategrey: 2005441023,\n lightsteelblue: 2965692159,\n lightyellow: 4294959359,\n lime: 16711935,\n limegreen: 852308735,\n linen: 4210091775,\n magenta: 4278255615,\n maroon: 2147483903,\n mediumaquamarine: 1724754687,\n mediumblue: 52735,\n mediumorchid: 3126187007,\n mediumpurple: 2473647103,\n mediumseagreen: 1018393087,\n mediumslateblue: 2070474495,\n mediumspringgreen: 16423679,\n mediumturquoise: 1221709055,\n mediumvioletred: 3340076543,\n midnightblue: 421097727,\n mintcream: 4127193855,\n mistyrose: 4293190143,\n moccasin: 4293178879,\n navajowhite: 4292783615,\n navy: 33023,\n oldlace: 4260751103,\n olive: 2155872511,\n olivedrab: 1804477439,\n orange: 4289003775,\n orangered: 4282712319,\n orchid: 3664828159,\n palegoldenrod: 4008225535,\n palegreen: 2566625535,\n paleturquoise: 2951671551,\n palevioletred: 3681588223,\n papayawhip: 4293907967,\n peachpuff: 4292524543,\n peru: 3448061951,\n pink: 4290825215,\n plum: 3718307327,\n powderblue: 2967529215,\n purple: 2147516671,\n rebeccapurple: 1714657791,\n red: 4278190335,\n rosybrown: 3163525119,\n royalblue: 1097458175,\n saddlebrown: 2336560127,\n salmon: 4202722047,\n sandybrown: 4104413439,\n seagreen: 780883967,\n seashell: 4294307583,\n sienna: 2689740287,\n silver: 3233857791,\n skyblue: 2278484991,\n slateblue: 1784335871,\n slategray: 1887473919,\n slategrey: 1887473919,\n snow: 4294638335,\n springgreen: 16744447,\n steelblue: 1182971135,\n tan: 3535047935,\n teal: 8421631,\n thistle: 3636451583,\n tomato: 4284696575,\n turquoise: 1088475391,\n violet: 4001558271,\n wheat: 4125012991,\n white: 4294967295,\n whitesmoke: 4126537215,\n yellow: 4294902015,\n yellowgreen: 2597139199\n};\n\n// src/colorMatchers.ts\nvar NUMBER = \"[-+]?\\\\d*\\\\.?\\\\d+\";\nvar PERCENTAGE = NUMBER + \"%\";\nfunction call(...parts) {\n return \"\\\\(\\\\s*(\" + parts.join(\")\\\\s*,\\\\s*(\") + \")\\\\s*\\\\)\";\n}\nvar rgb = new RegExp(\"rgb\" + call(NUMBER, NUMBER, NUMBER));\nvar rgba = new RegExp(\"rgba\" + call(NUMBER, NUMBER, NUMBER, NUMBER));\nvar hsl = new RegExp(\"hsl\" + call(NUMBER, PERCENTAGE, PERCENTAGE));\nvar hsla = new RegExp(\n \"hsla\" + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)\n);\nvar hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex6 = /^#([0-9a-fA-F]{6})$/;\nvar hex8 = /^#([0-9a-fA-F]{8})$/;\n\n// src/normalizeColor.ts\nfunction normalizeColor(color) {\n let match;\n if (typeof color === \"number\") {\n return color >>> 0 === color && color >= 0 && color <= 4294967295 ? color : null;\n }\n if (match = hex6.exec(color))\n return parseInt(match[1] + \"ff\", 16) >>> 0;\n if (colors && colors[color] !== void 0) {\n return colors[color];\n }\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 255) >>> // a\n 0;\n }\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4])) >>> // a\n 0;\n }\n if (match = hex3.exec(color)) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n \"ff\",\n // a\n 16\n ) >>> 0;\n }\n if (match = hex8.exec(color))\n return parseInt(match[1], 16) >>> 0;\n if (match = hex4.exec(color)) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4],\n // a\n 16\n ) >>> 0;\n }\n if (match = hsl.exec(color)) {\n return (hslToRgb(\n parse360(match[1]),\n // h\n parsePercentage(match[2]),\n // s\n parsePercentage(match[3])\n // l\n ) | 255) >>> // a\n 0;\n }\n if (match = hsla.exec(color)) {\n return (hslToRgb(\n parse360(match[1]),\n // h\n parsePercentage(match[2]),\n // s\n parsePercentage(match[3])\n // l\n ) | parse1(match[4])) >>> // a\n 0;\n }\n return null;\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0)\n return 0;\n if (int > 255)\n return 255;\n return int;\n}\nfunction parse360(str) {\n const int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0)\n return 0;\n if (num > 1)\n return 255;\n return Math.round(num * 255);\n}\nfunction parsePercentage(str) {\n const int = parseFloat(str);\n if (int < 0)\n return 0;\n if (int > 100)\n return 1;\n return int / 100;\n}\n\n// src/colorToRgba.ts\nfunction colorToRgba(input) {\n let int32Color = normalizeColor(input);\n if (int32Color === null)\n return input;\n int32Color = int32Color || 0;\n const r = (int32Color & 4278190080) >>> 24;\n const g = (int32Color & 16711680) >>> 16;\n const b = (int32Color & 65280) >>> 8;\n const a = (int32Color & 255) / 255;\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\n// src/createInterpolator.ts\nvar createInterpolator = (range, output, extrapolate) => {\n if (is.fun(range)) {\n return range;\n }\n if (is.arr(range)) {\n return createInterpolator({\n range,\n output,\n extrapolate\n });\n }\n if (is.str(range.output[0])) {\n return createStringInterpolator(range);\n }\n const config = range;\n const outputRange = config.output;\n const inputRange = config.range || [0, 1];\n const extrapolateLeft = config.extrapolateLeft || config.extrapolate || \"extend\";\n const extrapolateRight = config.extrapolateRight || config.extrapolate || \"extend\";\n const easing = config.easing || ((t) => t);\n return (input) => {\n const range2 = findRange(input, inputRange);\n return interpolate(\n input,\n inputRange[range2],\n inputRange[range2 + 1],\n outputRange[range2],\n outputRange[range2 + 1],\n easing,\n extrapolateLeft,\n extrapolateRight,\n config.map\n );\n };\n};\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n let result = map ? map(input) : input;\n if (result < inputMin) {\n if (extrapolateLeft === \"identity\")\n return result;\n else if (extrapolateLeft === \"clamp\")\n result = inputMin;\n }\n if (result > inputMax) {\n if (extrapolateRight === \"identity\")\n return result;\n else if (extrapolateRight === \"clamp\")\n result = inputMax;\n }\n if (outputMin === outputMax)\n return outputMin;\n if (inputMin === inputMax)\n return input <= inputMin ? outputMin : outputMax;\n if (inputMin === -Infinity)\n result = -result;\n else if (inputMax === Infinity)\n result = result - inputMin;\n else\n result = (result - inputMin) / (inputMax - inputMin);\n result = easing(result);\n if (outputMin === -Infinity)\n result = -result;\n else if (outputMax === Infinity)\n result = result + outputMin;\n else\n result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i)\n if (inputRange[i] >= input)\n break;\n return i - 1;\n}\n\n// src/easings.ts\nvar steps = (steps2, direction = \"end\") => (progress2) => {\n progress2 = direction === \"end\" ? Math.min(progress2, 0.999) : Math.max(progress2, 1e-3);\n const expanded = progress2 * steps2;\n const rounded = direction === \"end\" ? Math.floor(expanded) : Math.ceil(expanded);\n return clamp(0, 1, rounded / steps2);\n};\nvar c1 = 1.70158;\nvar c2 = c1 * 1.525;\nvar c3 = c1 + 1;\nvar c4 = 2 * Math.PI / 3;\nvar c5 = 2 * Math.PI / 4.5;\nvar bounceOut = (x) => {\n const n1 = 7.5625;\n const d1 = 2.75;\n if (x < 1 / d1) {\n return n1 * x * x;\n } else if (x < 2 / d1) {\n return n1 * (x -= 1.5 / d1) * x + 0.75;\n } else if (x < 2.5 / d1) {\n return n1 * (x -= 2.25 / d1) * x + 0.9375;\n } else {\n return n1 * (x -= 2.625 / d1) * x + 0.984375;\n }\n};\nvar easings = {\n linear: (x) => x,\n easeInQuad: (x) => x * x,\n easeOutQuad: (x) => 1 - (1 - x) * (1 - x),\n easeInOutQuad: (x) => x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2,\n easeInCubic: (x) => x * x * x,\n easeOutCubic: (x) => 1 - Math.pow(1 - x, 3),\n easeInOutCubic: (x) => x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2,\n easeInQuart: (x) => x * x * x * x,\n easeOutQuart: (x) => 1 - Math.pow(1 - x, 4),\n easeInOutQuart: (x) => x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2,\n easeInQuint: (x) => x * x * x * x * x,\n easeOutQuint: (x) => 1 - Math.pow(1 - x, 5),\n easeInOutQuint: (x) => x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2,\n easeInSine: (x) => 1 - Math.cos(x * Math.PI / 2),\n easeOutSine: (x) => Math.sin(x * Math.PI / 2),\n easeInOutSine: (x) => -(Math.cos(Math.PI * x) - 1) / 2,\n easeInExpo: (x) => x === 0 ? 0 : Math.pow(2, 10 * x - 10),\n easeOutExpo: (x) => x === 1 ? 1 : 1 - Math.pow(2, -10 * x),\n easeInOutExpo: (x) => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2,\n easeInCirc: (x) => 1 - Math.sqrt(1 - Math.pow(x, 2)),\n easeOutCirc: (x) => Math.sqrt(1 - Math.pow(x - 1, 2)),\n easeInOutCirc: (x) => x < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2,\n easeInBack: (x) => c3 * x * x * x - c1 * x * x,\n easeOutBack: (x) => 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2),\n easeInOutBack: (x) => x < 0.5 ? Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2,\n easeInElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4),\n easeOutElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1,\n easeInOutElastic: (x) => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5) / 2 + 1,\n easeInBounce: (x) => 1 - bounceOut(1 - x),\n easeOutBounce: bounceOut,\n easeInOutBounce: (x) => x < 0.5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2,\n steps\n};\n\n// src/fluids.ts\nvar $get = Symbol.for(\"FluidValue.get\");\nvar $observers = Symbol.for(\"FluidValue.observers\");\nvar hasFluidValue = (arg) => Boolean(arg && arg[$get]);\nvar getFluidValue = (arg) => arg && arg[$get] ? arg[$get]() : arg;\nvar getFluidObservers = (target) => target[$observers] || null;\nfunction callFluidObserver(observer2, event) {\n if (observer2.eventObserved) {\n observer2.eventObserved(event);\n } else {\n observer2(event);\n }\n}\nfunction callFluidObservers(target, event) {\n const observers = target[$observers];\n if (observers) {\n observers.forEach((observer2) => {\n callFluidObserver(observer2, event);\n });\n }\n}\nvar FluidValue = class {\n constructor(get) {\n if (!get && !(get = this.get)) {\n throw Error(\"Unknown getter\");\n }\n setFluidGetter(this, get);\n }\n};\n$get, $observers;\nvar setFluidGetter = (target, get) => setHidden(target, $get, get);\nfunction addFluidObserver(target, observer2) {\n if (target[$get]) {\n let observers = target[$observers];\n if (!observers) {\n setHidden(target, $observers, observers = /* @__PURE__ */ new Set());\n }\n if (!observers.has(observer2)) {\n observers.add(observer2);\n if (target.observerAdded) {\n target.observerAdded(observers.size, observer2);\n }\n }\n }\n return observer2;\n}\nfunction removeFluidObserver(target, observer2) {\n const observers = target[$observers];\n if (observers && observers.has(observer2)) {\n const count = observers.size - 1;\n if (count) {\n observers.delete(observer2);\n } else {\n target[$observers] = null;\n }\n if (target.observerRemoved) {\n target.observerRemoved(count, observer2);\n }\n }\n}\nvar setHidden = (target, key, value) => Object.defineProperty(target, key, {\n value,\n writable: true,\n configurable: true\n});\n\n// src/regexs.ts\nvar numberRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\nvar colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi;\nvar unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, \"i\");\nvar rgbaRegex = /rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi;\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\n\n// src/variableToRgba.ts\nvar variableToRgba = (input) => {\n const [token, fallback] = parseCSSVariable(input);\n if (!token || isSSR()) {\n return input;\n }\n const value = window.getComputedStyle(document.documentElement).getPropertyValue(token);\n if (value) {\n return value.trim();\n } else if (fallback && fallback.startsWith(\"--\")) {\n const value2 = window.getComputedStyle(document.documentElement).getPropertyValue(fallback);\n if (value2) {\n return value2;\n } else {\n return input;\n }\n } else if (fallback && cssVariableRegex.test(fallback)) {\n return variableToRgba(fallback);\n } else if (fallback) {\n return fallback;\n }\n return input;\n};\nvar parseCSSVariable = (current) => {\n const match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token, fallback] = match;\n return [token, fallback];\n};\n\n// src/stringInterpolation.ts\nvar namedColorRegex;\nvar rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`;\nvar createStringInterpolator2 = (config) => {\n if (!namedColorRegex)\n namedColorRegex = colors ? (\n // match color names, ignore partial matches\n new RegExp(`(${Object.keys(colors).join(\"|\")})(?!\\\\w)`, \"g\")\n ) : (\n // never match\n /^\\b$/\n );\n const output = config.output.map((value) => {\n return getFluidValue(value).replace(cssVariableRegex, variableToRgba).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba);\n });\n const keyframes = output.map((value) => value.match(numberRegex).map(Number));\n const outputRanges = keyframes[0].map(\n (_, i) => keyframes.map((values) => {\n if (!(i in values)) {\n throw Error('The arity of each \"output\" value must be equal');\n }\n return values[i];\n })\n );\n const interpolators = outputRanges.map(\n (output2) => createInterpolator({ ...config, output: output2 })\n );\n return (input) => {\n const missingUnit = !unitRegex.test(output[0]) && output.find((value) => unitRegex.test(value))?.replace(numberRegex, \"\");\n let i = 0;\n return output[0].replace(\n numberRegex,\n () => `${interpolators[i++](input)}${missingUnit || \"\"}`\n ).replace(rgbaRegex, rgbaRound);\n };\n};\n\n// src/deprecations.ts\nvar prefix = \"react-spring: \";\nvar once = (fn) => {\n const func = fn;\n let called = false;\n if (typeof func != \"function\") {\n throw new TypeError(`${prefix}once requires a function parameter`);\n }\n return (...args) => {\n if (!called) {\n func(...args);\n called = true;\n }\n };\n};\nvar warnInterpolate = once(console.warn);\nfunction deprecateInterpolate() {\n warnInterpolate(\n `${prefix}The \"interpolate\" function is deprecated in v9 (use \"to\" instead)`\n );\n}\nvar warnDirectCall = once(console.warn);\nfunction deprecateDirectCall() {\n warnDirectCall(\n `${prefix}Directly calling start instead of using the api object is deprecated in v9 (use \".start\" instead), this will be removed in later 0.X.0 versions`\n );\n}\n\n// src/isAnimatedString.ts\nfunction isAnimatedString(value) {\n return is.str(value) && (value[0] == \"#\" || /\\d/.test(value) || // Do not identify a CSS variable as an AnimatedString if its SSR\n !isSSR() && cssVariableRegex.test(value) || value in (colors || {}));\n}\n\n// src/dom-events/scroll/index.ts\nimport { raf as raf3 } from \"@react-spring/rafz\";\n\n// src/dom-events/resize/resizeElement.ts\nvar observer;\nvar resizeHandlers = /* @__PURE__ */ new WeakMap();\nvar handleObservation = (entries) => entries.forEach(({ target, contentRect }) => {\n return resizeHandlers.get(target)?.forEach((handler) => handler(contentRect));\n});\nfunction resizeElement(handler, target) {\n if (!observer) {\n if (typeof ResizeObserver !== \"undefined\") {\n observer = new ResizeObserver(handleObservation);\n }\n }\n let elementHandlers = resizeHandlers.get(target);\n if (!elementHandlers) {\n elementHandlers = /* @__PURE__ */ new Set();\n resizeHandlers.set(target, elementHandlers);\n }\n elementHandlers.add(handler);\n if (observer) {\n observer.observe(target);\n }\n return () => {\n const elementHandlers2 = resizeHandlers.get(target);\n if (!elementHandlers2)\n return;\n elementHandlers2.delete(handler);\n if (!elementHandlers2.size && observer) {\n observer.unobserve(target);\n }\n };\n}\n\n// src/dom-events/resize/resizeWindow.ts\nvar listeners = /* @__PURE__ */ new Set();\nvar cleanupWindowResizeHandler;\nvar createResizeHandler = () => {\n const handleResize = () => {\n listeners.forEach(\n (callback) => callback({\n width: window.innerWidth,\n height: window.innerHeight\n })\n );\n };\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n};\nvar resizeWindow = (callback) => {\n listeners.add(callback);\n if (!cleanupWindowResizeHandler) {\n cleanupWindowResizeHandler = createResizeHandler();\n }\n return () => {\n listeners.delete(callback);\n if (!listeners.size && cleanupWindowResizeHandler) {\n cleanupWindowResizeHandler();\n cleanupWindowResizeHandler = void 0;\n }\n };\n};\n\n// src/dom-events/resize/index.ts\nvar onResize = (callback, { container = document.documentElement } = {}) => {\n if (container === document.documentElement) {\n return resizeWindow(callback);\n } else {\n return resizeElement(callback, container);\n }\n};\n\n// src/progress.ts\nvar progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min);\n\n// src/dom-events/scroll/ScrollHandler.ts\nvar SCROLL_KEYS = {\n x: {\n length: \"Width\",\n position: \"Left\"\n },\n y: {\n length: \"Height\",\n position: \"Top\"\n }\n};\nvar ScrollHandler = class {\n constructor(callback, container) {\n this.createAxis = () => ({\n current: 0,\n progress: 0,\n scrollLength: 0\n });\n this.updateAxis = (axisName) => {\n const axis = this.info[axisName];\n const { length, position } = SCROLL_KEYS[axisName];\n axis.current = this.container[`scroll${position}`];\n axis.scrollLength = this.container[`scroll${length}`] - this.container[`client${length}`];\n axis.progress = progress(0, axis.scrollLength, axis.current);\n };\n this.update = () => {\n this.updateAxis(\"x\");\n this.updateAxis(\"y\");\n };\n this.sendEvent = () => {\n this.callback(this.info);\n };\n this.advance = () => {\n this.update();\n this.sendEvent();\n };\n this.callback = callback;\n this.container = container;\n this.info = {\n time: 0,\n x: this.createAxis(),\n y: this.createAxis()\n };\n }\n};\n\n// src/dom-events/scroll/index.ts\nvar scrollListeners = /* @__PURE__ */ new WeakMap();\nvar resizeListeners = /* @__PURE__ */ new WeakMap();\nvar onScrollHandlers = /* @__PURE__ */ new WeakMap();\nvar getTarget = (container) => container === document.documentElement ? window : container;\nvar onScroll = (callback, { container = document.documentElement } = {}) => {\n let containerHandlers = onScrollHandlers.get(container);\n if (!containerHandlers) {\n containerHandlers = /* @__PURE__ */ new Set();\n onScrollHandlers.set(container, containerHandlers);\n }\n const containerHandler = new ScrollHandler(callback, container);\n containerHandlers.add(containerHandler);\n if (!scrollListeners.has(container)) {\n const listener = () => {\n containerHandlers?.forEach((handler) => handler.advance());\n return true;\n };\n scrollListeners.set(container, listener);\n const target = getTarget(container);\n window.addEventListener(\"resize\", listener, { passive: true });\n if (container !== document.documentElement) {\n resizeListeners.set(container, onResize(listener, { container }));\n }\n target.addEventListener(\"scroll\", listener, { passive: true });\n }\n const animateScroll = scrollListeners.get(container);\n raf3(animateScroll);\n return () => {\n raf3.cancel(animateScroll);\n const containerHandlers2 = onScrollHandlers.get(container);\n if (!containerHandlers2)\n return;\n containerHandlers2.delete(containerHandler);\n if (containerHandlers2.size)\n return;\n const listener = scrollListeners.get(container);\n scrollListeners.delete(container);\n if (listener) {\n getTarget(container).removeEventListener(\"scroll\", listener);\n window.removeEventListener(\"resize\", listener);\n resizeListeners.get(container)?.();\n }\n };\n};\n\n// src/hooks/useConstant.ts\nimport { useRef } from \"react\";\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\n// src/hooks/useForceUpdate.ts\nimport { useState } from \"react\";\n\n// src/hooks/useIsMounted.ts\nimport { useRef as useRef2 } from \"react\";\n\n// src/hooks/useIsomorphicLayoutEffect.ts\nimport { useEffect, useLayoutEffect } from \"react\";\nvar useIsomorphicLayoutEffect = isSSR() ? useEffect : useLayoutEffect;\n\n// src/hooks/useIsMounted.ts\nvar useIsMounted = () => {\n const isMounted = useRef2(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n};\n\n// src/hooks/useForceUpdate.ts\nfunction useForceUpdate() {\n const update = useState()[1];\n const isMounted = useIsMounted();\n return () => {\n if (isMounted.current) {\n update(Math.random());\n }\n };\n}\n\n// src/hooks/useMemoOne.ts\nimport { useEffect as useEffect2, useRef as useRef3, useState as useState2 } from \"react\";\nfunction useMemoOne(getResult, inputs) {\n const [initial] = useState2(\n () => ({\n inputs,\n result: getResult()\n })\n );\n const committed = useRef3();\n const prevCache = committed.current;\n let cache = prevCache;\n if (cache) {\n const useCache = Boolean(\n inputs && cache.inputs && areInputsEqual(inputs, cache.inputs)\n );\n if (!useCache) {\n cache = {\n inputs,\n result: getResult()\n };\n }\n } else {\n cache = initial;\n }\n useEffect2(() => {\n committed.current = cache;\n if (prevCache == initial) {\n initial.inputs = initial.result = void 0;\n }\n }, [cache]);\n return cache.result;\n}\nfunction areInputsEqual(next, prev) {\n if (next.length !== prev.length) {\n return false;\n }\n for (let i = 0; i < next.length; i++) {\n if (next[i] !== prev[i]) {\n return false;\n }\n }\n return true;\n}\n\n// src/hooks/useOnce.ts\nimport { useEffect as useEffect3 } from \"react\";\nvar useOnce = (effect) => useEffect3(effect, emptyDeps);\nvar emptyDeps = [];\n\n// src/hooks/usePrev.ts\nimport { useEffect as useEffect4, useRef as useRef4 } from \"react\";\nfunction usePrev(value) {\n const prevRef = useRef4();\n useEffect4(() => {\n prevRef.current = value;\n });\n return prevRef.current;\n}\n\n// src/hooks/useReducedMotion.ts\nimport { useState as useState3 } from \"react\";\nvar useReducedMotion = () => {\n const [reducedMotion, setReducedMotion] = useState3(null);\n useIsomorphicLayoutEffect(() => {\n const mql = window.matchMedia(\"(prefers-reduced-motion)\");\n const handleMediaChange = (e) => {\n setReducedMotion(e.matches);\n assign({\n skipAnimation: e.matches\n });\n };\n handleMediaChange(mql);\n if (mql.addEventListener) {\n mql.addEventListener(\"change\", handleMediaChange);\n } else {\n mql.addListener(handleMediaChange);\n }\n return () => {\n if (mql.removeEventListener) {\n mql.removeEventListener(\"change\", handleMediaChange);\n } else {\n mql.removeListener(handleMediaChange);\n }\n };\n }, []);\n return reducedMotion;\n};\n\n// src/index.ts\nimport { raf as raf4 } from \"@react-spring/rafz\";\nexport {\n FluidValue,\n globals_exports as Globals,\n addFluidObserver,\n callFluidObserver,\n callFluidObservers,\n clamp,\n colorToRgba,\n colors2 as colors,\n createInterpolator,\n createStringInterpolator2 as createStringInterpolator,\n defineHidden,\n deprecateDirectCall,\n deprecateInterpolate,\n each,\n eachProp,\n easings,\n flush,\n flushCalls,\n frameLoop,\n getFluidObservers,\n getFluidValue,\n hasFluidValue,\n hex3,\n hex4,\n hex6,\n hex8,\n hsl,\n hsla,\n is,\n isAnimatedString,\n isEqual,\n isSSR,\n noop,\n onResize,\n onScroll,\n once,\n prefix,\n raf4 as raf,\n removeFluidObserver,\n rgb,\n rgba,\n setFluidGetter,\n toArray,\n useConstant,\n useForceUpdate,\n useIsomorphicLayoutEffect,\n useMemoOne,\n useOnce,\n usePrev,\n useReducedMotion\n};\n//# sourceMappingURL=react-spring_shared.modern.mjs.map","// src/Animated.ts\nimport { defineHidden } from \"@react-spring/shared\";\nvar $node = Symbol.for(\"Animated:node\");\nvar isAnimated = (value) => !!value && value[$node] === value;\nvar getAnimated = (owner) => owner && owner[$node];\nvar setAnimated = (owner, node) => defineHidden(owner, $node, node);\nvar getPayload = (owner) => owner && owner[$node] && owner[$node].getPayload();\nvar Animated = class {\n constructor() {\n setAnimated(this, this);\n }\n /** Get every `AnimatedValue` used by this node. */\n getPayload() {\n return this.payload || [];\n }\n};\n\n// src/AnimatedValue.ts\nimport { is } from \"@react-spring/shared\";\nvar AnimatedValue = class extends Animated {\n constructor(_value) {\n super();\n this._value = _value;\n this.done = true;\n this.durationProgress = 0;\n if (is.num(this._value)) {\n this.lastPosition = this._value;\n }\n }\n /** @internal */\n static create(value) {\n return new AnimatedValue(value);\n }\n getPayload() {\n return [this];\n }\n getValue() {\n return this._value;\n }\n setValue(value, step) {\n if (is.num(value)) {\n this.lastPosition = value;\n if (step) {\n value = Math.round(value / step) * step;\n if (this.done) {\n this.lastPosition = value;\n }\n }\n }\n if (this._value === value) {\n return false;\n }\n this._value = value;\n return true;\n }\n reset() {\n const { done } = this;\n this.done = false;\n if (is.num(this._value)) {\n this.elapsedTime = 0;\n this.durationProgress = 0;\n this.lastPosition = this._value;\n if (done)\n this.lastVelocity = null;\n this.v0 = null;\n }\n }\n};\n\n// src/AnimatedString.ts\nimport { is as is2, createInterpolator } from \"@react-spring/shared\";\nvar AnimatedString = class extends AnimatedValue {\n constructor(value) {\n super(0);\n this._string = null;\n this._toString = createInterpolator({\n output: [value, value]\n });\n }\n /** @internal */\n static create(value) {\n return new AnimatedString(value);\n }\n getValue() {\n const value = this._string;\n return value == null ? this._string = this._toString(this._value) : value;\n }\n setValue(value) {\n if (is2.str(value)) {\n if (value == this._string) {\n return false;\n }\n this._string = value;\n this._value = 1;\n } else if (super.setValue(value)) {\n this._string = null;\n } else {\n return false;\n }\n return true;\n }\n reset(goal) {\n if (goal) {\n this._toString = createInterpolator({\n output: [this.getValue(), goal]\n });\n }\n this._value = 0;\n super.reset();\n }\n};\n\n// src/AnimatedArray.ts\nimport { isAnimatedString } from \"@react-spring/shared\";\n\n// src/AnimatedObject.ts\nimport {\n each,\n eachProp,\n getFluidValue,\n hasFluidValue\n} from \"@react-spring/shared\";\n\n// src/context.ts\nvar TreeContext = { dependencies: null };\n\n// src/AnimatedObject.ts\nvar AnimatedObject = class extends Animated {\n constructor(source) {\n super();\n this.source = source;\n this.setValue(source);\n }\n getValue(animated) {\n const values = {};\n eachProp(this.source, (source, key) => {\n if (isAnimated(source)) {\n values[key] = source.getValue(animated);\n } else if (hasFluidValue(source)) {\n values[key] = getFluidValue(source);\n } else if (!animated) {\n values[key] = source;\n }\n });\n return values;\n }\n /** Replace the raw object data */\n setValue(source) {\n this.source = source;\n this.payload = this._makePayload(source);\n }\n reset() {\n if (this.payload) {\n each(this.payload, (node) => node.reset());\n }\n }\n /** Create a payload set. */\n _makePayload(source) {\n if (source) {\n const payload = /* @__PURE__ */ new Set();\n eachProp(source, this._addToPayload, payload);\n return Array.from(payload);\n }\n }\n /** Add to a payload set. */\n _addToPayload(source) {\n if (TreeContext.dependencies && hasFluidValue(source)) {\n TreeContext.dependencies.add(source);\n }\n const payload = getPayload(source);\n if (payload) {\n each(payload, (node) => this.add(node));\n }\n }\n};\n\n// src/AnimatedArray.ts\nvar AnimatedArray = class extends AnimatedObject {\n constructor(source) {\n super(source);\n }\n /** @internal */\n static create(source) {\n return new AnimatedArray(source);\n }\n getValue() {\n return this.source.map((node) => node.getValue());\n }\n setValue(source) {\n const payload = this.getPayload();\n if (source.length == payload.length) {\n return payload.map((node, i) => node.setValue(source[i])).some(Boolean);\n }\n super.setValue(source.map(makeAnimated));\n return true;\n }\n};\nfunction makeAnimated(value) {\n const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue;\n return nodeType.create(value);\n}\n\n// src/getAnimatedType.ts\nimport { is as is3, isAnimatedString as isAnimatedString2 } from \"@react-spring/shared\";\nfunction getAnimatedType(value) {\n const parentNode = getAnimated(value);\n return parentNode ? parentNode.constructor : is3.arr(value) ? AnimatedArray : isAnimatedString2(value) ? AnimatedString : AnimatedValue;\n}\n\n// src/createHost.ts\nimport { is as is5, eachProp as eachProp2 } from \"@react-spring/shared\";\n\n// src/withAnimated.tsx\nimport * as React from \"react\";\nimport { forwardRef, useRef, useCallback, useEffect } from \"react\";\nimport {\n is as is4,\n each as each2,\n raf,\n useForceUpdate,\n useOnce,\n addFluidObserver,\n removeFluidObserver,\n useIsomorphicLayoutEffect\n} from \"@react-spring/shared\";\nvar withAnimated = (Component, host) => {\n const hasInstance = (\n // Function components must use \"forwardRef\" to avoid being\n // re-rendered on every animation frame.\n !is4.fun(Component) || Component.prototype && Component.prototype.isReactComponent\n );\n return forwardRef((givenProps, givenRef) => {\n const instanceRef = useRef(null);\n const ref = hasInstance && // eslint-disable-next-line react-hooks/rules-of-hooks\n useCallback(\n (value) => {\n instanceRef.current = updateRef(givenRef, value);\n },\n [givenRef]\n );\n const [props, deps] = getAnimatedState(givenProps, host);\n const forceUpdate = useForceUpdate();\n const callback = () => {\n const instance = instanceRef.current;\n if (hasInstance && !instance) {\n return;\n }\n const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false;\n if (didUpdate === false) {\n forceUpdate();\n }\n };\n const observer = new PropsObserver(callback, deps);\n const observerRef = useRef();\n useIsomorphicLayoutEffect(() => {\n observerRef.current = observer;\n each2(deps, (dep) => addFluidObserver(dep, observer));\n return () => {\n if (observerRef.current) {\n each2(\n observerRef.current.deps,\n (dep) => removeFluidObserver(dep, observerRef.current)\n );\n raf.cancel(observerRef.current.update);\n }\n };\n });\n useEffect(callback, []);\n useOnce(() => () => {\n const observer2 = observerRef.current;\n each2(observer2.deps, (dep) => removeFluidObserver(dep, observer2));\n });\n const usedProps = host.getComponentProps(props.getValue());\n return /* @__PURE__ */ React.createElement(Component, { ...usedProps, ref });\n });\n};\nvar PropsObserver = class {\n constructor(update, deps) {\n this.update = update;\n this.deps = deps;\n }\n eventObserved(event) {\n if (event.type == \"change\") {\n raf.write(this.update);\n }\n }\n};\nfunction getAnimatedState(props, host) {\n const dependencies = /* @__PURE__ */ new Set();\n TreeContext.dependencies = dependencies;\n if (props.style)\n props = {\n ...props,\n style: host.createAnimatedStyle(props.style)\n };\n props = new AnimatedObject(props);\n TreeContext.dependencies = null;\n return [props, dependencies];\n}\nfunction updateRef(ref, value) {\n if (ref) {\n if (is4.fun(ref))\n ref(value);\n else\n ref.current = value;\n }\n return value;\n}\n\n// src/createHost.ts\nvar cacheKey = Symbol.for(\"AnimatedComponent\");\nvar createHost = (components, {\n applyAnimatedValues = () => false,\n createAnimatedStyle = (style) => new AnimatedObject(style),\n getComponentProps = (props) => props\n} = {}) => {\n const hostConfig = {\n applyAnimatedValues,\n createAnimatedStyle,\n getComponentProps\n };\n const animated = (Component) => {\n const displayName = getDisplayName(Component) || \"Anonymous\";\n if (is5.str(Component)) {\n Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig));\n } else {\n Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig));\n }\n Component.displayName = `Animated(${displayName})`;\n return Component;\n };\n eachProp2(components, (Component, key) => {\n if (is5.arr(components)) {\n key = getDisplayName(Component);\n }\n animated[key] = animated(Component);\n });\n return {\n animated\n };\n};\nvar getDisplayName = (arg) => is5.str(arg) ? arg : arg && is5.str(arg.displayName) ? arg.displayName : is5.fun(arg) && arg.name || null;\nexport {\n Animated,\n AnimatedArray,\n AnimatedObject,\n AnimatedString,\n AnimatedValue,\n createHost,\n getAnimated,\n getAnimatedType,\n getPayload,\n isAnimated,\n setAnimated\n};\n//# sourceMappingURL=react-spring_animated.modern.mjs.map","// src/hooks/useChain.ts\nimport { each, useIsomorphicLayoutEffect } from \"@react-spring/shared\";\n\n// src/helpers.ts\nimport {\n is,\n toArray,\n eachProp,\n getFluidValue,\n isAnimatedString,\n Globals as G\n} from \"@react-spring/shared\";\nfunction callProp(value, ...args) {\n return is.fun(value) ? value(...args) : value;\n}\nvar matchProp = (value, key) => value === true || !!(key && value && (is.fun(value) ? value(key) : toArray(value).includes(key)));\nvar resolveProp = (prop, key) => is.obj(prop) ? key && prop[key] : prop;\nvar getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : void 0;\nvar noopTransform = (value) => value;\nvar getDefaultProps = (props, transform = noopTransform) => {\n let keys = DEFAULT_PROPS;\n if (props.default && props.default !== true) {\n props = props.default;\n keys = Object.keys(props);\n }\n const defaults2 = {};\n for (const key of keys) {\n const value = transform(props[key], key);\n if (!is.und(value)) {\n defaults2[key] = value;\n }\n }\n return defaults2;\n};\nvar DEFAULT_PROPS = [\n \"config\",\n \"onProps\",\n \"onStart\",\n \"onChange\",\n \"onPause\",\n \"onResume\",\n \"onRest\"\n];\nvar RESERVED_PROPS = {\n config: 1,\n from: 1,\n to: 1,\n ref: 1,\n loop: 1,\n reset: 1,\n pause: 1,\n cancel: 1,\n reverse: 1,\n immediate: 1,\n default: 1,\n delay: 1,\n onProps: 1,\n onStart: 1,\n onChange: 1,\n onPause: 1,\n onResume: 1,\n onRest: 1,\n onResolve: 1,\n // Transition props\n items: 1,\n trail: 1,\n sort: 1,\n expires: 1,\n initial: 1,\n enter: 1,\n update: 1,\n leave: 1,\n children: 1,\n onDestroyed: 1,\n // Internal props\n keys: 1,\n callId: 1,\n parentId: 1\n};\nfunction getForwardProps(props) {\n const forward = {};\n let count = 0;\n eachProp(props, (value, prop) => {\n if (!RESERVED_PROPS[prop]) {\n forward[prop] = value;\n count++;\n }\n });\n if (count) {\n return forward;\n }\n}\nfunction inferTo(props) {\n const to2 = getForwardProps(props);\n if (to2) {\n const out = { to: to2 };\n eachProp(props, (val, key) => key in to2 || (out[key] = val));\n return out;\n }\n return { ...props };\n}\nfunction computeGoal(value) {\n value = getFluidValue(value);\n return is.arr(value) ? value.map(computeGoal) : isAnimatedString(value) ? G.createStringInterpolator({\n range: [0, 1],\n output: [value, value]\n })(1) : value;\n}\nfunction hasProps(props) {\n for (const _ in props)\n return true;\n return false;\n}\nfunction isAsyncTo(to2) {\n return is.fun(to2) || is.arr(to2) && is.obj(to2[0]);\n}\nfunction detachRefs(ctrl, ref) {\n ctrl.ref?.delete(ctrl);\n ref?.delete(ctrl);\n}\nfunction replaceRef(ctrl, ref) {\n if (ref && ctrl.ref !== ref) {\n ctrl.ref?.delete(ctrl);\n ref.add(ctrl);\n ctrl.ref = ref;\n }\n}\n\n// src/hooks/useChain.ts\nfunction useChain(refs, timeSteps, timeFrame = 1e3) {\n useIsomorphicLayoutEffect(() => {\n if (timeSteps) {\n let prevDelay = 0;\n each(refs, (ref, i) => {\n const controllers = ref.current;\n if (controllers.length) {\n let delay = timeFrame * timeSteps[i];\n if (isNaN(delay))\n delay = prevDelay;\n else\n prevDelay = delay;\n each(controllers, (ctrl) => {\n each(ctrl.queue, (props) => {\n const memoizedDelayProp = props.delay;\n props.delay = (key) => delay + callProp(memoizedDelayProp || 0, key);\n });\n });\n ref.start();\n }\n });\n } else {\n let p = Promise.resolve();\n each(refs, (ref) => {\n const controllers = ref.current;\n if (controllers.length) {\n const queues = controllers.map((ctrl) => {\n const q = ctrl.queue;\n ctrl.queue = [];\n return q;\n });\n p = p.then(() => {\n each(\n controllers,\n (ctrl, i) => each(queues[i] || [], (update2) => ctrl.queue.push(update2))\n );\n return Promise.all(ref.start());\n });\n }\n });\n }\n });\n}\n\n// src/hooks/useSpring.ts\nimport { is as is9 } from \"@react-spring/shared\";\n\n// src/hooks/useSprings.ts\nimport { useContext as useContext2, useMemo, useRef } from \"react\";\nimport {\n is as is8,\n each as each5,\n usePrev,\n useOnce,\n useForceUpdate,\n useIsomorphicLayoutEffect as useIsomorphicLayoutEffect2\n} from \"@react-spring/shared\";\n\n// src/SpringValue.ts\nimport {\n is as is5,\n raf as raf3,\n each as each2,\n isEqual,\n toArray as toArray2,\n eachProp as eachProp3,\n frameLoop as frameLoop2,\n flushCalls,\n getFluidValue as getFluidValue2,\n isAnimatedString as isAnimatedString2,\n Globals as G5,\n callFluidObservers as callFluidObservers2,\n hasFluidValue,\n addFluidObserver,\n removeFluidObserver,\n getFluidObservers\n} from \"@react-spring/shared\";\nimport {\n AnimatedValue,\n AnimatedString,\n getPayload,\n getAnimated as getAnimated2,\n setAnimated,\n getAnimatedType\n} from \"@react-spring/animated\";\n\n// src/AnimationConfig.ts\nimport { is as is2, easings } from \"@react-spring/shared\";\n\n// src/constants.ts\nvar config = {\n default: { tension: 170, friction: 26 },\n gentle: { tension: 120, friction: 14 },\n wobbly: { tension: 180, friction: 12 },\n stiff: { tension: 210, friction: 20 },\n slow: { tension: 280, friction: 60 },\n molasses: { tension: 280, friction: 120 }\n};\n\n// src/AnimationConfig.ts\nvar defaults = {\n ...config.default,\n mass: 1,\n damping: 1,\n easing: easings.linear,\n clamp: false\n};\nvar AnimationConfig = class {\n constructor() {\n /**\n * The initial velocity of one or more values.\n *\n * @default 0\n */\n this.velocity = 0;\n Object.assign(this, defaults);\n }\n};\nfunction mergeConfig(config2, newConfig, defaultConfig) {\n if (defaultConfig) {\n defaultConfig = { ...defaultConfig };\n sanitizeConfig(defaultConfig, newConfig);\n newConfig = { ...defaultConfig, ...newConfig };\n }\n sanitizeConfig(config2, newConfig);\n Object.assign(config2, newConfig);\n for (const key in defaults) {\n if (config2[key] == null) {\n config2[key] = defaults[key];\n }\n }\n let { frequency, damping } = config2;\n const { mass } = config2;\n if (!is2.und(frequency)) {\n if (frequency < 0.01)\n frequency = 0.01;\n if (damping < 0)\n damping = 0;\n config2.tension = Math.pow(2 * Math.PI / frequency, 2) * mass;\n config2.friction = 4 * Math.PI * damping * mass / frequency;\n }\n return config2;\n}\nfunction sanitizeConfig(config2, props) {\n if (!is2.und(props.decay)) {\n config2.duration = void 0;\n } else {\n const isTensionConfig = !is2.und(props.tension) || !is2.und(props.friction);\n if (isTensionConfig || !is2.und(props.frequency) || !is2.und(props.damping) || !is2.und(props.mass)) {\n config2.duration = void 0;\n config2.decay = void 0;\n }\n if (isTensionConfig) {\n config2.frequency = void 0;\n }\n }\n}\n\n// src/Animation.ts\nvar emptyArray = [];\nvar Animation = class {\n constructor() {\n this.changed = false;\n this.values = emptyArray;\n this.toValues = null;\n this.fromValues = emptyArray;\n this.config = new AnimationConfig();\n this.immediate = false;\n }\n};\n\n// src/scheduleProps.ts\nimport { is as is3, raf, Globals as G2 } from \"@react-spring/shared\";\nfunction scheduleProps(callId, { key, props, defaultProps, state, actions }) {\n return new Promise((resolve, reject) => {\n let delay;\n let timeout;\n let cancel = matchProp(props.cancel ?? defaultProps?.cancel, key);\n if (cancel) {\n onStart();\n } else {\n if (!is3.und(props.pause)) {\n state.paused = matchProp(props.pause, key);\n }\n let pause = defaultProps?.pause;\n if (pause !== true) {\n pause = state.paused || matchProp(pause, key);\n }\n delay = callProp(props.delay || 0, key);\n if (pause) {\n state.resumeQueue.add(onResume);\n actions.pause();\n } else {\n actions.resume();\n onResume();\n }\n }\n function onPause() {\n state.resumeQueue.add(onResume);\n state.timeouts.delete(timeout);\n timeout.cancel();\n delay = timeout.time - raf.now();\n }\n function onResume() {\n if (delay > 0 && !G2.skipAnimation) {\n state.delayed = true;\n timeout = raf.setTimeout(onStart, delay);\n state.pauseQueue.add(onPause);\n state.timeouts.add(timeout);\n } else {\n onStart();\n }\n }\n function onStart() {\n if (state.delayed) {\n state.delayed = false;\n }\n state.pauseQueue.delete(onPause);\n state.timeouts.delete(timeout);\n if (callId <= (state.cancelId || 0)) {\n cancel = true;\n }\n try {\n actions.start({ ...props, callId, cancel }, resolve);\n } catch (err) {\n reject(err);\n }\n }\n });\n}\n\n// src/runAsync.ts\nimport {\n is as is4,\n raf as raf2,\n flush,\n eachProp as eachProp2,\n Globals as G3\n} from \"@react-spring/shared\";\n\n// src/AnimationResult.ts\nvar getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some((result) => result.cancelled) ? getCancelledResult(target.get()) : results.every((result) => result.noop) ? getNoopResult(target.get()) : getFinishedResult(\n target.get(),\n results.every((result) => result.finished)\n);\nvar getNoopResult = (value) => ({\n value,\n noop: true,\n finished: true,\n cancelled: false\n});\nvar getFinishedResult = (value, finished, cancelled = false) => ({\n value,\n finished,\n cancelled\n});\nvar getCancelledResult = (value) => ({\n value,\n cancelled: true,\n finished: false\n});\n\n// src/runAsync.ts\nfunction runAsync(to2, props, state, target) {\n const { callId, parentId, onRest } = props;\n const { asyncTo: prevTo, promise: prevPromise } = state;\n if (!parentId && to2 === prevTo && !props.reset) {\n return prevPromise;\n }\n return state.promise = (async () => {\n state.asyncId = callId;\n state.asyncTo = to2;\n const defaultProps = getDefaultProps(\n props,\n (value, key) => (\n // The `onRest` prop is only called when the `runAsync` promise is resolved.\n key === \"onRest\" ? void 0 : value\n )\n );\n let preventBail;\n let bail;\n const bailPromise = new Promise(\n (resolve, reject) => (preventBail = resolve, bail = reject)\n );\n const bailIfEnded = (bailSignal) => {\n const bailResult = (\n // The `cancel` prop or `stop` method was used.\n callId <= (state.cancelId || 0) && getCancelledResult(target) || // The async `to` prop was replaced.\n callId !== state.asyncId && getFinishedResult(target, false)\n );\n if (bailResult) {\n bailSignal.result = bailResult;\n bail(bailSignal);\n throw bailSignal;\n }\n };\n const animate = (arg1, arg2) => {\n const bailSignal = new BailSignal();\n const skipAnimationSignal = new SkipAnimationSignal();\n return (async () => {\n if (G3.skipAnimation) {\n stopAsync(state);\n skipAnimationSignal.result = getFinishedResult(target, false);\n bail(skipAnimationSignal);\n throw skipAnimationSignal;\n }\n bailIfEnded(bailSignal);\n const props2 = is4.obj(arg1) ? { ...arg1 } : { ...arg2, to: arg1 };\n props2.parentId = callId;\n eachProp2(defaultProps, (value, key) => {\n if (is4.und(props2[key])) {\n props2[key] = value;\n }\n });\n const result2 = await target.start(props2);\n bailIfEnded(bailSignal);\n if (state.paused) {\n await new Promise((resume) => {\n state.resumeQueue.add(resume);\n });\n }\n return result2;\n })();\n };\n let result;\n if (G3.skipAnimation) {\n stopAsync(state);\n return getFinishedResult(target, false);\n }\n try {\n let animating;\n if (is4.arr(to2)) {\n animating = (async (queue) => {\n for (const props2 of queue) {\n await animate(props2);\n }\n })(to2);\n } else {\n animating = Promise.resolve(to2(animate, target.stop.bind(target)));\n }\n await Promise.all([animating.then(preventBail), bailPromise]);\n result = getFinishedResult(target.get(), true, false);\n } catch (err) {\n if (err instanceof BailSignal) {\n result = err.result;\n } else if (err instanceof SkipAnimationSignal) {\n result = err.result;\n } else {\n throw err;\n }\n } finally {\n if (callId == state.asyncId) {\n state.asyncId = parentId;\n state.asyncTo = parentId ? prevTo : void 0;\n state.promise = parentId ? prevPromise : void 0;\n }\n }\n if (is4.fun(onRest)) {\n raf2.batchedUpdates(() => {\n onRest(result, target, target.item);\n });\n }\n return result;\n })();\n}\nfunction stopAsync(state, cancelId) {\n flush(state.timeouts, (t) => t.cancel());\n state.pauseQueue.clear();\n state.resumeQueue.clear();\n state.asyncId = state.asyncTo = state.promise = void 0;\n if (cancelId)\n state.cancelId = cancelId;\n}\nvar BailSignal = class extends Error {\n constructor() {\n super(\n \"An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.\"\n );\n }\n};\nvar SkipAnimationSignal = class extends Error {\n constructor() {\n super(\"SkipAnimationSignal\");\n }\n};\n\n// src/FrameValue.ts\nimport {\n deprecateInterpolate,\n frameLoop,\n FluidValue as FluidValue2,\n Globals as G4,\n callFluidObservers\n} from \"@react-spring/shared\";\nimport { getAnimated } from \"@react-spring/animated\";\nvar isFrameValue = (value) => value instanceof FrameValue;\nvar nextId = 1;\nvar FrameValue = class extends FluidValue2 {\n constructor() {\n super(...arguments);\n this.id = nextId++;\n this._priority = 0;\n }\n get priority() {\n return this._priority;\n }\n set priority(priority) {\n if (this._priority != priority) {\n this._priority = priority;\n this._onPriorityChange(priority);\n }\n }\n /** Get the current value */\n get() {\n const node = getAnimated(this);\n return node && node.getValue();\n }\n /** Create a spring that maps our value to another value */\n to(...args) {\n return G4.to(this, args);\n }\n /** @deprecated Use the `to` method instead. */\n interpolate(...args) {\n deprecateInterpolate();\n return G4.to(this, args);\n }\n toJSON() {\n return this.get();\n }\n observerAdded(count) {\n if (count == 1)\n this._attach();\n }\n observerRemoved(count) {\n if (count == 0)\n this._detach();\n }\n /** Called when the first child is added. */\n _attach() {\n }\n /** Called when the last child is removed. */\n _detach() {\n }\n /** Tell our children about our new value */\n _onChange(value, idle = false) {\n callFluidObservers(this, {\n type: \"change\",\n parent: this,\n value,\n idle\n });\n }\n /** Tell our children about our new priority */\n _onPriorityChange(priority) {\n if (!this.idle) {\n frameLoop.sort(this);\n }\n callFluidObservers(this, {\n type: \"priority\",\n parent: this,\n priority\n });\n }\n};\n\n// src/SpringPhase.ts\nvar $P = Symbol.for(\"SpringPhase\");\nvar HAS_ANIMATED = 1;\nvar IS_ANIMATING = 2;\nvar IS_PAUSED = 4;\nvar hasAnimated = (target) => (target[$P] & HAS_ANIMATED) > 0;\nvar isAnimating = (target) => (target[$P] & IS_ANIMATING) > 0;\nvar isPaused = (target) => (target[$P] & IS_PAUSED) > 0;\nvar setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING;\nvar setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED;\n\n// src/SpringValue.ts\nvar SpringValue = class extends FrameValue {\n constructor(arg1, arg2) {\n super();\n /** The animation state */\n this.animation = new Animation();\n /** Some props have customizable default values */\n this.defaultProps = {};\n /** The state for `runAsync` calls */\n this._state = {\n paused: false,\n delayed: false,\n pauseQueue: /* @__PURE__ */ new Set(),\n resumeQueue: /* @__PURE__ */ new Set(),\n timeouts: /* @__PURE__ */ new Set()\n };\n /** The promise resolvers of pending `start` calls */\n this._pendingCalls = /* @__PURE__ */ new Set();\n /** The counter for tracking `scheduleProps` calls */\n this._lastCallId = 0;\n /** The last `scheduleProps` call that changed the `to` prop */\n this._lastToId = 0;\n this._memoizedDuration = 0;\n if (!is5.und(arg1) || !is5.und(arg2)) {\n const props = is5.obj(arg1) ? { ...arg1 } : { ...arg2, from: arg1 };\n if (is5.und(props.default)) {\n props.default = true;\n }\n this.start(props);\n }\n }\n /** Equals true when not advancing on each frame. */\n get idle() {\n return !(isAnimating(this) || this._state.asyncTo) || isPaused(this);\n }\n get goal() {\n return getFluidValue2(this.animation.to);\n }\n get velocity() {\n const node = getAnimated2(this);\n return node instanceof AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map((node2) => node2.lastVelocity || 0);\n }\n /**\n * When true, this value has been animated at least once.\n */\n get hasAnimated() {\n return hasAnimated(this);\n }\n /**\n * When true, this value has an unfinished animation,\n * which is either active or paused.\n */\n get isAnimating() {\n return isAnimating(this);\n }\n /**\n * When true, all current and future animations are paused.\n */\n get isPaused() {\n return isPaused(this);\n }\n /**\n *\n *\n */\n get isDelayed() {\n return this._state.delayed;\n }\n /** Advance the current animation by a number of milliseconds */\n advance(dt) {\n let idle = true;\n let changed = false;\n const anim = this.animation;\n let { toValues } = anim;\n const { config: config2 } = anim;\n const payload = getPayload(anim.to);\n if (!payload && hasFluidValue(anim.to)) {\n toValues = toArray2(getFluidValue2(anim.to));\n }\n anim.values.forEach((node2, i) => {\n if (node2.done)\n return;\n const to2 = (\n // Animated strings always go from 0 to 1.\n node2.constructor == AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i]\n );\n let finished = anim.immediate;\n let position = to2;\n if (!finished) {\n position = node2.lastPosition;\n if (config2.tension <= 0) {\n node2.done = true;\n return;\n }\n let elapsed = node2.elapsedTime += dt;\n const from = anim.fromValues[i];\n const v0 = node2.v0 != null ? node2.v0 : node2.v0 = is5.arr(config2.velocity) ? config2.velocity[i] : config2.velocity;\n let velocity;\n const precision = config2.precision || (from == to2 ? 5e-3 : Math.min(1, Math.abs(to2 - from) * 1e-3));\n if (!is5.und(config2.duration)) {\n let p = 1;\n if (config2.duration > 0) {\n if (this._memoizedDuration !== config2.duration) {\n this._memoizedDuration = config2.duration;\n if (node2.durationProgress > 0) {\n node2.elapsedTime = config2.duration * node2.durationProgress;\n elapsed = node2.elapsedTime += dt;\n }\n }\n p = (config2.progress || 0) + elapsed / this._memoizedDuration;\n p = p > 1 ? 1 : p < 0 ? 0 : p;\n node2.durationProgress = p;\n }\n position = from + config2.easing(p) * (to2 - from);\n velocity = (position - node2.lastPosition) / dt;\n finished = p == 1;\n } else if (config2.decay) {\n const decay = config2.decay === true ? 0.998 : config2.decay;\n const e = Math.exp(-(1 - decay) * elapsed);\n position = from + v0 / (1 - decay) * (1 - e);\n finished = Math.abs(node2.lastPosition - position) <= precision;\n velocity = v0 * e;\n } else {\n velocity = node2.lastVelocity == null ? v0 : node2.lastVelocity;\n const restVelocity = config2.restVelocity || precision / 10;\n const bounceFactor = config2.clamp ? 0 : config2.bounce;\n const canBounce = !is5.und(bounceFactor);\n const isGrowing = from == to2 ? node2.v0 > 0 : from < to2;\n let isMoving;\n let isBouncing = false;\n const step = 1;\n const numSteps = Math.ceil(dt / step);\n for (let n = 0; n < numSteps; ++n) {\n isMoving = Math.abs(velocity) > restVelocity;\n if (!isMoving) {\n finished = Math.abs(to2 - position) <= precision;\n if (finished) {\n break;\n }\n }\n if (canBounce) {\n isBouncing = position == to2 || position > to2 == isGrowing;\n if (isBouncing) {\n velocity = -velocity * bounceFactor;\n position = to2;\n }\n }\n const springForce = -config2.tension * 1e-6 * (position - to2);\n const dampingForce = -config2.friction * 1e-3 * velocity;\n const acceleration = (springForce + dampingForce) / config2.mass;\n velocity = velocity + acceleration * step;\n position = position + velocity * step;\n }\n }\n node2.lastVelocity = velocity;\n if (Number.isNaN(position)) {\n console.warn(`Got NaN while animating:`, this);\n finished = true;\n }\n }\n if (payload && !payload[i].done) {\n finished = false;\n }\n if (finished) {\n node2.done = true;\n } else {\n idle = false;\n }\n if (node2.setValue(position, config2.round)) {\n changed = true;\n }\n });\n const node = getAnimated2(this);\n const currVal = node.getValue();\n if (idle) {\n const finalVal = getFluidValue2(anim.to);\n if ((currVal !== finalVal || changed) && !config2.decay) {\n node.setValue(finalVal);\n this._onChange(finalVal);\n } else if (changed && config2.decay) {\n this._onChange(currVal);\n }\n this._stop();\n } else if (changed) {\n this._onChange(currVal);\n }\n }\n /** Set the current value, while stopping the current animation */\n set(value) {\n raf3.batchedUpdates(() => {\n this._stop();\n this._focus(value);\n this._set(value);\n });\n return this;\n }\n /**\n * Freeze the active animation in time, as well as any updates merged\n * before `resume` is called.\n */\n pause() {\n this._update({ pause: true });\n }\n /** Resume the animation if paused. */\n resume() {\n this._update({ pause: false });\n }\n /** Skip to the end of the current animation. */\n finish() {\n if (isAnimating(this)) {\n const { to: to2, config: config2 } = this.animation;\n raf3.batchedUpdates(() => {\n this._onStart();\n if (!config2.decay) {\n this._set(to2, false);\n }\n this._stop();\n });\n }\n return this;\n }\n /** Push props into the pending queue. */\n update(props) {\n const queue = this.queue || (this.queue = []);\n queue.push(props);\n return this;\n }\n start(to2, arg2) {\n let queue;\n if (!is5.und(to2)) {\n queue = [is5.obj(to2) ? to2 : { ...arg2, to: to2 }];\n } else {\n queue = this.queue || [];\n this.queue = [];\n }\n return Promise.all(\n queue.map((props) => {\n const up = this._update(props);\n return up;\n })\n ).then((results) => getCombinedResult(this, results));\n }\n /**\n * Stop the current animation, and cancel any delayed updates.\n *\n * Pass `true` to call `onRest` with `cancelled: true`.\n */\n stop(cancel) {\n const { to: to2 } = this.animation;\n this._focus(this.get());\n stopAsync(this._state, cancel && this._lastCallId);\n raf3.batchedUpdates(() => this._stop(to2, cancel));\n return this;\n }\n /** Restart the animation. */\n reset() {\n this._update({ reset: true });\n }\n /** @internal */\n eventObserved(event) {\n if (event.type == \"change\") {\n this._start();\n } else if (event.type == \"priority\") {\n this.priority = event.priority + 1;\n }\n }\n /**\n * Parse the `to` and `from` range from the given `props` object.\n *\n * This also ensures the initial value is available to animated components\n * during the render phase.\n */\n _prepareNode(props) {\n const key = this.key || \"\";\n let { to: to2, from } = props;\n to2 = is5.obj(to2) ? to2[key] : to2;\n if (to2 == null || isAsyncTo(to2)) {\n to2 = void 0;\n }\n from = is5.obj(from) ? from[key] : from;\n if (from == null) {\n from = void 0;\n }\n const range = { to: to2, from };\n if (!hasAnimated(this)) {\n if (props.reverse)\n [to2, from] = [from, to2];\n from = getFluidValue2(from);\n if (!is5.und(from)) {\n this._set(from);\n } else if (!getAnimated2(this)) {\n this._set(to2);\n }\n }\n return range;\n }\n /** Every update is processed by this method before merging. */\n _update({ ...props }, isLoop) {\n const { key, defaultProps } = this;\n if (props.default)\n Object.assign(\n defaultProps,\n getDefaultProps(\n props,\n (value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value\n )\n );\n mergeActiveFn(this, props, \"onProps\");\n sendEvent(this, \"onProps\", props, this);\n const range = this._prepareNode(props);\n if (Object.isFrozen(this)) {\n throw Error(\n \"Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?\"\n );\n }\n const state = this._state;\n return scheduleProps(++this._lastCallId, {\n key,\n props,\n defaultProps,\n state,\n actions: {\n pause: () => {\n if (!isPaused(this)) {\n setPausedBit(this, true);\n flushCalls(state.pauseQueue);\n sendEvent(\n this,\n \"onPause\",\n getFinishedResult(this, checkFinished(this, this.animation.to)),\n this\n );\n }\n },\n resume: () => {\n if (isPaused(this)) {\n setPausedBit(this, false);\n if (isAnimating(this)) {\n this._resume();\n }\n flushCalls(state.resumeQueue);\n sendEvent(\n this,\n \"onResume\",\n getFinishedResult(this, checkFinished(this, this.animation.to)),\n this\n );\n }\n },\n start: this._merge.bind(this, range)\n }\n }).then((result) => {\n if (props.loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props);\n if (nextProps) {\n return this._update(nextProps, true);\n }\n }\n return result;\n });\n }\n /** Merge props into the current animation */\n _merge(range, props, resolve) {\n if (props.cancel) {\n this.stop(true);\n return resolve(getCancelledResult(this));\n }\n const hasToProp = !is5.und(range.to);\n const hasFromProp = !is5.und(range.from);\n if (hasToProp || hasFromProp) {\n if (props.callId > this._lastToId) {\n this._lastToId = props.callId;\n } else {\n return resolve(getCancelledResult(this));\n }\n }\n const { key, defaultProps, animation: anim } = this;\n const { to: prevTo, from: prevFrom } = anim;\n let { to: to2 = prevTo, from = prevFrom } = range;\n if (hasFromProp && !hasToProp && (!props.default || is5.und(to2))) {\n to2 = from;\n }\n if (props.reverse)\n [to2, from] = [from, to2];\n const hasFromChanged = !isEqual(from, prevFrom);\n if (hasFromChanged) {\n anim.from = from;\n }\n from = getFluidValue2(from);\n const hasToChanged = !isEqual(to2, prevTo);\n if (hasToChanged) {\n this._focus(to2);\n }\n const hasAsyncTo = isAsyncTo(props.to);\n const { config: config2 } = anim;\n const { decay, velocity } = config2;\n if (hasToProp || hasFromProp) {\n config2.velocity = 0;\n }\n if (props.config && !hasAsyncTo) {\n mergeConfig(\n config2,\n callProp(props.config, key),\n // Avoid calling the same \"config\" prop twice.\n props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0\n );\n }\n let node = getAnimated2(this);\n if (!node || is5.und(to2)) {\n return resolve(getFinishedResult(this, true));\n }\n const reset = (\n // When `reset` is undefined, the `from` prop implies `reset: true`,\n // except for declarative updates. When `reset` is defined, there\n // must exist a value to animate from.\n is5.und(props.reset) ? hasFromProp && !props.default : !is5.und(from) && matchProp(props.reset, key)\n );\n const value = reset ? from : this.get();\n const goal = computeGoal(to2);\n const isAnimatable = is5.num(goal) || is5.arr(goal) || isAnimatedString2(goal);\n const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key));\n if (hasToChanged) {\n const nodeType = getAnimatedType(to2);\n if (nodeType !== node.constructor) {\n if (immediate) {\n node = this._set(goal);\n } else\n throw Error(\n `Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the \"to\" prop suggests`\n );\n }\n }\n const goalType = node.constructor;\n let started = hasFluidValue(to2);\n let finished = false;\n if (!started) {\n const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged;\n if (hasToChanged || hasValueChanged) {\n finished = isEqual(computeGoal(value), goal);\n started = !finished;\n }\n if (!isEqual(anim.immediate, immediate) && !immediate || !isEqual(config2.decay, decay) || !isEqual(config2.velocity, velocity)) {\n started = true;\n }\n }\n if (finished && isAnimating(this)) {\n if (anim.changed && !reset) {\n started = true;\n } else if (!started) {\n this._stop(prevTo);\n }\n }\n if (!hasAsyncTo) {\n if (started || hasFluidValue(prevTo)) {\n anim.values = node.getPayload();\n anim.toValues = hasFluidValue(to2) ? null : goalType == AnimatedString ? [1] : toArray2(goal);\n }\n if (anim.immediate != immediate) {\n anim.immediate = immediate;\n if (!immediate && !reset) {\n this._set(prevTo);\n }\n }\n if (started) {\n const { onRest } = anim;\n each2(ACTIVE_EVENTS, (type) => mergeActiveFn(this, props, type));\n const result = getFinishedResult(this, checkFinished(this, prevTo));\n flushCalls(this._pendingCalls, result);\n this._pendingCalls.add(resolve);\n if (anim.changed)\n raf3.batchedUpdates(() => {\n anim.changed = !reset;\n onRest?.(result, this);\n if (reset) {\n callProp(defaultProps.onRest, result);\n } else {\n anim.onStart?.(result, this);\n }\n });\n }\n }\n if (reset) {\n this._set(value);\n }\n if (hasAsyncTo) {\n resolve(runAsync(props.to, props, this._state, this));\n } else if (started) {\n this._start();\n } else if (isAnimating(this) && !hasToChanged) {\n this._pendingCalls.add(resolve);\n } else {\n resolve(getNoopResult(value));\n }\n }\n /** Update the `animation.to` value, which might be a `FluidValue` */\n _focus(value) {\n const anim = this.animation;\n if (value !== anim.to) {\n if (getFluidObservers(this)) {\n this._detach();\n }\n anim.to = value;\n if (getFluidObservers(this)) {\n this._attach();\n }\n }\n }\n _attach() {\n let priority = 0;\n const { to: to2 } = this.animation;\n if (hasFluidValue(to2)) {\n addFluidObserver(to2, this);\n if (isFrameValue(to2)) {\n priority = to2.priority + 1;\n }\n }\n this.priority = priority;\n }\n _detach() {\n const { to: to2 } = this.animation;\n if (hasFluidValue(to2)) {\n removeFluidObserver(to2, this);\n }\n }\n /**\n * Update the current value from outside the frameloop,\n * and return the `Animated` node.\n */\n _set(arg, idle = true) {\n const value = getFluidValue2(arg);\n if (!is5.und(value)) {\n const oldNode = getAnimated2(this);\n if (!oldNode || !isEqual(value, oldNode.getValue())) {\n const nodeType = getAnimatedType(value);\n if (!oldNode || oldNode.constructor != nodeType) {\n setAnimated(this, nodeType.create(value));\n } else {\n oldNode.setValue(value);\n }\n if (oldNode) {\n raf3.batchedUpdates(() => {\n this._onChange(value, idle);\n });\n }\n }\n }\n return getAnimated2(this);\n }\n _onStart() {\n const anim = this.animation;\n if (!anim.changed) {\n anim.changed = true;\n sendEvent(\n this,\n \"onStart\",\n getFinishedResult(this, checkFinished(this, anim.to)),\n this\n );\n }\n }\n _onChange(value, idle) {\n if (!idle) {\n this._onStart();\n callProp(this.animation.onChange, value, this);\n }\n callProp(this.defaultProps.onChange, value, this);\n super._onChange(value, idle);\n }\n // This method resets the animation state (even if already animating) to\n // ensure the latest from/to range is used, and it also ensures this spring\n // is added to the frameloop.\n _start() {\n const anim = this.animation;\n getAnimated2(this).reset(getFluidValue2(anim.to));\n if (!anim.immediate) {\n anim.fromValues = anim.values.map((node) => node.lastPosition);\n }\n if (!isAnimating(this)) {\n setActiveBit(this, true);\n if (!isPaused(this)) {\n this._resume();\n }\n }\n }\n _resume() {\n if (G5.skipAnimation) {\n this.finish();\n } else {\n frameLoop2.start(this);\n }\n }\n /**\n * Exit the frameloop and notify `onRest` listeners.\n *\n * Always wrap `_stop` calls with `batchedUpdates`.\n */\n _stop(goal, cancel) {\n if (isAnimating(this)) {\n setActiveBit(this, false);\n const anim = this.animation;\n each2(anim.values, (node) => {\n node.done = true;\n });\n if (anim.toValues) {\n anim.onChange = anim.onPause = anim.onResume = void 0;\n }\n callFluidObservers2(this, {\n type: \"idle\",\n parent: this\n });\n const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal ?? anim.to));\n flushCalls(this._pendingCalls, result);\n if (anim.changed) {\n anim.changed = false;\n sendEvent(this, \"onRest\", result, this);\n }\n }\n }\n};\nfunction checkFinished(target, to2) {\n const goal = computeGoal(to2);\n const value = computeGoal(target.get());\n return isEqual(value, goal);\n}\nfunction createLoopUpdate(props, loop = props.loop, to2 = props.to) {\n const loopRet = callProp(loop);\n if (loopRet) {\n const overrides = loopRet !== true && inferTo(loopRet);\n const reverse = (overrides || props).reverse;\n const reset = !overrides || overrides.reset;\n return createUpdate({\n ...props,\n loop,\n // Avoid updating default props when looping.\n default: false,\n // Never loop the `pause` prop.\n pause: void 0,\n // For the \"reverse\" prop to loop as expected, the \"to\" prop\n // must be undefined. The \"reverse\" prop is ignored when the\n // \"to\" prop is an array or function.\n to: !reverse || isAsyncTo(to2) ? to2 : void 0,\n // Ignore the \"from\" prop except on reset.\n from: reset ? props.from : void 0,\n reset,\n // The \"loop\" prop can return a \"useSpring\" props object to\n // override any of the original props.\n ...overrides\n });\n }\n}\nfunction createUpdate(props) {\n const { to: to2, from } = props = inferTo(props);\n const keys = /* @__PURE__ */ new Set();\n if (is5.obj(to2))\n findDefined(to2, keys);\n if (is5.obj(from))\n findDefined(from, keys);\n props.keys = keys.size ? Array.from(keys) : null;\n return props;\n}\nfunction declareUpdate(props) {\n const update2 = createUpdate(props);\n if (is5.und(update2.default)) {\n update2.default = getDefaultProps(update2);\n }\n return update2;\n}\nfunction findDefined(values, keys) {\n eachProp3(values, (value, key) => value != null && keys.add(key));\n}\nvar ACTIVE_EVENTS = [\n \"onStart\",\n \"onRest\",\n \"onChange\",\n \"onPause\",\n \"onResume\"\n];\nfunction mergeActiveFn(target, props, type) {\n target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : void 0;\n}\nfunction sendEvent(target, type, ...args) {\n target.animation[type]?.(...args);\n target.defaultProps[type]?.(...args);\n}\n\n// src/Controller.ts\nimport {\n is as is6,\n raf as raf4,\n each as each3,\n noop,\n flush as flush2,\n toArray as toArray3,\n eachProp as eachProp4,\n flushCalls as flushCalls2,\n addFluidObserver as addFluidObserver2\n} from \"@react-spring/shared\";\nvar BATCHED_EVENTS = [\"onStart\", \"onChange\", \"onRest\"];\nvar nextId2 = 1;\nvar Controller = class {\n constructor(props, flush3) {\n this.id = nextId2++;\n /** The animated values */\n this.springs = {};\n /** The queue of props passed to the `update` method. */\n this.queue = [];\n /** The counter for tracking `scheduleProps` calls */\n this._lastAsyncId = 0;\n /** The values currently being animated */\n this._active = /* @__PURE__ */ new Set();\n /** The values that changed recently */\n this._changed = /* @__PURE__ */ new Set();\n /** Equals false when `onStart` listeners can be called */\n this._started = false;\n /** State used by the `runAsync` function */\n this._state = {\n paused: false,\n pauseQueue: /* @__PURE__ */ new Set(),\n resumeQueue: /* @__PURE__ */ new Set(),\n timeouts: /* @__PURE__ */ new Set()\n };\n /** The event queues that are flushed once per frame maximum */\n this._events = {\n onStart: /* @__PURE__ */ new Map(),\n onChange: /* @__PURE__ */ new Map(),\n onRest: /* @__PURE__ */ new Map()\n };\n this._onFrame = this._onFrame.bind(this);\n if (flush3) {\n this._flush = flush3;\n }\n if (props) {\n this.start({ default: true, ...props });\n }\n }\n /**\n * Equals `true` when no spring values are in the frameloop, and\n * no async animation is currently active.\n */\n get idle() {\n return !this._state.asyncTo && Object.values(this.springs).every((spring) => {\n return spring.idle && !spring.isDelayed && !spring.isPaused;\n });\n }\n get item() {\n return this._item;\n }\n set item(item) {\n this._item = item;\n }\n /** Get the current values of our springs */\n get() {\n const values = {};\n this.each((spring, key) => values[key] = spring.get());\n return values;\n }\n /** Set the current values without animating. */\n set(values) {\n for (const key in values) {\n const value = values[key];\n if (!is6.und(value)) {\n this.springs[key].set(value);\n }\n }\n }\n /** Push an update onto the queue of each value. */\n update(props) {\n if (props) {\n this.queue.push(createUpdate(props));\n }\n return this;\n }\n /**\n * Start the queued animations for every spring, and resolve the returned\n * promise once all queued animations have finished or been cancelled.\n *\n * When you pass a queue (instead of nothing), that queue is used instead of\n * the queued animations added with the `update` method, which are left alone.\n */\n start(props) {\n let { queue } = this;\n if (props) {\n queue = toArray3(props).map(createUpdate);\n } else {\n this.queue = [];\n }\n if (this._flush) {\n return this._flush(this, queue);\n }\n prepareKeys(this, queue);\n return flushUpdateQueue(this, queue);\n }\n /** @internal */\n stop(arg, keys) {\n if (arg !== !!arg) {\n keys = arg;\n }\n if (keys) {\n const springs = this.springs;\n each3(toArray3(keys), (key) => springs[key].stop(!!arg));\n } else {\n stopAsync(this._state, this._lastAsyncId);\n this.each((spring) => spring.stop(!!arg));\n }\n return this;\n }\n /** Freeze the active animation in time */\n pause(keys) {\n if (is6.und(keys)) {\n this.start({ pause: true });\n } else {\n const springs = this.springs;\n each3(toArray3(keys), (key) => springs[key].pause());\n }\n return this;\n }\n /** Resume the animation if paused. */\n resume(keys) {\n if (is6.und(keys)) {\n this.start({ pause: false });\n } else {\n const springs = this.springs;\n each3(toArray3(keys), (key) => springs[key].resume());\n }\n return this;\n }\n /** Call a function once per spring value */\n each(iterator) {\n eachProp4(this.springs, iterator);\n }\n /** @internal Called at the end of every animation frame */\n _onFrame() {\n const { onStart, onChange, onRest } = this._events;\n const active = this._active.size > 0;\n const changed = this._changed.size > 0;\n if (active && !this._started || changed && !this._started) {\n this._started = true;\n flush2(onStart, ([onStart2, result]) => {\n result.value = this.get();\n onStart2(result, this, this._item);\n });\n }\n const idle = !active && this._started;\n const values = changed || idle && onRest.size ? this.get() : null;\n if (changed && onChange.size) {\n flush2(onChange, ([onChange2, result]) => {\n result.value = values;\n onChange2(result, this, this._item);\n });\n }\n if (idle) {\n this._started = false;\n flush2(onRest, ([onRest2, result]) => {\n result.value = values;\n onRest2(result, this, this._item);\n });\n }\n }\n /** @internal */\n eventObserved(event) {\n if (event.type == \"change\") {\n this._changed.add(event.parent);\n if (!event.idle) {\n this._active.add(event.parent);\n }\n } else if (event.type == \"idle\") {\n this._active.delete(event.parent);\n } else\n return;\n raf4.onFrame(this._onFrame);\n }\n};\nfunction flushUpdateQueue(ctrl, queue) {\n return Promise.all(queue.map((props) => flushUpdate(ctrl, props))).then(\n (results) => getCombinedResult(ctrl, results)\n );\n}\nasync function flushUpdate(ctrl, props, isLoop) {\n const { keys, to: to2, from, loop, onRest, onResolve } = props;\n const defaults2 = is6.obj(props.default) && props.default;\n if (loop) {\n props.loop = false;\n }\n if (to2 === false)\n props.to = null;\n if (from === false)\n props.from = null;\n const asyncTo = is6.arr(to2) || is6.fun(to2) ? to2 : void 0;\n if (asyncTo) {\n props.to = void 0;\n props.onRest = void 0;\n if (defaults2) {\n defaults2.onRest = void 0;\n }\n } else {\n each3(BATCHED_EVENTS, (key) => {\n const handler = props[key];\n if (is6.fun(handler)) {\n const queue = ctrl[\"_events\"][key];\n props[key] = ({ finished, cancelled }) => {\n const result2 = queue.get(handler);\n if (result2) {\n if (!finished)\n result2.finished = false;\n if (cancelled)\n result2.cancelled = true;\n } else {\n queue.set(handler, {\n value: null,\n finished: finished || false,\n cancelled: cancelled || false\n });\n }\n };\n if (defaults2) {\n defaults2[key] = props[key];\n }\n }\n });\n }\n const state = ctrl[\"_state\"];\n if (props.pause === !state.paused) {\n state.paused = props.pause;\n flushCalls2(props.pause ? state.pauseQueue : state.resumeQueue);\n } else if (state.paused) {\n props.pause = true;\n }\n const promises = (keys || Object.keys(ctrl.springs)).map(\n (key) => ctrl.springs[key].start(props)\n );\n const cancel = props.cancel === true || getDefaultProp(props, \"cancel\") === true;\n if (asyncTo || cancel && state.asyncId) {\n promises.push(\n scheduleProps(++ctrl[\"_lastAsyncId\"], {\n props,\n state,\n actions: {\n pause: noop,\n resume: noop,\n start(props2, resolve) {\n if (cancel) {\n stopAsync(state, ctrl[\"_lastAsyncId\"]);\n resolve(getCancelledResult(ctrl));\n } else {\n props2.onRest = onRest;\n resolve(\n runAsync(\n asyncTo,\n props2,\n state,\n ctrl\n )\n );\n }\n }\n }\n })\n );\n }\n if (state.paused) {\n await new Promise((resume) => {\n state.resumeQueue.add(resume);\n });\n }\n const result = getCombinedResult(ctrl, await Promise.all(promises));\n if (loop && result.finished && !(isLoop && result.noop)) {\n const nextProps = createLoopUpdate(props, loop, to2);\n if (nextProps) {\n prepareKeys(ctrl, [nextProps]);\n return flushUpdate(ctrl, nextProps, true);\n }\n }\n if (onResolve) {\n raf4.batchedUpdates(() => onResolve(result, ctrl, ctrl.item));\n }\n return result;\n}\nfunction getSprings(ctrl, props) {\n const springs = { ...ctrl.springs };\n if (props) {\n each3(toArray3(props), (props2) => {\n if (is6.und(props2.keys)) {\n props2 = createUpdate(props2);\n }\n if (!is6.obj(props2.to)) {\n props2 = { ...props2, to: void 0 };\n }\n prepareSprings(springs, props2, (key) => {\n return createSpring(key);\n });\n });\n }\n setSprings(ctrl, springs);\n return springs;\n}\nfunction setSprings(ctrl, springs) {\n eachProp4(springs, (spring, key) => {\n if (!ctrl.springs[key]) {\n ctrl.springs[key] = spring;\n addFluidObserver2(spring, ctrl);\n }\n });\n}\nfunction createSpring(key, observer) {\n const spring = new SpringValue();\n spring.key = key;\n if (observer) {\n addFluidObserver2(spring, observer);\n }\n return spring;\n}\nfunction prepareSprings(springs, props, create) {\n if (props.keys) {\n each3(props.keys, (key) => {\n const spring = springs[key] || (springs[key] = create(key));\n spring[\"_prepareNode\"](props);\n });\n }\n}\nfunction prepareKeys(ctrl, queue) {\n each3(queue, (props) => {\n prepareSprings(ctrl.springs, props, (key) => {\n return createSpring(key, ctrl);\n });\n });\n}\n\n// src/SpringContext.tsx\nimport * as React from \"react\";\nimport { useContext } from \"react\";\nimport { useMemoOne } from \"@react-spring/shared\";\nvar SpringContext = ({\n children,\n ...props\n}) => {\n const inherited = useContext(ctx);\n const pause = props.pause || !!inherited.pause, immediate = props.immediate || !!inherited.immediate;\n props = useMemoOne(() => ({ pause, immediate }), [pause, immediate]);\n const { Provider } = ctx;\n return /* @__PURE__ */ React.createElement(Provider, { value: props }, children);\n};\nvar ctx = makeContext(SpringContext, {});\nSpringContext.Provider = ctx.Provider;\nSpringContext.Consumer = ctx.Consumer;\nfunction makeContext(target, init) {\n Object.assign(target, React.createContext(init));\n target.Provider._context = target;\n target.Consumer._context = target;\n return target;\n}\n\n// src/SpringRef.ts\nimport { each as each4, is as is7, deprecateDirectCall } from \"@react-spring/shared\";\nvar SpringRef = () => {\n const current = [];\n const SpringRef2 = function(props) {\n deprecateDirectCall();\n const results = [];\n each4(current, (ctrl, i) => {\n if (is7.und(props)) {\n results.push(ctrl.start());\n } else {\n const update2 = _getProps(props, ctrl, i);\n if (update2) {\n results.push(ctrl.start(update2));\n }\n }\n });\n return results;\n };\n SpringRef2.current = current;\n SpringRef2.add = function(ctrl) {\n if (!current.includes(ctrl)) {\n current.push(ctrl);\n }\n };\n SpringRef2.delete = function(ctrl) {\n const i = current.indexOf(ctrl);\n if (~i)\n current.splice(i, 1);\n };\n SpringRef2.pause = function() {\n each4(current, (ctrl) => ctrl.pause(...arguments));\n return this;\n };\n SpringRef2.resume = function() {\n each4(current, (ctrl) => ctrl.resume(...arguments));\n return this;\n };\n SpringRef2.set = function(values) {\n each4(current, (ctrl, i) => {\n const update2 = is7.fun(values) ? values(i, ctrl) : values;\n if (update2) {\n ctrl.set(update2);\n }\n });\n };\n SpringRef2.start = function(props) {\n const results = [];\n each4(current, (ctrl, i) => {\n if (is7.und(props)) {\n results.push(ctrl.start());\n } else {\n const update2 = this._getProps(props, ctrl, i);\n if (update2) {\n results.push(ctrl.start(update2));\n }\n }\n });\n return results;\n };\n SpringRef2.stop = function() {\n each4(current, (ctrl) => ctrl.stop(...arguments));\n return this;\n };\n SpringRef2.update = function(props) {\n each4(current, (ctrl, i) => ctrl.update(this._getProps(props, ctrl, i)));\n return this;\n };\n const _getProps = function(arg, ctrl, index) {\n return is7.fun(arg) ? arg(index, ctrl) : arg;\n };\n SpringRef2._getProps = _getProps;\n return SpringRef2;\n};\n\n// src/hooks/useSprings.ts\nfunction useSprings(length, props, deps) {\n const propsFn = is8.fun(props) && props;\n if (propsFn && !deps)\n deps = [];\n const ref = useMemo(\n () => propsFn || arguments.length == 3 ? SpringRef() : void 0,\n []\n );\n const layoutId = useRef(0);\n const forceUpdate = useForceUpdate();\n const state = useMemo(\n () => ({\n ctrls: [],\n queue: [],\n flush(ctrl, updates2) {\n const springs2 = getSprings(ctrl, updates2);\n const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs2).some((key) => !ctrl.springs[key]);\n return canFlushSync ? flushUpdateQueue(ctrl, updates2) : new Promise((resolve) => {\n setSprings(ctrl, springs2);\n state.queue.push(() => {\n resolve(flushUpdateQueue(ctrl, updates2));\n });\n forceUpdate();\n });\n }\n }),\n []\n );\n const ctrls = useRef([...state.ctrls]);\n const updates = [];\n const prevLength = usePrev(length) || 0;\n useMemo(() => {\n each5(ctrls.current.slice(length, prevLength), (ctrl) => {\n detachRefs(ctrl, ref);\n ctrl.stop(true);\n });\n ctrls.current.length = length;\n declareUpdates(prevLength, length);\n }, [length]);\n useMemo(() => {\n declareUpdates(0, Math.min(prevLength, length));\n }, deps);\n function declareUpdates(startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; i++) {\n const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush));\n const update2 = propsFn ? propsFn(i, ctrl) : props[i];\n if (update2) {\n updates[i] = declareUpdate(update2);\n }\n }\n }\n const springs = ctrls.current.map((ctrl, i) => getSprings(ctrl, updates[i]));\n const context = useContext2(SpringContext);\n const prevContext = usePrev(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect2(() => {\n layoutId.current++;\n state.ctrls = ctrls.current;\n const { queue } = state;\n if (queue.length) {\n state.queue = [];\n each5(queue, (cb) => cb());\n }\n each5(ctrls.current, (ctrl, i) => {\n ref?.add(ctrl);\n if (hasContext) {\n ctrl.start({ default: context });\n }\n const update2 = updates[i];\n if (update2) {\n replaceRef(ctrl, update2.ref);\n if (ctrl.ref) {\n ctrl.queue.push(update2);\n } else {\n ctrl.start(update2);\n }\n }\n });\n });\n useOnce(() => () => {\n each5(state.ctrls, (ctrl) => ctrl.stop(true));\n });\n const values = springs.map((x) => ({ ...x }));\n return ref ? [values, ref] : values;\n}\n\n// src/hooks/useSpring.ts\nfunction useSpring(props, deps) {\n const isFn = is9.fun(props);\n const [[values], ref] = useSprings(\n 1,\n isFn ? props : [props],\n isFn ? deps || [] : deps\n );\n return isFn || arguments.length == 2 ? [values, ref] : values;\n}\n\n// src/hooks/useSpringRef.ts\nimport { useState } from \"react\";\nvar initSpringRef = () => SpringRef();\nvar useSpringRef = () => useState(initSpringRef)[0];\n\n// src/hooks/useSpringValue.ts\nimport { useConstant, useOnce as useOnce2 } from \"@react-spring/shared\";\nvar useSpringValue = (initial, props) => {\n const springValue = useConstant(() => new SpringValue(initial, props));\n useOnce2(() => () => {\n springValue.stop();\n });\n return springValue;\n};\n\n// src/hooks/useTrail.ts\nimport { each as each6, is as is10, useIsomorphicLayoutEffect as useIsomorphicLayoutEffect3 } from \"@react-spring/shared\";\nfunction useTrail(length, propsArg, deps) {\n const propsFn = is10.fun(propsArg) && propsArg;\n if (propsFn && !deps)\n deps = [];\n let reverse = true;\n let passedRef = void 0;\n const result = useSprings(\n length,\n (i, ctrl) => {\n const props = propsFn ? propsFn(i, ctrl) : propsArg;\n passedRef = props.ref;\n reverse = reverse && props.reverse;\n return props;\n },\n // Ensure the props function is called when no deps exist.\n // This works around the 3 argument rule.\n deps || [{}]\n );\n useIsomorphicLayoutEffect3(() => {\n each6(result[1].current, (ctrl, i) => {\n const parent = result[1].current[i + (reverse ? 1 : -1)];\n replaceRef(ctrl, passedRef);\n if (ctrl.ref) {\n if (parent) {\n ctrl.update({ to: parent.springs });\n }\n return;\n }\n if (parent) {\n ctrl.start({ to: parent.springs });\n } else {\n ctrl.start();\n }\n });\n }, deps);\n if (propsFn || arguments.length == 3) {\n const ref = passedRef ?? result[1];\n ref[\"_getProps\"] = (propsArg2, ctrl, i) => {\n const props = is10.fun(propsArg2) ? propsArg2(i, ctrl) : propsArg2;\n if (props) {\n const parent = ref.current[i + (props.reverse ? 1 : -1)];\n if (parent)\n props.to = parent.springs;\n return props;\n }\n };\n return result;\n }\n return result[0];\n}\n\n// src/hooks/useTransition.tsx\nimport * as React2 from \"react\";\nimport { useContext as useContext3, useRef as useRef2, useMemo as useMemo2 } from \"react\";\nimport {\n is as is11,\n toArray as toArray4,\n useForceUpdate as useForceUpdate2,\n useOnce as useOnce3,\n usePrev as usePrev2,\n each as each7,\n useIsomorphicLayoutEffect as useIsomorphicLayoutEffect4\n} from \"@react-spring/shared\";\nfunction useTransition(data, props, deps) {\n const propsFn = is11.fun(props) && props;\n const {\n reset,\n sort,\n trail = 0,\n expires = true,\n exitBeforeEnter = false,\n onDestroyed,\n ref: propsRef,\n config: propsConfig\n } = propsFn ? propsFn() : props;\n const ref = useMemo2(\n () => propsFn || arguments.length == 3 ? SpringRef() : void 0,\n []\n );\n const items = toArray4(data);\n const transitions = [];\n const usedTransitions = useRef2(null);\n const prevTransitions = reset ? null : usedTransitions.current;\n useIsomorphicLayoutEffect4(() => {\n usedTransitions.current = transitions;\n });\n useOnce3(() => {\n each7(transitions, (t) => {\n ref?.add(t.ctrl);\n t.ctrl.ref = ref;\n });\n return () => {\n each7(usedTransitions.current, (t) => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n }\n detachRefs(t.ctrl, ref);\n t.ctrl.stop(true);\n });\n };\n });\n const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions);\n const expired = reset && usedTransitions.current || [];\n useIsomorphicLayoutEffect4(\n () => each7(expired, ({ ctrl, item, key }) => {\n detachRefs(ctrl, ref);\n callProp(onDestroyed, item, key);\n })\n );\n const reused = [];\n if (prevTransitions)\n each7(prevTransitions, (t, i) => {\n if (t.expired) {\n clearTimeout(t.expirationId);\n expired.push(t);\n } else {\n i = reused[i] = keys.indexOf(t.key);\n if (~i)\n transitions[i] = t;\n }\n });\n each7(items, (item, i) => {\n if (!transitions[i]) {\n transitions[i] = {\n key: keys[i],\n item,\n phase: \"mount\" /* MOUNT */,\n ctrl: new Controller()\n };\n transitions[i].ctrl.item = item;\n }\n });\n if (reused.length) {\n let i = -1;\n const { leave } = propsFn ? propsFn() : props;\n each7(reused, (keyIndex, prevIndex) => {\n const t = prevTransitions[prevIndex];\n if (~keyIndex) {\n i = transitions.indexOf(t);\n transitions[i] = { ...t, item: items[keyIndex] };\n } else if (leave) {\n transitions.splice(++i, 0, t);\n }\n });\n }\n if (is11.fun(sort)) {\n transitions.sort((a, b) => sort(a.item, b.item));\n }\n let delay = -trail;\n const forceUpdate = useForceUpdate2();\n const defaultProps = getDefaultProps(props);\n const changes = /* @__PURE__ */ new Map();\n const exitingTransitions = useRef2(/* @__PURE__ */ new Map());\n const forceChange = useRef2(false);\n each7(transitions, (t, i) => {\n const key = t.key;\n const prevPhase = t.phase;\n const p = propsFn ? propsFn() : props;\n let to2;\n let phase;\n const propsDelay = callProp(p.delay || 0, key);\n if (prevPhase == \"mount\" /* MOUNT */) {\n to2 = p.enter;\n phase = \"enter\" /* ENTER */;\n } else {\n const isLeave = keys.indexOf(key) < 0;\n if (prevPhase != \"leave\" /* LEAVE */) {\n if (isLeave) {\n to2 = p.leave;\n phase = \"leave\" /* LEAVE */;\n } else if (to2 = p.update) {\n phase = \"update\" /* UPDATE */;\n } else\n return;\n } else if (!isLeave) {\n to2 = p.enter;\n phase = \"enter\" /* ENTER */;\n } else\n return;\n }\n to2 = callProp(to2, t.item, i);\n to2 = is11.obj(to2) ? inferTo(to2) : { to: to2 };\n if (!to2.config) {\n const config2 = propsConfig || defaultProps.config;\n to2.config = callProp(config2, t.item, i, phase);\n }\n delay += trail;\n const payload = {\n ...defaultProps,\n // we need to add our props.delay value you here.\n delay: propsDelay + delay,\n ref: propsRef,\n immediate: p.immediate,\n // This prevents implied resets.\n reset: false,\n // Merge any phase-specific props.\n ...to2\n };\n if (phase == \"enter\" /* ENTER */ && is11.und(payload.from)) {\n const p2 = propsFn ? propsFn() : props;\n const from = is11.und(p2.initial) || prevTransitions ? p2.from : p2.initial;\n payload.from = callProp(from, t.item, i);\n }\n const { onResolve } = payload;\n payload.onResolve = (result) => {\n callProp(onResolve, result);\n const transitions2 = usedTransitions.current;\n const t2 = transitions2.find((t3) => t3.key === key);\n if (!t2)\n return;\n if (result.cancelled && t2.phase != \"update\" /* UPDATE */) {\n return;\n }\n if (t2.ctrl.idle) {\n const idle = transitions2.every((t3) => t3.ctrl.idle);\n if (t2.phase == \"leave\" /* LEAVE */) {\n const expiry = callProp(expires, t2.item);\n if (expiry !== false) {\n const expiryMs = expiry === true ? 0 : expiry;\n t2.expired = true;\n if (!idle && expiryMs > 0) {\n if (expiryMs <= 2147483647)\n t2.expirationId = setTimeout(forceUpdate, expiryMs);\n return;\n }\n }\n }\n if (idle && transitions2.some((t3) => t3.expired)) {\n exitingTransitions.current.delete(t2);\n if (exitBeforeEnter) {\n forceChange.current = true;\n }\n forceUpdate();\n }\n }\n };\n const springs = getSprings(t.ctrl, payload);\n if (phase === \"leave\" /* LEAVE */ && exitBeforeEnter) {\n exitingTransitions.current.set(t, { phase, springs, payload });\n } else {\n changes.set(t, { phase, springs, payload });\n }\n });\n const context = useContext3(SpringContext);\n const prevContext = usePrev2(context);\n const hasContext = context !== prevContext && hasProps(context);\n useIsomorphicLayoutEffect4(() => {\n if (hasContext) {\n each7(transitions, (t) => {\n t.ctrl.start({ default: context });\n });\n }\n }, [context]);\n each7(changes, (_, t) => {\n if (exitingTransitions.current.size) {\n const ind = transitions.findIndex((state) => state.key === t.key);\n transitions.splice(ind, 1);\n }\n });\n useIsomorphicLayoutEffect4(\n () => {\n each7(\n exitingTransitions.current.size ? exitingTransitions.current : changes,\n ({ phase, payload }, t) => {\n const { ctrl } = t;\n t.phase = phase;\n ref?.add(ctrl);\n if (hasContext && phase == \"enter\" /* ENTER */) {\n ctrl.start({ default: context });\n }\n if (payload) {\n replaceRef(ctrl, payload.ref);\n if ((ctrl.ref || ref) && !forceChange.current) {\n ctrl.update(payload);\n } else {\n ctrl.start(payload);\n if (forceChange.current) {\n forceChange.current = false;\n }\n }\n }\n }\n );\n },\n reset ? void 0 : deps\n );\n const renderTransitions = (render) => /* @__PURE__ */ React2.createElement(React2.Fragment, null, transitions.map((t, i) => {\n const { springs } = changes.get(t) || t.ctrl;\n const elem = render({ ...springs }, t.item, t, i);\n return elem && elem.type ? /* @__PURE__ */ React2.createElement(\n elem.type,\n {\n ...elem.props,\n key: is11.str(t.key) || is11.num(t.key) ? t.key : t.ctrl.id,\n ref: elem.ref\n }\n ) : elem;\n }));\n return ref ? [renderTransitions, ref] : renderTransitions;\n}\nvar nextKey = 1;\nfunction getKeys(items, { key, keys = key }, prevTransitions) {\n if (keys === null) {\n const reused = /* @__PURE__ */ new Set();\n return items.map((item) => {\n const t = prevTransitions && prevTransitions.find(\n (t2) => t2.item === item && t2.phase !== \"leave\" /* LEAVE */ && !reused.has(t2)\n );\n if (t) {\n reused.add(t);\n return t.key;\n }\n return nextKey++;\n });\n }\n return is11.und(keys) ? items : is11.fun(keys) ? items.map(keys) : toArray4(keys);\n}\n\n// src/hooks/useScroll.ts\nimport { each as each8, onScroll, useIsomorphicLayoutEffect as useIsomorphicLayoutEffect5 } from \"@react-spring/shared\";\nvar useScroll = ({\n container,\n ...springOptions\n} = {}) => {\n const [scrollValues, api] = useSpring(\n () => ({\n scrollX: 0,\n scrollY: 0,\n scrollXProgress: 0,\n scrollYProgress: 0,\n ...springOptions\n }),\n []\n );\n useIsomorphicLayoutEffect5(() => {\n const cleanupScroll = onScroll(\n ({ x, y }) => {\n api.start({\n scrollX: x.current,\n scrollXProgress: x.progress,\n scrollY: y.current,\n scrollYProgress: y.progress\n });\n },\n { container: container?.current || void 0 }\n );\n return () => {\n each8(Object.values(scrollValues), (value) => value.stop());\n cleanupScroll();\n };\n }, []);\n return scrollValues;\n};\n\n// src/hooks/useResize.ts\nimport { onResize, each as each9, useIsomorphicLayoutEffect as useIsomorphicLayoutEffect6 } from \"@react-spring/shared\";\nvar useResize = ({\n container,\n ...springOptions\n}) => {\n const [sizeValues, api] = useSpring(\n () => ({\n width: 0,\n height: 0,\n ...springOptions\n }),\n []\n );\n useIsomorphicLayoutEffect6(() => {\n const cleanupScroll = onResize(\n ({ width, height }) => {\n api.start({\n width,\n height,\n immediate: sizeValues.width.get() === 0 || sizeValues.height.get() === 0\n });\n },\n { container: container?.current || void 0 }\n );\n return () => {\n each9(Object.values(sizeValues), (value) => value.stop());\n cleanupScroll();\n };\n }, []);\n return sizeValues;\n};\n\n// src/hooks/useInView.ts\nimport { useRef as useRef3, useState as useState2 } from \"react\";\nimport { is as is12, useIsomorphicLayoutEffect as useIsomorphicLayoutEffect7 } from \"@react-spring/shared\";\nvar defaultThresholdOptions = {\n any: 0,\n all: 1\n};\nfunction useInView(props, args) {\n const [isInView, setIsInView] = useState2(false);\n const ref = useRef3();\n const propsFn = is12.fun(props) && props;\n const springsProps = propsFn ? propsFn() : {};\n const { to: to2 = {}, from = {}, ...restSpringProps } = springsProps;\n const intersectionArguments = propsFn ? args : props;\n const [springs, api] = useSpring(() => ({ from, ...restSpringProps }), []);\n useIsomorphicLayoutEffect7(() => {\n const element = ref.current;\n const {\n root,\n once,\n amount = \"any\",\n ...restArgs\n } = intersectionArguments ?? {};\n if (!element || once && isInView || typeof IntersectionObserver === \"undefined\")\n return;\n const activeIntersections = /* @__PURE__ */ new WeakMap();\n const onEnter = () => {\n if (to2) {\n api.start(to2);\n }\n setIsInView(true);\n const cleanup = () => {\n if (from) {\n api.start(from);\n }\n setIsInView(false);\n };\n return once ? void 0 : cleanup;\n };\n const handleIntersection = (entries) => {\n entries.forEach((entry) => {\n const onLeave = activeIntersections.get(entry.target);\n if (entry.isIntersecting === Boolean(onLeave)) {\n return;\n }\n if (entry.isIntersecting) {\n const newOnLeave = onEnter();\n if (is12.fun(newOnLeave)) {\n activeIntersections.set(entry.target, newOnLeave);\n } else {\n observer.unobserve(entry.target);\n }\n } else if (onLeave) {\n onLeave();\n activeIntersections.delete(entry.target);\n }\n });\n };\n const observer = new IntersectionObserver(handleIntersection, {\n root: root && root.current || void 0,\n threshold: typeof amount === \"number\" || Array.isArray(amount) ? amount : defaultThresholdOptions[amount],\n ...restArgs\n });\n observer.observe(element);\n return () => observer.unobserve(element);\n }, [intersectionArguments]);\n if (propsFn) {\n return [ref, springs];\n }\n return [ref, isInView];\n}\n\n// src/components/Spring.tsx\nfunction Spring({ children, ...props }) {\n return children(useSpring(props));\n}\n\n// src/components/Trail.tsx\nimport { is as is13 } from \"@react-spring/shared\";\nfunction Trail({\n items,\n children,\n ...props\n}) {\n const trails = useTrail(items.length, props);\n return items.map((item, index) => {\n const result = children(item, index);\n return is13.fun(result) ? result(trails[index]) : result;\n });\n}\n\n// src/components/Transition.tsx\nfunction Transition({\n items,\n children,\n ...props\n}) {\n return useTransition(items, props)(children);\n}\n\n// src/interpolate.ts\nimport { deprecateInterpolate as deprecateInterpolate2 } from \"@react-spring/shared\";\n\n// src/Interpolation.ts\nimport {\n is as is14,\n raf as raf5,\n each as each10,\n isEqual as isEqual2,\n toArray as toArray5,\n frameLoop as frameLoop3,\n getFluidValue as getFluidValue3,\n createInterpolator,\n Globals as G6,\n callFluidObservers as callFluidObservers3,\n addFluidObserver as addFluidObserver3,\n removeFluidObserver as removeFluidObserver2,\n hasFluidValue as hasFluidValue2\n} from \"@react-spring/shared\";\nimport {\n getAnimated as getAnimated3,\n setAnimated as setAnimated2,\n getAnimatedType as getAnimatedType2,\n getPayload as getPayload2\n} from \"@react-spring/animated\";\nvar Interpolation = class extends FrameValue {\n constructor(source, args) {\n super();\n this.source = source;\n /** Equals false when in the frameloop */\n this.idle = true;\n /** The inputs which are currently animating */\n this._active = /* @__PURE__ */ new Set();\n this.calc = createInterpolator(...args);\n const value = this._get();\n const nodeType = getAnimatedType2(value);\n setAnimated2(this, nodeType.create(value));\n }\n advance(_dt) {\n const value = this._get();\n const oldValue = this.get();\n if (!isEqual2(value, oldValue)) {\n getAnimated3(this).setValue(value);\n this._onChange(value, this.idle);\n }\n if (!this.idle && checkIdle(this._active)) {\n becomeIdle(this);\n }\n }\n _get() {\n const inputs = is14.arr(this.source) ? this.source.map(getFluidValue3) : toArray5(getFluidValue3(this.source));\n return this.calc(...inputs);\n }\n _start() {\n if (this.idle && !checkIdle(this._active)) {\n this.idle = false;\n each10(getPayload2(this), (node) => {\n node.done = false;\n });\n if (G6.skipAnimation) {\n raf5.batchedUpdates(() => this.advance());\n becomeIdle(this);\n } else {\n frameLoop3.start(this);\n }\n }\n }\n // Observe our sources only when we're observed.\n _attach() {\n let priority = 1;\n each10(toArray5(this.source), (source) => {\n if (hasFluidValue2(source)) {\n addFluidObserver3(source, this);\n }\n if (isFrameValue(source)) {\n if (!source.idle) {\n this._active.add(source);\n }\n priority = Math.max(priority, source.priority + 1);\n }\n });\n this.priority = priority;\n this._start();\n }\n // Stop observing our sources once we have no observers.\n _detach() {\n each10(toArray5(this.source), (source) => {\n if (hasFluidValue2(source)) {\n removeFluidObserver2(source, this);\n }\n });\n this._active.clear();\n becomeIdle(this);\n }\n /** @internal */\n eventObserved(event) {\n if (event.type == \"change\") {\n if (event.idle) {\n this.advance();\n } else {\n this._active.add(event.parent);\n this._start();\n }\n } else if (event.type == \"idle\") {\n this._active.delete(event.parent);\n } else if (event.type == \"priority\") {\n this.priority = toArray5(this.source).reduce(\n (highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1),\n 0\n );\n }\n }\n};\nfunction isIdle(source) {\n return source.idle !== false;\n}\nfunction checkIdle(active) {\n return !active.size || Array.from(active).every(isIdle);\n}\nfunction becomeIdle(self) {\n if (!self.idle) {\n self.idle = true;\n each10(getPayload2(self), (node) => {\n node.done = true;\n });\n callFluidObservers3(self, {\n type: \"idle\",\n parent: self\n });\n }\n}\n\n// src/interpolate.ts\nvar to = (source, ...args) => new Interpolation(source, args);\nvar interpolate = (source, ...args) => (deprecateInterpolate2(), new Interpolation(source, args));\n\n// src/globals.ts\nimport {\n Globals,\n frameLoop as frameLoop4,\n createStringInterpolator\n} from \"@react-spring/shared\";\nGlobals.assign({\n createStringInterpolator,\n to: (source, args) => new Interpolation(source, args)\n});\nvar update = frameLoop4.advance;\n\n// src/index.ts\nimport {\n createInterpolator as createInterpolator2,\n useIsomorphicLayoutEffect as useIsomorphicLayoutEffect8,\n useReducedMotion,\n easings as easings2\n} from \"@react-spring/shared\";\nexport * from \"@react-spring/types\";\nexport {\n BailSignal,\n Controller,\n FrameValue,\n Globals,\n Interpolation,\n Spring,\n SpringContext,\n SpringRef,\n SpringValue,\n Trail,\n Transition,\n config,\n createInterpolator2 as createInterpolator,\n easings2 as easings,\n inferTo,\n interpolate,\n to,\n update,\n useChain,\n useInView,\n useIsomorphicLayoutEffect8 as useIsomorphicLayoutEffect,\n useReducedMotion,\n useResize,\n useScroll,\n useSpring,\n useSpringRef,\n useSpringValue,\n useSprings,\n useTrail,\n useTransition\n};\n//# sourceMappingURL=react-spring_core.modern.mjs.map","// src/index.ts\nimport { Globals } from \"@react-spring/core\";\nimport { unstable_batchedUpdates } from \"react-dom\";\nimport { createStringInterpolator, colors } from \"@react-spring/shared\";\nimport { createHost } from \"@react-spring/animated\";\n\n// src/applyAnimatedValues.ts\nvar isCustomPropRE = /^--/;\nfunction dangerousStyleValue(name, value) {\n if (value == null || typeof value === \"boolean\" || value === \"\")\n return \"\";\n if (typeof value === \"number\" && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]))\n return value + \"px\";\n return (\"\" + value).trim();\n}\nvar attributeCache = {};\nfunction applyAnimatedValues(instance, props) {\n if (!instance.nodeType || !instance.setAttribute) {\n return false;\n }\n const isFilterElement = instance.nodeName === \"filter\" || instance.parentNode && instance.parentNode.nodeName === \"filter\";\n const {\n className,\n style,\n children,\n scrollTop,\n scrollLeft,\n viewBox,\n ...attributes\n } = props;\n const values = Object.values(attributes);\n const names = Object.keys(attributes).map(\n (name) => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace(\n /([A-Z])/g,\n // Attributes are written in dash case\n (n) => \"-\" + n.toLowerCase()\n ))\n );\n if (children !== void 0) {\n instance.textContent = children;\n }\n for (const name in style) {\n if (style.hasOwnProperty(name)) {\n const value = dangerousStyleValue(name, style[name]);\n if (isCustomPropRE.test(name)) {\n instance.style.setProperty(name, value);\n } else {\n instance.style[name] = value;\n }\n }\n }\n names.forEach((name, i) => {\n instance.setAttribute(name, values[i]);\n });\n if (className !== void 0) {\n instance.className = className;\n }\n if (scrollTop !== void 0) {\n instance.scrollTop = scrollTop;\n }\n if (scrollLeft !== void 0) {\n instance.scrollLeft = scrollLeft;\n }\n if (viewBox !== void 0) {\n instance.setAttribute(\"viewBox\", viewBox);\n }\n}\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\nvar prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);\nvar prefixes = [\"Webkit\", \"Ms\", \"Moz\", \"O\"];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => {\n prefixes.forEach((prefix) => acc[prefixKey(prefix, prop)] = acc[prop]);\n return acc;\n}, isUnitlessNumber);\n\n// src/AnimatedStyle.ts\nimport { AnimatedObject } from \"@react-spring/animated\";\nimport {\n is,\n each,\n toArray,\n eachProp,\n FluidValue,\n getFluidValue,\n callFluidObservers,\n hasFluidValue,\n addFluidObserver,\n removeFluidObserver\n} from \"@react-spring/shared\";\nvar domTransforms = /^(matrix|translate|scale|rotate|skew)/;\nvar pxTransforms = /^(translate)/;\nvar degTransforms = /^(rotate|skew)/;\nvar addUnit = (value, unit) => is.num(value) && value !== 0 ? value + unit : value;\nvar isValueIdentity = (value, id) => is.arr(value) ? value.every((v) => isValueIdentity(v, id)) : is.num(value) ? value === id : parseFloat(value) === id;\nvar AnimatedStyle = class extends AnimatedObject {\n constructor({ x, y, z, ...style }) {\n const inputs = [];\n const transforms = [];\n if (x || y || z) {\n inputs.push([x || 0, y || 0, z || 0]);\n transforms.push((xyz) => [\n `translate3d(${xyz.map((v) => addUnit(v, \"px\")).join(\",\")})`,\n // prettier-ignore\n isValueIdentity(xyz, 0)\n ]);\n }\n eachProp(style, (value, key) => {\n if (key === \"transform\") {\n inputs.push([value || \"\"]);\n transforms.push((transform) => [transform, transform === \"\"]);\n } else if (domTransforms.test(key)) {\n delete style[key];\n if (is.und(value))\n return;\n const unit = pxTransforms.test(key) ? \"px\" : degTransforms.test(key) ? \"deg\" : \"\";\n inputs.push(toArray(value));\n transforms.push(\n key === \"rotate3d\" ? ([x2, y2, z2, deg]) => [\n `rotate3d(${x2},${y2},${z2},${addUnit(deg, unit)})`,\n isValueIdentity(deg, 0)\n ] : (input) => [\n `${key}(${input.map((v) => addUnit(v, unit)).join(\",\")})`,\n isValueIdentity(input, key.startsWith(\"scale\") ? 1 : 0)\n ]\n );\n }\n });\n if (inputs.length) {\n style.transform = new FluidTransform(inputs, transforms);\n }\n super(style);\n }\n};\nvar FluidTransform = class extends FluidValue {\n constructor(inputs, transforms) {\n super();\n this.inputs = inputs;\n this.transforms = transforms;\n this._value = null;\n }\n get() {\n return this._value || (this._value = this._get());\n }\n _get() {\n let transform = \"\";\n let identity = true;\n each(this.inputs, (input, i) => {\n const arg1 = getFluidValue(input[0]);\n const [t, id] = this.transforms[i](\n is.arr(arg1) ? arg1 : input.map(getFluidValue)\n );\n transform += \" \" + t;\n identity = identity && id;\n });\n return identity ? \"none\" : transform;\n }\n // Start observing our inputs once we have an observer.\n observerAdded(count) {\n if (count == 1)\n each(\n this.inputs,\n (input) => each(\n input,\n (value) => hasFluidValue(value) && addFluidObserver(value, this)\n )\n );\n }\n // Stop observing our inputs once we have no observers.\n observerRemoved(count) {\n if (count == 0)\n each(\n this.inputs,\n (input) => each(\n input,\n (value) => hasFluidValue(value) && removeFluidObserver(value, this)\n )\n );\n }\n eventObserved(event) {\n if (event.type == \"change\") {\n this._value = null;\n }\n callFluidObservers(this, event);\n }\n};\n\n// src/primitives.ts\nvar primitives = [\n \"a\",\n \"abbr\",\n \"address\",\n \"area\",\n \"article\",\n \"aside\",\n \"audio\",\n \"b\",\n \"base\",\n \"bdi\",\n \"bdo\",\n \"big\",\n \"blockquote\",\n \"body\",\n \"br\",\n \"button\",\n \"canvas\",\n \"caption\",\n \"cite\",\n \"code\",\n \"col\",\n \"colgroup\",\n \"data\",\n \"datalist\",\n \"dd\",\n \"del\",\n \"details\",\n \"dfn\",\n \"dialog\",\n \"div\",\n \"dl\",\n \"dt\",\n \"em\",\n \"embed\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"html\",\n \"i\",\n \"iframe\",\n \"img\",\n \"input\",\n \"ins\",\n \"kbd\",\n \"keygen\",\n \"label\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"map\",\n \"mark\",\n \"menu\",\n \"menuitem\",\n \"meta\",\n \"meter\",\n \"nav\",\n \"noscript\",\n \"object\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"output\",\n \"p\",\n \"param\",\n \"picture\",\n \"pre\",\n \"progress\",\n \"q\",\n \"rp\",\n \"rt\",\n \"ruby\",\n \"s\",\n \"samp\",\n \"script\",\n \"section\",\n \"select\",\n \"small\",\n \"source\",\n \"span\",\n \"strong\",\n \"style\",\n \"sub\",\n \"summary\",\n \"sup\",\n \"table\",\n \"tbody\",\n \"td\",\n \"textarea\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"time\",\n \"title\",\n \"tr\",\n \"track\",\n \"u\",\n \"ul\",\n \"var\",\n \"video\",\n \"wbr\",\n // SVG\n \"circle\",\n \"clipPath\",\n \"defs\",\n \"ellipse\",\n \"foreignObject\",\n \"g\",\n \"image\",\n \"line\",\n \"linearGradient\",\n \"mask\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"radialGradient\",\n \"rect\",\n \"stop\",\n \"svg\",\n \"text\",\n \"tspan\"\n];\n\n// src/index.ts\nexport * from \"@react-spring/core\";\nGlobals.assign({\n batchedUpdates: unstable_batchedUpdates,\n createStringInterpolator,\n colors\n});\nvar host = createHost(primitives, {\n applyAnimatedValues,\n createAnimatedStyle: (style) => new AnimatedStyle(style),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getComponentProps: ({ scrollTop, scrollLeft, ...props }) => props\n});\nvar animated = host.animated;\nexport {\n animated as a,\n animated\n};\n//# sourceMappingURL=react-spring_web.modern.mjs.map","import{memo as t,useRef as i,useMemo as o,createContext as n,useState as r,useCallback as e,useContext as l}from\"react\";import{useSpring as a,animated as c}from\"@react-spring/web\";import{useTheme as s,useMotionConfig as h,useMeasure as u,useValueFormatter as d}from\"@nivo/core\";import{jsx as p,jsxs as y,Fragment as f}from\"react/jsx-runtime\";function v(){return v=Object.assign?Object.assign.bind():function(t){for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t},v.apply(this,arguments)}var x={pointerEvents:\"none\",position:\"absolute\",zIndex:10,top:0,left:0},m=function(t,i){return\"translate(\"+t+\"px, \"+i+\"px)\"},b=t((function(t){var o,n=t.position,r=t.anchor,e=t.children,l=s(),d=h(),y=d.animate,f=d.config,b=u(),g=b[0],w=b[1],T=i(!1),C=void 0,E=!1,P=w.width>0&&w.height>0,j=Math.round(n[0]),N=Math.round(n[1]);P&&(\"top\"===r?(j-=w.width/2,N-=w.height+14):\"right\"===r?(j+=14,N-=w.height/2):\"bottom\"===r?(j-=w.width/2,N+=14):\"left\"===r?(j-=w.width+14,N-=w.height/2):\"center\"===r&&(j-=w.width/2,N-=w.height/2),C={transform:m(j,N)},T.current||(E=!0),T.current=[j,N]);var O=a({to:C,config:f,immediate:!y||E}),V=v({},x,l.tooltip.wrapper,{transform:null!=(o=O.transform)?o:m(j,N),opacity:O.transform?1:0});return p(c.div,{ref:g,style:V,children:e})}));b.displayName=\"TooltipWrapper\";var g=t((function(t){var i=t.size,o=void 0===i?12:i,n=t.color,r=t.style;return p(\"span\",{style:v({display:\"block\",width:o,height:o,background:n},void 0===r?{}:r)})})),w=t((function(t){var i,o=t.id,n=t.value,r=t.format,e=t.enableChip,l=void 0!==e&&e,a=t.color,c=t.renderContent,h=s(),u=d(r);if(\"function\"==typeof c)i=c();else{var f=n;void 0!==u&&void 0!==f&&(f=u(f)),i=y(\"div\",{style:h.tooltip.basic,children:[l&&p(g,{color:a,style:h.tooltip.chip}),void 0!==f?y(\"span\",{children:[o,\": \",p(\"strong\",{children:\"\"+f})]}):o]})}return p(\"div\",{style:h.tooltip.container,children:i})})),T={width:\"100%\",borderCollapse:\"collapse\"},C=t((function(t){var i,o=t.title,n=t.rows,r=void 0===n?[]:n,e=t.renderContent,l=s();return r.length?(i=\"function\"==typeof e?e():y(\"div\",{children:[o&&o,p(\"table\",{style:v({},T,l.tooltip.table),children:p(\"tbody\",{children:r.map((function(t,i){return p(\"tr\",{children:t.map((function(t,i){return p(\"td\",{style:l.tooltip.tableCell,children:t},i)}))},i)}))})})]}),p(\"div\",{style:l.tooltip.container,children:i})):null}));C.displayName=\"TableTooltip\";var E=t((function(t){var i=t.x0,n=t.x1,r=t.y0,e=t.y1,l=s(),u=h(),d=u.animate,y=u.config,f=o((function(){return v({},l.crosshair.line,{pointerEvents:\"none\"})}),[l.crosshair.line]),x=a({x1:i,x2:n,y1:r,y2:e,config:y,immediate:!d});return p(c.line,v({},x,{fill:\"none\",style:f}))}));E.displayName=\"CrosshairLine\";var P=t((function(t){var i,o,n=t.width,r=t.height,e=t.type,l=t.x,a=t.y;return\"cross\"===e?(i={x0:l,x1:l,y0:0,y1:r},o={x0:0,x1:n,y0:a,y1:a}):\"top-left\"===e?(i={x0:l,x1:l,y0:0,y1:a},o={x0:0,x1:l,y0:a,y1:a}):\"top\"===e?i={x0:l,x1:l,y0:0,y1:a}:\"top-right\"===e?(i={x0:l,x1:l,y0:0,y1:a},o={x0:l,x1:n,y0:a,y1:a}):\"right\"===e?o={x0:l,x1:n,y0:a,y1:a}:\"bottom-right\"===e?(i={x0:l,x1:l,y0:a,y1:r},o={x0:l,x1:n,y0:a,y1:a}):\"bottom\"===e?i={x0:l,x1:l,y0:a,y1:r}:\"bottom-left\"===e?(i={x0:l,x1:l,y0:a,y1:r},o={x0:0,x1:l,y0:a,y1:a}):\"left\"===e?o={x0:0,x1:l,y0:a,y1:a}:\"x\"===e?i={x0:l,x1:l,y0:0,y1:r}:\"y\"===e&&(o={x0:0,x1:n,y0:a,y1:a}),y(f,{children:[i&&p(E,{x0:i.x0,x1:i.x1,y0:i.y0,y1:i.y1}),o&&p(E,{x0:o.x0,x1:o.x1,y0:o.y0,y1:o.y1})]})}));P.displayName=\"Crosshair\";var j=n({showTooltipAt:function(){},showTooltipFromEvent:function(){},hideTooltip:function(){}}),N={isVisible:!1,position:[null,null],content:null,anchor:null},O=n(N),V=function(t){var i=r(N),n=i[0],l=i[1],a=e((function(t,i,o){var n=i[0],r=i[1];void 0===o&&(o=\"top\"),l({isVisible:!0,position:[n,r],anchor:o,content:t})}),[l]),c=e((function(i,o,n){void 0===n&&(n=\"top\");var r=t.current.getBoundingClientRect(),e=t.current.offsetWidth,a=e===r.width?1:e/r.width,c=\"touches\"in o?o.touches[0]:o,s=c.clientX,h=c.clientY,u=(s-r.left)*a,d=(h-r.top)*a;\"left\"!==n&&\"right\"!==n||(n=u<r.width/2?\"right\":\"left\"),l({isVisible:!0,position:[u,d],anchor:n,content:i})}),[t,l]),s=e((function(){l(N)}),[l]);return{actions:o((function(){return{showTooltipAt:a,showTooltipFromEvent:c,hideTooltip:s}}),[a,c,s]),state:n}},k=function(){var t=l(j);if(void 0===t)throw new Error(\"useTooltip must be used within a TooltipProvider\");return t},z=function(){var t=l(O);if(void 0===t)throw new Error(\"useTooltipState must be used within a TooltipProvider\");return t},A=function(t){return t.isVisible},F=function(){var t=z();return A(t)?p(b,{position:t.position,anchor:t.anchor,children:t.content}):null},M=function(t){var i=t.container,o=t.children,n=V(i),r=n.actions,e=n.state;return p(j.Provider,{value:r,children:p(O.Provider,{value:e,children:o})})};export{w as BasicTooltip,g as Chip,P as Crosshair,C as TableTooltip,F as Tooltip,j as TooltipActionsContext,M as TooltipProvider,O as TooltipStateContext,b as TooltipWrapper,N as hiddenTooltipState,A as isVisibleTooltipState,k as useTooltip,V as useTooltipHandlers,z as useTooltipState};\n//# sourceMappingURL=nivo-tooltip.es.js.map\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default scheme => interpolateRgbBasis(scheme[scheme.length - 1]);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var baseDifference = require('./_baseDifference'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nmodule.exports = without;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const 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","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let 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 this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`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._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let 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._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let 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 this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`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._append`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._append`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._append`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(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\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; // falls through\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 array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(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","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); // falls through\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); // falls through\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; // falls through\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; // falls through\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; // falls through\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; // falls through\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; // falls through\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; // falls through\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(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","import{createContext as e,useMemo as r,useContext as t,useRef as n,useEffect as i,useState as o,cloneElement as l,useCallback as a,memo as d,createElement as s,Component as u}from\"react\";import c from\"prop-types\";import{TooltipProvider as f,Tooltip as p,useTooltipHandlers as h,TooltipActionsContext as g,TooltipStateContext as b}from\"@nivo/tooltip\";import m from\"lodash/merge\";import y from\"lodash/get\";import v from\"lodash/set\";import{interpolateString as _}from\"d3-interpolate\";import{config as w,useSpring as k,to as R,animated as x}from\"@react-spring/web\";import O from\"lodash/isString\";import{jsx as q,jsxs as C}from\"react/jsx-runtime\";import W from\"lodash/last\";import z from\"lodash/isArray\";import{scaleQuantize as T,scaleOrdinal as M,scaleSequential as P}from\"d3-scale\";import{schemeBrBG as j,schemePRGn as S,schemePiYG as B,schemePuOr as G,schemeRdBu as L,schemeRdGy as I,schemeRdYlBu as Y,schemeRdYlGn as D,schemeSpectral as A,schemeBlues as E,schemeGreens as U,schemeGreys as F,schemeOranges as X,schemePurples as N,schemeReds as H,schemeBuGn as K,schemeBuPu as V,schemeGnBu as J,schemeOrRd as Q,schemePuBuGn as Z,schemePuBu as $,schemePuRd as ee,schemeRdPu as re,schemeYlGnBu as te,schemeYlGn as ne,schemeYlOrBr as ie,schemeYlOrRd as oe,schemeCategory10 as le,schemeAccent as ae,schemeDark2 as de,schemePaired as se,schemePastel1 as ue,schemePastel2 as ce,schemeSet1 as fe,schemeSet2 as pe,schemeSet3 as he,interpolateBrBG as ge,interpolatePRGn as be,interpolatePiYG as me,interpolatePuOr as ye,interpolateRdBu as ve,interpolateRdGy as _e,interpolateRdYlBu as we,interpolateRdYlGn as ke,interpolateSpectral as Re,interpolateBlues as xe,interpolateGreens as Oe,interpolateGreys as qe,interpolateOranges as Ce,interpolatePurples as We,interpolateReds as ze,interpolateViridis as Te,interpolateInferno as Me,interpolateMagma as Pe,interpolatePlasma as je,interpolateWarm as Se,interpolateCool as Be,interpolateCubehelixDefault as Ge,interpolateBuGn as Le,interpolateBuPu as Ie,interpolateGnBu as Ye,interpolateOrRd as De,interpolatePuBuGn as Ae,interpolatePuBu as Ee,interpolatePuRd as Ue,interpolateRdPu as Fe,interpolateYlGnBu as Xe,interpolateYlGn as Ne,interpolateYlOrBr as He,interpolateYlOrRd as Ke,interpolateRainbow as Ve,interpolateSinebow as Je}from\"d3-scale-chromatic\";import Qe from\"lodash/isFunction\";import Ze from\"lodash/without\";import{curveBasis as $e,curveBasisClosed as er,curveBasisOpen as rr,curveBundle as tr,curveCardinal as nr,curveCardinalClosed as ir,curveCardinalOpen as or,curveCatmullRom as lr,curveCatmullRomClosed as ar,curveCatmullRomOpen as dr,curveLinear as sr,curveLinearClosed as ur,curveMonotoneX as cr,curveMonotoneY as fr,curveNatural as pr,curveStep as hr,curveStepAfter as gr,curveStepBefore as br,stackOrderAscending as mr,stackOrderDescending as yr,stackOrderInsideOut as vr,stackOrderNone as _r,stackOrderReverse as wr,stackOffsetExpand as kr,stackOffsetDiverging as Rr,stackOffsetNone as xr,stackOffsetSilhouette as Or,stackOffsetWiggle as qr}from\"d3-shape\";import{format as Cr}from\"d3-format\";import{timeFormat as Wr}from\"d3-time-format\";import zr from\"lodash/isPlainObject\";import Tr from\"lodash/pick\";import Mr from\"lodash/isEqual\";var Pr={background:\"transparent\",text:{fontFamily:\"sans-serif\",fontSize:11,fill:\"#333333\",outlineWidth:0,outlineColor:\"transparent\",outlineOpacity:1},axis:{domain:{line:{stroke:\"transparent\",strokeWidth:1}},ticks:{line:{stroke:\"#777777\",strokeWidth:1},text:{}},legend:{text:{fontSize:12}}},grid:{line:{stroke:\"#dddddd\",strokeWidth:1}},legends:{hidden:{symbol:{fill:\"#333333\",opacity:.6},text:{fill:\"#333333\",opacity:.6}},text:{},ticks:{line:{stroke:\"#777777\",strokeWidth:1},text:{fontSize:10}},title:{text:{}}},labels:{text:{}},markers:{lineColor:\"#000000\",lineStrokeWidth:1,text:{}},dots:{text:{}},tooltip:{container:{background:\"white\",color:\"inherit\",fontSize:\"inherit\",borderRadius:\"2px\",boxShadow:\"0 1px 2px rgba(0, 0, 0, 0.25)\",padding:\"5px 9px\"},basic:{whiteSpace:\"pre\",display:\"flex\",alignItems:\"center\"},chip:{marginRight:7},table:{},tableCell:{padding:\"3px 5px\"},tableCellValue:{fontWeight:\"bold\"}},crosshair:{line:{stroke:\"#000000\",strokeWidth:1,strokeOpacity:.75,strokeDasharray:\"6 6\"}},annotations:{text:{fontSize:13,outlineWidth:2,outlineColor:\"#ffffff\",outlineOpacity:1},link:{stroke:\"#000000\",strokeWidth:1,outlineWidth:2,outlineColor:\"#ffffff\",outlineOpacity:1},outline:{fill:\"none\",stroke:\"#000000\",strokeWidth:2,outlineWidth:2,outlineColor:\"#ffffff\",outlineOpacity:1},symbol:{fill:\"#000000\",outlineWidth:2,outlineColor:\"#ffffff\",outlineOpacity:1}}};function jr(){return jr=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},jr.apply(this,arguments)}function Sr(e,r){return Sr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},Sr(e,r)}function Br(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}var Gr=[\"axis.ticks.text\",\"axis.legend.text\",\"legends.title.text\",\"legends.text\",\"legends.ticks.text\",\"legends.title.text\",\"labels.text\",\"dots.text\",\"markers.text\",\"annotations.text\"],Lr=function(e,r){return jr({},r,e)},Ir=function(e,r){var t=m({},e,r);return Gr.forEach((function(e){v(t,e,Lr(y(t,e),t.text))})),t},Yr=e(),Dr={animate:!0,config:\"default\"},Ar=function(e){var t=e.children,n=e.animate,i=void 0===n||n,o=e.config,l=void 0===o?\"default\":o,a=r((function(){var e=O(l)?w[l]:l;return{animate:i,config:e}}),[i,l]);return q(Yr.Provider,{value:a,children:t})},Er={animate:c.bool,motionConfig:c.oneOfType([c.oneOf(Object.keys(w)),c.shape({mass:c.number,tension:c.number,friction:c.number,clamp:c.bool,precision:c.number,velocity:c.number,duration:c.number,easing:c.func})])};Ar.propTypes={children:c.node.isRequired,animate:Er.animate,config:Er.motionConfig};var Ur=function(){return t(Yr)},Fr=function(e){var t=Ur(),o=t.animate,l=t.config,a=function(e){var r=n();return i((function(){r.current=e}),[e]),r.current}(e),d=r((function(){return _(a,e)}),[a,e]),s=k({from:{value:0},to:{value:1},reset:!0,config:l,immediate:!o}).value;return R(s,d)},Xr={nivo:[\"#d76445\",\"#f47560\",\"#e8c1a0\",\"#97e3d5\",\"#61cdbb\",\"#00b0a7\"],BrBG:W(j),PRGn:W(S),PiYG:W(B),PuOr:W(G),RdBu:W(L),RdGy:W(I),RdYlBu:W(Y),RdYlGn:W(D),spectral:W(A),blues:W(E),greens:W(U),greys:W(F),oranges:W(X),purples:W(N),reds:W(H),BuGn:W(K),BuPu:W(V),GnBu:W(J),OrRd:W(Q),PuBuGn:W(Z),PuBu:W($),PuRd:W(ee),RdPu:W(re),YlGnBu:W(te),YlGn:W(ne),YlOrBr:W(ie),YlOrRd:W(oe)},Nr=Object.keys(Xr),Hr=function(e){if(Qe(e)){if(!Qe(e.domain))throw new Error(\"Provided colors should be a valid quantize scale providing a 'domain()' function\");return e}if(Xr[e])return T().range(Xr[e]);if(z(e))return T().range(e);throw new Error(\"Unable to guess quantize color scale from '\"+e+\"',\\nmust be a function or one of:\\n'\"+Nr.join(\"', '\")+\"'\")},Kr={nivo:[\"#e8c1a0\",\"#f47560\",\"#f1e15b\",\"#e8a838\",\"#61cdbb\",\"#97e3d5\"],category10:le,accent:ae,dark2:de,paired:se,pastel1:ue,pastel2:ce,set1:fe,set2:pe,set3:he,brown_blueGreen:W(j),purpleRed_green:W(S),pink_yellowGreen:W(B),purple_orange:W(G),red_blue:W(L),red_grey:W(I),red_yellow_blue:W(Y),red_yellow_green:W(D),spectral:W(A),blues:W(E),greens:W(U),greys:W(F),oranges:W(X),purples:W(N),reds:W(H),blue_green:W(K),blue_purple:W(V),green_blue:W(J),orange_red:W(Q),purple_blue_green:W(Z),purple_blue:W($),purple_red:W(ee),red_purple:W(re),yellow_green_blue:W(te),yellow_green:W(ne),yellow_orange_brown:W(ie),yellow_orange_red:W(oe)},Vr=[\"nivo\",\"category10\",\"accent\",\"dark2\",\"paired\",\"pastel1\",\"pastel2\",\"set1\",\"set2\",\"set3\",\"brown_blueGreen\",\"purpleRed_green\",\"pink_yellowGreen\",\"purple_orange\",\"red_blue\",\"red_grey\",\"red_yellow_blue\",\"red_yellow_green\",\"spectral\",\"blues\",\"greens\",\"greys\",\"oranges\",\"purples\",\"reds\",\"blue_green\",\"blue_purple\",\"green_blue\",\"orange_red\",\"purple_blue_green\",\"purple_blue\",\"purple_red\",\"red_purple\",\"yellow_green_blue\",\"yellow_green\",\"yellow_orange_brown\",\"yellow_orange_red\"],Jr={brown_blueGreen:ge,purpleRed_green:be,pink_yellowGreen:me,purple_orange:ye,red_blue:ve,red_grey:_e,red_yellow_blue:we,red_yellow_green:ke,spectral:Re,blues:xe,greens:Oe,greys:qe,oranges:Ce,purples:We,reds:ze,viridis:Te,inferno:Me,magma:Pe,plasma:je,warm:Se,cool:Be,cubehelixDefault:Ge,blue_green:Le,blue_purple:Ie,green_blue:Ye,orange_red:De,purple_blue_green:Ae,purple_blue:Ee,purple_red:Ue,red_purple:Fe,yellow_green_blue:Xe,yellow_green:Ne,yellow_orange_brown:He,yellow_orange_red:Ke,rainbow:Ve,sinebow:Je},Qr=[\"brown_blueGreen\",\"purpleRed_green\",\"pink_yellowGreen\",\"purple_orange\",\"red_blue\",\"red_grey\",\"red_yellow_blue\",\"red_yellow_green\",\"spectral\",\"blues\",\"greens\",\"greys\",\"oranges\",\"purples\",\"reds\",\"viridis\",\"inferno\",\"magma\",\"plasma\",\"warm\",\"cool\",\"cubehelixDefault\",\"blue_green\",\"blue_purple\",\"green_blue\",\"orange_red\",\"purple_blue_green\",\"purple_blue\",\"purple_red\",\"red_purple\",\"yellow_green_blue\",\"yellow_green\",\"yellow_orange_brown\",\"yellow_orange_red\",\"rainbow\",\"sinebow\"],Zr=function(){return M([\"#e8c1a0\",\"#f47560\",\"#f1e15b\",\"#e8a838\",\"#61cdbb\",\"#97e3d5\"])},$r=function(e,r){if(O(e)){var t=Kr[e];if(void 0!==t){var n=M(t);return n.type=\"ordinal\",n}if(void 0!==r&&0===e.indexOf(\"seq:\")){var i=Jr[e.slice(4)];if(void 0!==i){var o=P(i).domain(r.domain());return o.type=\"sequential\",o}}}if(z(e)){var l=M(e);return l.type=\"ordinal\",l}return function(){return e}},et=c.oneOfType([c.oneOf(Nr),c.func,c.arrayOf(c.string)]),rt={basis:$e,basisClosed:er,basisOpen:rr,bundle:tr,cardinal:nr,cardinalClosed:ir,cardinalOpen:or,catmullRom:lr,catmullRomClosed:ar,catmullRomOpen:dr,linear:sr,linearClosed:ur,monotoneX:cr,monotoneY:fr,natural:pr,step:hr,stepAfter:gr,stepBefore:br},tt=Object.keys(rt),nt=tt.filter((function(e){return e.endsWith(\"Closed\")})),it=Ze(tt,\"bundle\",\"basisClosed\",\"basisOpen\",\"cardinalClosed\",\"cardinalOpen\",\"catmullRomClosed\",\"catmullRomOpen\",\"linearClosed\"),ot=Ze(tt,\"bundle\",\"basisClosed\",\"basisOpen\",\"cardinalClosed\",\"cardinalOpen\",\"catmullRomClosed\",\"catmullRomOpen\",\"linearClosed\"),lt=function(e){if(!rt[e])throw new TypeError(\"'\"+e+\"', is not a valid curve interpolator identifier.\");return rt[e]},at={ascending:mr,descending:yr,insideOut:vr,none:_r,reverse:wr},dt=Object.keys(at),st=function(e){return at[e]},ut={expand:kr,diverging:Rr,none:xr,silhouette:Or,wiggle:qr},ct=Object.keys(ut),ft=function(e){return ut[e]},pt=c.shape({top:c.number,right:c.number,bottom:c.number,left:c.number}).isRequired,ht=[\"normal\",\"multiply\",\"screen\",\"overlay\",\"darken\",\"lighten\",\"color-dodge\",\"color-burn\",\"hard-light\",\"soft-light\",\"difference\",\"exclusion\",\"hue\",\"saturation\",\"color\",\"luminosity\"],gt=c.oneOf(ht),bt=function(e){return r((function(){return lt(e)}),[e])},mt=!0,yt=Zr,vt=M(he),_t={top:0,right:0,bottom:0,left:0},wt=function(e,t,n){return void 0===n&&(n={}),r((function(){var r=jr({},_t,n);return{margin:r,innerWidth:e-r.left-r.right,innerHeight:t-r.top-r.bottom,outerWidth:e,outerHeight:t}}),[e,t,n.top,n.right,n.bottom,n.left])},kt=function(){var e=n(null),r=o({left:0,top:0,width:0,height:0}),t=r[0],l=r[1],a=o((function(){return\"undefined\"==typeof ResizeObserver?null:new ResizeObserver((function(e){var r=e[0];return l(r.contentRect)}))}))[0];return i((function(){return e.current&&null!==a&&a.observe(e.current),function(){null!==a&&a.disconnect()}}),[]),[e,t]},Rt=function(e){return r((function(){return Ir(Pr,e)}),[e])},xt=function(e){return\"function\"==typeof e?e:\"string\"==typeof e?0===e.indexOf(\"time:\")?Wr(e.slice(\"5\")):Cr(e):function(e){return\"\"+e}},Ot=function(e){return r((function(){return xt(e)}),[e])},qt=e(),Ct={},Wt=function(e){var r=e.theme,t=void 0===r?Ct:r,n=e.children,i=Rt(t);return q(qt.Provider,{value:i,children:n})};Wt.propTypes={children:c.node.isRequired,theme:c.object};var zt=function(){return t(qt)},Tt=[\"outlineWidth\",\"outlineColor\",\"outlineOpacity\"],Mt=function(e){return e.outlineWidth,e.outlineColor,e.outlineOpacity,Br(e,Tt)},Pt=function(e){var r=e.children,t=e.condition,n=e.wrapper;return t?l(n,{},r):r};Pt.propTypes={children:c.node.isRequired,condition:c.bool.isRequired,wrapper:c.element.isRequired};var jt={position:\"relative\"},St=function(e){var r=e.children,t=e.theme,i=e.renderWrapper,o=void 0===i||i,l=e.isInteractive,a=void 0===l||l,d=e.animate,s=e.motionConfig,u=n(null);return q(Wt,{theme:t,children:q(Ar,{animate:d,config:s,children:q(f,{container:u,children:C(Pt,{condition:o,wrapper:q(\"div\",{style:jt,ref:u}),children:[r,a&&q(p,{})]})})})})};St.propTypes={children:c.element.isRequired,isInteractive:c.bool,renderWrapper:c.bool,theme:c.object,animate:c.bool,motionConfig:c.oneOfType([c.string,Er.motionConfig])};var Bt=function(){},Gt={position:\"relative\"},Lt=function(e){var t=e.children,i=e.theme,o=e.isInteractive,l=void 0===o||o,d=e.renderWrapper,s=void 0===d||d,u=e.animate,c=e.motionConfig,f=n(null),m=h(f),y=m.actions,v=m.state,_=a((function(e,r){return y.showTooltipFromEvent(e,r)}),[y.showTooltipFromEvent]),w=r((function(){return{showTooltip:l?_:Bt,hideTooltip:l?y.hideTooltip:Bt}}),[y.hideTooltip,l,_]);return q(Wt,{theme:i,children:q(Ar,{animate:u,config:c,children:q(g.Provider,{value:y,children:q(b.Provider,{value:v,children:C(Pt,{condition:s,wrapper:q(\"div\",{style:Gt,ref:f}),children:[t(w),l&&q(p,{})]})})})})})};Lt.propTypes={children:c.func.isRequired,isInteractive:c.bool,renderWrapper:c.bool,theme:c.object.isRequired,animate:c.bool.isRequired,motionConfig:c.oneOfType([c.string,Er.motionConfig])};var It=function(e){var r=e.children,t=kt(),n=t[0],i=t[1],o=i.width>0&&i.height>0;return q(\"div\",{ref:n,style:{width:\"100%\",height:\"100%\"},children:o&&r({width:i.width,height:i.height})})};It.propTypes={children:c.func.isRequired};var Yt=[\"id\",\"colors\"],Dt=function(e){var r=e.id,t=e.colors,n=Br(e,Yt);return q(\"linearGradient\",jr({id:r,x1:0,x2:0,y1:0,y2:1},n,{children:t.map((function(e){var r=e.offset,t=e.color,n=e.opacity;return q(\"stop\",{offset:r+\"%\",stopColor:t,stopOpacity:void 0!==n?n:1},r)}))}))};Dt.propTypes={id:c.string.isRequired,colors:c.arrayOf(c.shape({offset:c.number.isRequired,color:c.string.isRequired,opacity:c.number})).isRequired,gradientTransform:c.string};var At=function(e,r,t){return void 0===t&&(t={}),jr({id:e,type:\"linearGradient\",colors:r},t)},Et={linearGradient:Dt},Ut={color:\"#000000\",background:\"#ffffff\",size:4,padding:4,stagger:!1},Ft=d((function(e){var r=e.id,t=e.background,n=void 0===t?Ut.background:t,i=e.color,o=void 0===i?Ut.color:i,l=e.size,a=void 0===l?Ut.size:l,d=e.padding,s=void 0===d?Ut.padding:d,u=e.stagger,c=void 0===u?Ut.stagger:u,f=a+s,p=a/2,h=s/2;return!0===c&&(f=2*a+2*s),C(\"pattern\",{id:r,width:f,height:f,patternUnits:\"userSpaceOnUse\",children:[q(\"rect\",{width:f,height:f,fill:n}),q(\"circle\",{cx:h+p,cy:h+p,r:p,fill:o}),c&&q(\"circle\",{cx:1.5*s+a+p,cy:1.5*s+a+p,r:p,fill:o})]})}));Ft.displayName=\"PatternDots\",Ft.propTypes={id:c.string.isRequired,color:c.string.isRequired,background:c.string.isRequired,size:c.number.isRequired,padding:c.number.isRequired,stagger:c.bool.isRequired};var Xt=function(e,r){return void 0===r&&(r={}),jr({id:e,type:\"patternDots\"},r)},Nt=2*Math.PI,Ht=function(e){return e*Math.PI/180},Kt=function(e){return 180*e/Math.PI},Vt=function(e){return e.startAngle+(e.endAngle-e.startAngle)/2},Jt=function(e,r){return{x:Math.cos(e)*r,y:Math.sin(e)*r}},Qt=function(e){var r=e%360;return r<0&&(r+=360),r},Zt=function(e){return e-Nt*Math.floor((e+Math.PI)/Nt)},$t=function(e){return e<0?360- -e%360:e%360},en=function(e,r,t){void 0===t&&(t=360);var n=r;return Math.abs(r-e)>t&&(n=e+(r>e?t:-t)),[e,n]},rn={svg:{align:{left:\"start\",center:\"middle\",right:\"end\",start:\"start\",middle:\"middle\",end:\"end\"},baseline:{top:\"text-before-edge\",center:\"central\",bottom:\"alphabetic\"}},canvas:{align:{left:\"left\",center:\"center\",right:\"right\",start:\"left\",middle:\"center\",end:\"right\"},baseline:{top:\"top\",center:\"middle\",bottom:\"bottom\"}}},tn=function(e,r,t,n){void 0===n&&(n=\"svg\");var i=rn[n],o=Jt(r-Math.PI/2,e),l=o.x,a=o.y,d=Kt(r),s=i.align.center,u=i.baseline.bottom;return t>0?(s=i.align.right,u=i.baseline.center):t<0&&(s=i.align.left,u=i.baseline.center),0!==t&&d>180&&(d-=180,s=s===i.align.right?i.align.left:i.align.right),{x:l,y:a,rotate:d+=t,align:s,baseline:u}},nn={spacing:5,rotation:0,background:\"#000000\",color:\"#ffffff\",lineWidth:2},on=d((function(e){var r=e.id,t=e.spacing,n=void 0===t?nn.spacing:t,i=e.rotation,o=void 0===i?nn.rotation:i,l=e.background,a=void 0===l?nn.background:l,d=e.color,s=void 0===d?nn.color:d,u=e.lineWidth,c=void 0===u?nn.lineWidth:u,f=Math.round(o)%360,p=Math.abs(n);f>180?f-=360:f>90?f-=180:f<-180?f+=360:f<-90&&(f+=180);var h,g=p,b=p;return 0===f?h=\"\\n M 0 0 L \"+g+\" 0\\n M 0 \"+b+\" L \"+g+\" \"+b+\"\\n \":90===f?h=\"\\n M 0 0 L 0 \"+b+\"\\n M \"+g+\" 0 L \"+g+\" \"+b+\"\\n \":(g=Math.abs(p/Math.sin(Ht(f))),b=p/Math.sin(Ht(90-f)),h=f>0?\"\\n M 0 \"+-b+\" L \"+2*g+\" \"+b+\"\\n M \"+-g+\" \"+-b+\" L \"+g+\" \"+b+\"\\n M \"+-g+\" 0 L \"+g+\" \"+2*b+\"\\n \":\"\\n M \"+-g+\" \"+b+\" L \"+g+\" \"+-b+\"\\n M \"+-g+\" \"+2*b+\" L \"+2*g+\" \"+-b+\"\\n M 0 \"+2*b+\" L \"+2*g+\" 0\\n \"),C(\"pattern\",{id:r,width:g,height:b,patternUnits:\"userSpaceOnUse\",children:[q(\"rect\",{width:g,height:b,fill:a,stroke:\"rgba(255, 0, 0, 0.1)\",strokeWidth:0}),q(\"path\",{d:h,strokeWidth:c,stroke:s,strokeLinecap:\"square\"})]})}));on.displayName=\"PatternLines\",on.propTypes={id:c.string.isRequired,spacing:c.number.isRequired,rotation:c.number.isRequired,background:c.string.isRequired,color:c.string.isRequired,lineWidth:c.number.isRequired};var ln=function(e,r){return void 0===r&&(r={}),jr({id:e,type:\"patternLines\"},r)},an={color:\"#000000\",background:\"#ffffff\",size:4,padding:4,stagger:!1},dn=d((function(e){var r=e.id,t=e.color,n=void 0===t?an.color:t,i=e.background,o=void 0===i?an.background:i,l=e.size,a=void 0===l?an.size:l,d=e.padding,s=void 0===d?an.padding:d,u=e.stagger,c=void 0===u?an.stagger:u,f=a+s,p=s/2;return!0===c&&(f=2*a+2*s),C(\"pattern\",{id:r,width:f,height:f,patternUnits:\"userSpaceOnUse\",children:[q(\"rect\",{width:f,height:f,fill:o}),q(\"rect\",{x:p,y:p,width:a,height:a,fill:n}),c&&q(\"rect\",{x:1.5*s+a,y:1.5*s+a,width:a,height:a,fill:n})]})}));dn.displayName=\"PatternSquares\",dn.propTypes={id:c.string.isRequired,color:c.string.isRequired,background:c.string.isRequired,size:c.number.isRequired,padding:c.number.isRequired,stagger:c.bool.isRequired};var sn=function(e,r){return void 0===r&&(r={}),jr({id:e,type:\"patternSquares\"},r)},un={patternDots:Ft,patternLines:on,patternSquares:dn},cn=[\"type\"],fn=jr({},Et,un),pn=function(e){var r=e.defs;return!r||r.length<1?null:q(\"defs\",{\"aria-hidden\":!0,children:r.map((function(e){var r=e.type,t=Br(e,cn);return fn[r]?s(fn[r],jr({key:t.id},t)):null}))})};pn.propTypes={defs:c.arrayOf(c.shape({type:c.oneOf(Object.keys(fn)).isRequired,id:c.string.isRequired}))};var hn=d(pn),gn=function(e){var r=e.width,t=e.height,n=e.margin,i=e.defs,o=e.children,l=e.role,a=e.ariaLabel,d=e.ariaLabelledBy,s=e.ariaDescribedBy,u=e.isFocusable,c=zt();return C(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:r,height:t,role:l,\"aria-label\":a,\"aria-labelledby\":d,\"aria-describedby\":s,focusable:u,tabIndex:u?0:void 0,children:[q(hn,{defs:i}),q(\"rect\",{width:r,height:t,fill:c.background}),q(\"g\",{transform:\"translate(\"+n.left+\",\"+n.top+\")\",children:o})]})};gn.propTypes={width:c.number.isRequired,height:c.number.isRequired,margin:c.shape({top:c.number.isRequired,left:c.number.isRequired}).isRequired,defs:c.array,children:c.oneOfType([c.arrayOf(c.node),c.node]).isRequired,role:c.string,isFocusable:c.bool,ariaLabel:c.string,ariaLabelledBy:c.string,ariaDescribedBy:c.string};var bn=function(e){var r=e.size,t=e.color,n=e.borderWidth,i=e.borderColor;return q(\"circle\",{r:r/2,fill:t,stroke:i,strokeWidth:n,style:{pointerEvents:\"none\"}})};bn.propTypes={size:c.number.isRequired,color:c.string.isRequired,borderWidth:c.number.isRequired,borderColor:c.string.isRequired};var mn=d(bn),yn=function(e){var r=e.x,t=e.y,n=e.symbol,i=void 0===n?mn:n,o=e.size,l=e.datum,a=e.color,d=e.borderWidth,u=e.borderColor,c=e.label,f=e.labelTextAnchor,p=void 0===f?\"middle\":f,h=e.labelYOffset,g=void 0===h?-12:h,b=zt(),m=Ur(),y=m.animate,v=m.config,_=k({transform:\"translate(\"+r+\", \"+t+\")\",config:v,immediate:!y});return C(x.g,{transform:_.transform,style:{pointerEvents:\"none\"},children:[s(i,{size:o,color:a,datum:l,borderWidth:d,borderColor:u}),c&&q(\"text\",{textAnchor:p,y:g,style:Mt(b.dots.text),children:c})]})};yn.propTypes={x:c.number.isRequired,y:c.number.isRequired,datum:c.object.isRequired,size:c.number.isRequired,color:c.string.isRequired,borderWidth:c.number.isRequired,borderColor:c.string.isRequired,symbol:c.oneOfType([c.func,c.object]),label:c.oneOfType([c.string,c.number]),labelTextAnchor:c.oneOf([\"start\",\"middle\",\"end\"]),labelYOffset:c.number};var vn=d(yn),_n=function(e){var r=e.width,t=e.height,n=e.axis,i=e.scale,o=e.value,l=e.lineStyle,a=e.textStyle,d=e.legend,s=e.legendNode,u=e.legendPosition,c=void 0===u?\"top-right\":u,f=e.legendOffsetX,p=void 0===f?14:f,h=e.legendOffsetY,g=void 0===h?14:h,b=e.legendOrientation,m=void 0===b?\"horizontal\":b,y=zt(),v=0,_=0,w=0,k=0;if(\"y\"===n?(w=i(o),_=r):(v=i(o),k=t),d&&!s){var R=function(e){var r=e.axis,t=e.width,n=e.height,i=e.position,o=e.offsetX,l=e.offsetY,a=e.orientation,d=0,s=0,u=\"vertical\"===a?-90:0,c=\"start\";if(\"x\"===r)switch(i){case\"top-left\":d=-o,s=l,c=\"end\";break;case\"top\":s=-l,c=\"horizontal\"===a?\"middle\":\"start\";break;case\"top-right\":d=o,s=l,c=\"horizontal\"===a?\"start\":\"end\";break;case\"right\":d=o,s=n/2,c=\"horizontal\"===a?\"start\":\"middle\";break;case\"bottom-right\":d=o,s=n-l,c=\"start\";break;case\"bottom\":s=n+l,c=\"horizontal\"===a?\"middle\":\"end\";break;case\"bottom-left\":s=n-l,d=-o,c=\"horizontal\"===a?\"end\":\"start\";break;case\"left\":d=-o,s=n/2,c=\"horizontal\"===a?\"end\":\"middle\"}else switch(i){case\"top-left\":d=o,s=-l,c=\"start\";break;case\"top\":d=t/2,s=-l,c=\"horizontal\"===a?\"middle\":\"start\";break;case\"top-right\":d=t-o,s=-l,c=\"horizontal\"===a?\"end\":\"start\";break;case\"right\":d=t+o,c=\"horizontal\"===a?\"start\":\"middle\";break;case\"bottom-right\":d=t-o,s=l,c=\"end\";break;case\"bottom\":d=t/2,s=l,c=\"horizontal\"===a?\"middle\":\"end\";break;case\"bottom-left\":d=o,s=l,c=\"horizontal\"===a?\"start\":\"end\";break;case\"left\":d=-o,c=\"horizontal\"===a?\"end\":\"middle\"}return{x:d,y:s,rotation:u,textAnchor:c}}({axis:n,width:r,height:t,position:c,offsetX:p,offsetY:g,orientation:m});s=q(\"text\",{transform:\"translate(\"+R.x+\", \"+R.y+\") rotate(\"+R.rotation+\")\",textAnchor:R.textAnchor,dominantBaseline:\"central\",style:a,children:d})}return C(\"g\",{transform:\"translate(\"+v+\", \"+w+\")\",children:[q(\"line\",{x1:0,x2:_,y1:0,y2:k,stroke:y.markers.lineColor,strokeWidth:y.markers.lineStrokeWidth,style:l}),s]})};_n.propTypes={width:c.number.isRequired,height:c.number.isRequired,axis:c.oneOf([\"x\",\"y\"]).isRequired,scale:c.func.isRequired,value:c.oneOfType([c.number,c.string,c.instanceOf(Date)]).isRequired,lineStyle:c.object,textStyle:c.object,legend:c.string,legendPosition:c.oneOf([\"top-left\",\"top\",\"top-right\",\"right\",\"bottom-right\",\"bottom\",\"bottom-left\",\"left\"]),legendOffsetX:c.number.isRequired,legendOffsetY:c.number.isRequired,legendOrientation:c.oneOf([\"horizontal\",\"vertical\"]).isRequired};var wn=d(_n),kn=function(e){var r=e.markers,t=e.width,n=e.height,i=e.xScale,o=e.yScale;return r&&0!==r.length?r.map((function(e,r){return q(wn,jr({},e,{width:t,height:n,scale:\"y\"===e.axis?o:i}),r)})):null};kn.propTypes={width:c.number.isRequired,height:c.number.isRequired,xScale:c.func.isRequired,yScale:c.func.isRequired,markers:c.arrayOf(c.shape({axis:c.oneOf([\"x\",\"y\"]).isRequired,value:c.oneOfType([c.number,c.string,c.instanceOf(Date)]).isRequired,lineStyle:c.object,textStyle:c.object}))};var Rn=d(kn),xn=[\"theme\",\"renderWrapper\",\"animate\",\"motionConfig\"],On=function(e){return function(r){var t,n;function i(){return r.apply(this,arguments)||this}return n=r,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,Sr(t,n),i.prototype.render=function(){var r=this.props,t=r.theme,n=r.renderWrapper,i=r.animate,o=r.motionConfig,l=Br(r,xn);return q(St,{theme:t,renderWrapper:n,isInteractive:l.isInteractive,animate:i,motionConfig:o,children:q(e,jr({},l))})},i}(u)},qn=function(e,r){var t,n=Qe(e)?e:function(r){return y(r,e)};return r&&(t=Qe(r)?r:Cr(r)),t?function(e){return t(n(e))}:n},Cn=function(e){return Qe(e)?e:function(r){return y(r,e)}},Wn=function(e){return r((function(){return Cn(e)}),[e])},zn=[\"center\",\"top-left\",\"top\",\"top-right\",\"right\",\"bottom-right\",\"bottom\",\"bottom-left\",\"left\"],Tn=function(e,r,t){var n=r.width-e.width,i=r.height-e.height,o=0,l=0;return\"center\"===t&&(o=n/2,l=i/2),\"top\"===t&&(o=n/2),\"top-right\"===t&&(o=n),\"right\"===t&&(o=n,l=i/2),\"bottom-right\"===t&&(o=n,l=i),\"bottom\"===t&&(o=n/2,l=i),\"bottom-left\"===t&&(l=i),\"left\"===t&&(l=i/2),[o,l]},Mn=function(e,r,t,n){var i=t-e,o=n-r;return i*=i,o*=o,Math.sqrt(i+o)},Pn=function(e,r,t,n){var i=Math.atan2(n-r,t-e)-Math.PI/2;return i>0?i:2*Math.PI+i},jn=function(e,r,t,n,i,o){return e<=i&&i<=e+t&&r<=o&&o<=r+n},Sn=function(e,r){var t,n=\"touches\"in r?r.touches[0]:r,i=n.clientX,o=n.clientY,l=e.getBoundingClientRect(),a=(t=void 0!==e.getBBox?e.getBBox():{width:e.offsetWidth||0,height:e.offsetHeight||0}).width===l.width?1:t.width/l.width;return[(i-l.left)*a,(o-l.top)*a]},Bn=Object.keys(Et),Gn=Object.keys(un),Ln=function(e,r,t){if(\"*\"===e)return!0;if(Qe(e))return e(r);if(zr(e)){var n=t?y(r,t):r;return Mr(Tr(n,Object.keys(e)),e)}return!1},In=function(e,r,t,n){var i=void 0===n?{}:n,o=i.dataKey,l=i.colorKey,a=void 0===l?\"color\":l,d=i.targetKey,s=void 0===d?\"fill\":d,u=[],c={};return e.length&&r.length&&(u=[].concat(e),r.forEach((function(r){for(var n=function(){var n=t[i],l=n.id,d=n.match;if(Ln(d,r,o)){var f=e.find((function(e){return e.id===l}));if(f)if(Gn.includes(f.type))if(\"inherit\"===f.background||\"inherit\"===f.color){var p=y(r,a),h=f.background,g=f.color,b=l;\"inherit\"===f.background&&(b=b+\".bg.\"+p,h=p),\"inherit\"===f.color&&(b=b+\".fg.\"+p,g=p),v(r,s,\"url(#\"+b+\")\"),c[b]||(u.push(jr({},f,{id:b,background:h,color:g})),c[b]=1)}else v(r,s,\"url(#\"+l+\")\");else if(Bn.includes(f.type)){if(f.colors.map((function(e){return e.color})).includes(\"inherit\")){var m=y(r,a),_=l,w=jr({},f,{colors:f.colors.map((function(e,r){return\"inherit\"!==e.color?e:(_=_+\".\"+r+\".\"+m,jr({},e,{color:\"inherit\"===e.color?m:e.color}))}))});w.id=_,v(r,s,\"url(#\"+_+\")\"),c[_]||(u.push(w),c[_]=1)}else v(r,s,\"url(#\"+l+\")\")}return\"break\"}},i=0;i<t.length;i++){if(\"break\"===n())break}}))),u};export{Rn as CartesianMarkers,wn as CartesianMarkersItem,St as Container,hn as Defs,vn as DotsItem,Lt as LegacyContainer,Dt as LinearGradient,Ar as MotionConfigProvider,Ft as PatternDots,Ut as PatternDotsDefaultProps,on as PatternLines,nn as PatternLinesDefaultProps,dn as PatternSquares,an as PatternSquaresDefaultProps,It as ResponsiveWrapper,gn as SvgWrapper,Nt as TWO_PI,Wt as ThemeProvider,Qt as absoluteAngleDegrees,Zt as absoluteAngleRadians,Tn as alignBox,it as areaCurvePropKeys,In as bindDefs,gt as blendModePropType,ht as blendModes,zn as boxAlignments,en as clampArc,nt as closedCurvePropKeys,Qr as colorInterpolatorIds,Jr as colorInterpolators,Vr as colorSchemeIds,lt as curveFromProp,tt as curvePropKeys,rt as curvePropMapping,mt as defaultAnimate,yt as defaultCategoricalColors,vt as defaultColorRange,_t as defaultMargin,Pr as defaultTheme,Ht as degreesToRadians,Ir as extendDefaultTheme,Pn as getAngle,$r as getColorScale,Mn as getDistance,qn as getLabelGenerator,tn as getPolarLabelProps,Cn as getPropertyAccessor,Sn as getRelativeCursor,xt as getValueFormatter,Et as gradientTypes,Hr as guessQuantizeColorScale,Lr as inheritRootThemeText,jn as isCursorInRect,Ln as isMatchingDef,ot as lineCurvePropKeys,At as linearGradientDef,pt as marginPropType,Vt as midAngle,Yr as motionConfigContext,Dr as motionDefaultProps,Er as motionPropTypes,Zr as nivoCategoricalColors,Bt as noop,$t as normalizeAngle,Xt as patternDotsDef,ln as patternLinesDef,sn as patternSquaresDef,un as patternTypes,Jt as positionFromAngle,et as quantizeColorScalePropType,Xr as quantizeColorScales,Nr as quantizeColorScalesKeys,Kt as radiansToDegrees,Mt as sanitizeSvgTextStyle,ft as stackOffsetFromProp,ct as stackOffsetPropKeys,ut as stackOffsetPropMapping,st as stackOrderFromProp,dt as stackOrderPropKeys,at as stackOrderPropMapping,rn as textPropsByEngine,qt as themeContext,Fr as useAnimatedPath,bt as useCurveInterpolation,wt as useDimensions,kt as useMeasure,Ur as useMotionConfig,Rt as usePartialTheme,Wn as usePropertyAccessor,zt as useTheme,Ot as useValueFormatter,On as withContainer};\n//# sourceMappingURL=nivo-core.es.js.map\n","import{schemeCategory10 as e,schemeAccent as r,schemeDark2 as n,schemePaired as t,schemePastel1 as o,schemePastel2 as i,schemeSet1 as u,schemeSet2 as a,schemeSet3 as l,schemeTableau10 as c,schemeBrBG as s,schemePRGn as f,schemePiYG as p,schemePuOr as d,schemeRdBu as m,schemeRdGy as h,schemeRdYlBu as g,schemeRdYlGn as y,schemeSpectral as b,interpolateBrBG as v,interpolatePRGn as _,interpolatePiYG as w,interpolatePuOr as k,interpolateRdBu as j,interpolateRdGy as A,interpolateRdYlBu as O,interpolateRdYlGn as z,interpolateSpectral as E,schemeBlues as x,schemeGreens as I,schemeGreys as S,schemeOranges as q,schemePurples as C,schemeReds as G,schemeBuGn as R,schemeBuPu as V,schemeGnBu as P,schemeOrRd as T,schemePuBuGn as U,schemePuBu as D,schemePuRd as M,schemeRdPu as $,schemeYlGnBu as B,schemeYlGn as F,schemeYlOrBr as H,schemeYlOrRd as J,interpolateBlues as K,interpolateGreens as L,interpolateGreys as N,interpolateOranges as Q,interpolatePurples as W,interpolateReds as X,interpolateTurbo as Y,interpolateViridis as Z,interpolateInferno as ee,interpolateMagma as re,interpolatePlasma as ne,interpolateCividis as te,interpolateWarm as oe,interpolateCool as ie,interpolateCubehelixDefault as ue,interpolateBuGn as ae,interpolateBuPu as le,interpolateGnBu as ce,interpolateOrRd as se,interpolatePuBuGn as fe,interpolatePuBu as pe,interpolatePuRd as de,interpolateRdPu as me,interpolateYlGnBu as he,interpolateYlGn as ge,interpolateYlOrBr as ye,interpolateYlOrRd as be,interpolateRainbow as ve,interpolateSinebow as _e}from\"d3-scale-chromatic\";import{useMemo as we}from\"react\";import ke from\"lodash/get\";import je from\"lodash/isPlainObject\";import{rgb as Ae}from\"d3-color\";import Oe from\"prop-types\";import{scaleSequential as ze,scaleDiverging as Ee,scaleQuantize as xe,scaleLinear as Ie,scaleOrdinal as Se}from\"d3-scale\";function qe(){return qe=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e},qe.apply(this,arguments)}function Ce(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function Ge(e,r){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,r){if(e){if(\"string\"==typeof e)return Ce(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ce(e,r):void 0}}(e))||r&&e&&\"number\"==typeof e.length){n&&(e=n);var t=0;return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var Re={nivo:[\"#e8c1a0\",\"#f47560\",\"#f1e15b\",\"#e8a838\",\"#61cdbb\",\"#97e3d5\"],category10:e,accent:r,dark2:n,paired:t,pastel1:o,pastel2:i,set1:u,set2:a,set3:l,tableau10:c},Ve=Object.keys(Re),Pe={brown_blueGreen:s,purpleRed_green:f,pink_yellowGreen:p,purple_orange:d,red_blue:m,red_grey:h,red_yellow_blue:g,red_yellow_green:y,spectral:b},Te=Object.keys(Pe),Ue={brown_blueGreen:v,purpleRed_green:_,pink_yellowGreen:w,purple_orange:k,red_blue:j,red_grey:A,red_yellow_blue:O,red_yellow_green:z,spectral:E},De={blues:x,greens:I,greys:S,oranges:q,purples:C,reds:G,blue_green:R,blue_purple:V,green_blue:P,orange_red:T,purple_blue_green:U,purple_blue:D,purple_red:M,red_purple:$,yellow_green_blue:B,yellow_green:F,yellow_orange_brown:H,yellow_orange_red:J},Me=Object.keys(De),$e={blues:K,greens:L,greys:N,oranges:Q,purples:W,reds:X,turbo:Y,viridis:Z,inferno:ee,magma:re,plasma:ne,cividis:te,warm:oe,cool:ie,cubehelixDefault:ue,blue_green:ae,blue_purple:le,green_blue:ce,orange_red:se,purple_blue_green:fe,purple_blue:pe,purple_red:de,red_purple:me,yellow_green_blue:he,yellow_green:ge,yellow_orange_brown:ye,yellow_orange_red:be},Be=qe({},Re,Pe,De),Fe=Object.keys(Be),He=function(e){return Ve.includes(e)},Je=function(e){return Te.includes(e)},Ke=function(e){return Me.includes(e)},Le={rainbow:ve,sinebow:_e},Ne=qe({},Ue,$e,Le),Qe=Object.keys(Ne),We=function(e,r){if(\"function\"==typeof e)return e;if(je(e)){if(function(e){return void 0!==e.theme}(e)){if(void 0===r)throw new Error(\"Unable to use color from theme as no theme was provided\");var n=ke(r,e.theme);if(void 0===n)throw new Error(\"Color from theme is undefined at path: '\"+e.theme+\"'\");return function(){return n}}if(function(e){return void 0!==e.from}(e)){var t=function(r){return ke(r,e.from)};if(Array.isArray(e.modifiers)){for(var o,i=[],u=function(){var e=o.value,r=e[0],n=e[1];if(\"brighter\"===r)i.push((function(e){return e.brighter(n)}));else if(\"darker\"===r)i.push((function(e){return e.darker(n)}));else{if(\"opacity\"!==r)throw new Error(\"Invalid color modifier: '\"+r+\"', must be one of: 'brighter', 'darker', 'opacity'\");i.push((function(e){return e.opacity=n,e}))}},a=Ge(e.modifiers);!(o=a()).done;)u();return 0===i.length?t:function(e){return i.reduce((function(e,r){return r(e)}),Ae(t(e))).toString()}}return t}throw new Error(\"Invalid color spec, you should either specify 'theme' or 'from' when using a config object\")}return function(){return e}},Xe=function(e,r){return we((function(){return We(e,r)}),[e,r])},Ye=Oe.oneOfType([Oe.string,Oe.func,Oe.shape({theme:Oe.string.isRequired}),Oe.shape({from:Oe.string.isRequired,modifiers:Oe.arrayOf(Oe.array)})]),Ze={scheme:\"turbo\"},er=function(e,r){var n=e.minValue,t=e.maxValue,o=void 0!==n?n:r.min,i=void 0!==t?t:r.max,u=ze().domain([o,i]).clamp(!0);if(\"colors\"in e)u.range(e.colors);else if(\"interpolator\"in e)u.interpolator(e.interpolator);else{var a,l=null!=(a=e.scheme)?a:Ze.scheme;u.interpolator(Ne[l])}return u},rr=function(e,r){return we((function(){return er(e,r)}),[e,r])},nr={scheme:\"red_yellow_blue\",divergeAt:.5},tr=function(e,r){var n,t=e.minValue,o=e.maxValue,i=void 0!==t?t:r.min,u=void 0!==o?o:r.max,a=[i,i+(u-i)/2,u],l=.5-(null!=(n=e.divergeAt)?n:nr.divergeAt),c=Ee().domain(a).clamp(!0),s=function(e){return String(e)};if(\"colors\"in e)s=Ee().domain(a.map((function(e){return e-l*(u-i)}))).range(e.colors).interpolator();else if(\"interpolator\"in e)s=e.interpolator;else{var f,p=null!=(f=e.scheme)?f:nr.scheme;s=Ne[p]}return c.interpolator((function(e){return s(e+l)}))},or=function(e,r){return we((function(){return tr(e,r)}),[e,r])},ir={scheme:\"turbo\",steps:7},ur=function(e,r){var n=xe().domain(e.domain||[r.min,r.max]).nice();if(\"colors\"in e)n.range(e.colors);else{var t=e.scheme||ir.scheme,o=void 0===e.steps?ir.steps:e.steps,i=Ne[t],u=Array.from({length:o}).map((function(e,r){return i(r*(1/(o-1)))}));n.range(u)}return n},ar=function(e,r){return we((function(){return ur(e,r)}),[e,r])},lr=function(e,r){if(function(e){return\"sequential\"===e.type}(e))return er(e,r);if(function(e){return\"diverging\"===e.type}(e))return tr(e,r);if(function(e){return\"quantize\"===e.type}(e))return ur(e,r);throw new Error(\"Invalid continuous color scale config\")},cr=function(e,r){return we((function(){return lr(e,r)}),[e,r])},sr=function(e,r){void 0===r&&(r=16);var n=e.domain();if(\"thresholds\"in e){var t=[],o=Ie().domain(n).range([0,1]);return e.range().forEach((function(r,n){var i=e.invertExtent(r),u=i[0],a=i[1];t.push({key:n+\".0\",offset:o(u),stopColor:r}),t.push({key:n+\".1\",offset:o(a),stopColor:r})})),t}var i=e.copy();return 2===n.length?i.domain([0,1]):3===n.length&&i.domain([0,.5,1]),i.ticks(r).map((function(e){return{key:\"\"+e,offset:e,stopColor:\"\"+i(e)}}))},fr=function(e,r){if(\"function\"==typeof e)return e;var n=\"function\"==typeof r?r:function(e){return ke(e,r)};if(Array.isArray(e)){var t=Se(e),o=function(e){return t(n(e))};return o.scale=t,o}if(je(e)){if(function(e){return void 0!==e.datum}(e))return function(r){return ke(r,e.datum)};if(function(e){return void 0!==e.scheme}(e)){if(He(e.scheme)){var i=Se(Be[e.scheme]),u=function(e){return i(n(e))};return u.scale=i,u}if(Je(e.scheme)){if(void 0!==e.size&&(e.size<3||e.size>11))throw new Error(\"Invalid size '\"+e.size+\"' for diverging color scheme '\"+e.scheme+\"', must be between 3~11\");var a=Se(Be[e.scheme][e.size||11]),l=function(e){return a(n(e))};return l.scale=a,l}if(Ke(e.scheme)){if(void 0!==e.size&&(e.size<3||e.size>9))throw new Error(\"Invalid size '\"+e.size+\"' for sequential color scheme '\"+e.scheme+\"', must be between 3~9\");var c=Se(Be[e.scheme][e.size||9]),s=function(e){return c(n(e))};return s.scale=c,s}}throw new Error(\"Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property\")}return function(){return e}},pr=function(e,r){return we((function(){return fr(e,r)}),[e,r])};export{Ve as categoricalColorSchemeIds,Re as categoricalColorSchemes,Qe as colorInterpolatorIds,Ne as colorInterpolators,Fe as colorSchemeIds,Be as colorSchemes,sr as computeContinuousColorScaleColorStops,Le as cyclicalColorInterpolators,Ue as divergingColorInterpolators,nr as divergingColorScaleDefaults,Te as divergingColorSchemeIds,Pe as divergingColorSchemes,lr as getContinuousColorScale,tr as getDivergingColorScale,We as getInheritedColorGenerator,fr as getOrdinalColorScale,ur as getQuantizeColorScale,er as getSequentialColorScale,Ye as inheritedColorPropType,He as isCategoricalColorScheme,Je as isDivergingColorScheme,Ke as isSequentialColorScheme,ir as quantizeColorScaleDefaults,$e as sequentialColorInterpolators,Ze as sequentialColorScaleDefaults,Me as sequentialColorSchemeIds,De as sequentialColorSchemes,cr as useContinuousColorScale,or as useDivergingColorScale,Xe as useInheritedColor,pr as useOrdinalColorScale,ar as useQuantizeColorScale,rr as useSequentialColorScale};\n//# sourceMappingURL=nivo-colors.es.js.map\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(34.61 + t * (1172.33 - t * (10793.56 - t * (33300.12 - t * (38394.49 - t * 14825.05))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(23.31 + t * (557.33 + t * (1225.33 - t * (3574.96 - t * (1073.77 + t * 707.56))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))\n + \")\";\n}\n","export default function(t) {\n t = Math.max(0, Math.min(1, t));\n return \"rgb(\"\n + Math.max(0, Math.min(255, Math.round(-4.54 - t * (35.34 - t * (2381.73 - t * (6402.7 - t * (7024.72 - t * 2710.57))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(32.49 + t * (170.73 + t * (52.82 - t * (131.46 - t * (176.58 - t * 67.37))))))) + \", \"\n + Math.max(0, Math.min(255, Math.round(81.24 + t * (442.36 - t * (2482.43 - t * (6167.24 - t * (6614.94 - t * 2475.67)))))))\n + \")\";\n}\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var baseIsDate = require('./_baseIsDate'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nmodule.exports = isDate;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nmodule.exports = baseIsDate;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import n from\"lodash/uniq\";import t from\"lodash/uniqBy\";import r from\"lodash/sortBy\";import e from\"lodash/last\";import a from\"lodash/isDate\";import{utcParse as i,timeParse as o}from\"d3-time-format\";import{scaleLinear as u,scalePoint as c,scaleBand as s,scaleUtc as d,scaleTime as f,scaleLog as l,scaleSymlog as m}from\"d3-scale\";import{timeInterval as v,timeMillisecond as y,utcMillisecond as p,timeSecond as h,utcSecond as g,timeMinute as x,utcMinute as k,timeHour as T,utcHour as b,timeWeek as M,utcWeek as w,timeSunday as E,utcSunday as S,timeMonday as D,utcMonday as C,timeTuesday as U,utcTuesday as j,timeWednesday as O,utcWednesday as R,timeThursday as H,utcThursday as V,timeFriday as q,utcFriday as A,timeSaturday as B,utcSaturday as F,timeMonth as N,utcMonth as z,timeYear as I,utcYear as P}from\"d3-time\";function $(){return $=Object.assign?Object.assign.bind():function(n){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(n[e]=r[e])}return n},$.apply(this,arguments)}var G=[\"millisecond\",\"second\",\"minute\",\"hour\",\"day\",\"month\",\"year\"],J=[function(n){return n.setMilliseconds(0)},function(n){return n.setSeconds(0)},function(n){return n.setMinutes(0)},function(n){return n.setHours(0)},function(n){return n.setDate(1)},function(n){return n.setMonth(0)}],K={millisecond:[],second:J.slice(0,1),minute:J.slice(0,2),hour:J.slice(0,3),day:J.slice(0,4),month:J.slice(0,5),year:J.slice(0,6)},L=function(n){return function(t){return K[n].forEach((function(n){n(t)})),t}},Q=function(n){var t=n.format,r=void 0===t?\"native\":t,e=n.precision,a=void 0===e?\"millisecond\":e,u=n.useUTC,c=void 0===u||u,s=L(a);return function(n){if(void 0===n)return n;if(\"native\"===r||n instanceof Date)return s(n);var t=c?i(r):o(r);return s(t(n))}},W=function(n,t,r,e){var a,i,o,c,s=n.min,d=void 0===s?0:s,f=n.max,l=void 0===f?\"auto\":f,m=n.stacked,v=void 0!==m&&m,y=n.reverse,p=void 0!==y&&y,h=n.clamp,g=void 0!==h&&h,x=n.nice,k=void 0!==x&&x;\"auto\"===d?a=!0===v?null!=(i=t.minStacked)?i:0:t.min:a=d;\"auto\"===l?o=!0===v?null!=(c=t.maxStacked)?c:0:t.max:o=l;var T=u().rangeRound(\"x\"===e?[0,r]:[r,0]).domain(p?[o,a]:[a,o]).clamp(g);return!0===k?T.nice():\"number\"==typeof k&&T.nice(k),X(T,v)},X=function(n,t){void 0===t&&(t=!1);var r=n;return r.type=\"linear\",r.stacked=t,r},Y=function(n,t,r){var e=c().range([0,r]).domain(t.all);return e.type=\"point\",e},Z=function(n){var t=n;return t.type=\"point\",t},_=function(n,t,r,e){var a=n.round,i=void 0===a||a,o=s().range(\"x\"===e?[0,r]:[r,0]).domain(t.all).round(i);return nn(o)},nn=function(n){var t=n;return t.type=\"band\",t},tn=function(n,t,r){var e,a,i=n.format,o=void 0===i?\"native\":i,u=n.precision,c=void 0===u?\"millisecond\":u,s=n.min,l=void 0===s?\"auto\":s,m=n.max,v=void 0===m?\"auto\":m,y=n.useUTC,p=void 0===y||y,h=n.nice,g=void 0!==h&&h,x=Q({format:o,precision:c,useUTC:p});e=\"auto\"===l?x(t.min):\"native\"!==o?x(l):l,a=\"auto\"===v?x(t.max):\"native\"!==o?x(v):v;var k=p?d():f();k.range([0,r]),e&&a&&k.domain([e,a]),!0===g?k.nice():\"object\"!=typeof g&&\"number\"!=typeof g||k.nice(g);var T=k;return T.type=\"time\",T.useUTC=p,T},rn=function(n,t,r,e){var a,i=n.base,o=void 0===i?10:i,u=n.min,c=void 0===u?\"auto\":u,s=n.max,d=void 0===s?\"auto\":s;if(t.all.some((function(n){return 0===n})))throw new Error(\"a log scale domain must not include or cross zero\");var f,m,v=!1;if(t.all.filter((function(n){return null!=n})).forEach((function(n){v||(void 0===a?a=Math.sign(n):Math.sign(n)!==a&&(v=!0))})),v)throw new Error(\"a log scale domain must be strictly-positive or strictly-negative\");f=\"auto\"===c?t.min:c,m=\"auto\"===d?t.max:d;var y=l().domain([f,m]).rangeRound(\"x\"===e?[0,r]:[r,0]).base(o).nice();return y.type=\"log\",y},en=function(n,t,r,e){var a,i,o=n.constant,u=void 0===o?1:o,c=n.min,s=void 0===c?\"auto\":c,d=n.max,f=void 0===d?\"auto\":d,l=n.reverse,v=void 0!==l&&l;a=\"auto\"===s?t.min:s,i=\"auto\"===f?t.max:f;var y=m().constant(u).rangeRound(\"x\"===e?[0,r]:[r,0]).nice();!0===v?y.domain([i,a]):y.domain([a,i]);var p=y;return p.type=\"symlog\",p},an=function(n){return\"x\"===n?\"y\":\"x\"},on=function(n,t){return n===t},un=function(n,t){return n.getTime()===t.getTime()};function cn(n,t,r,e){switch(n.type){case\"linear\":return W(n,t,r,e);case\"point\":return Y(n,t,r);case\"band\":return _(n,t,r,e);case\"time\":return tn(n,t,r);case\"log\":return rn(n,t,r,e);case\"symlog\":return en(n,t,r,e);default:throw new Error(\"invalid scale spec\")}}var sn=function(n,t,r){var e;if(\"stacked\"in r&&r.stacked){var a=n.data[\"x\"===t?\"xStacked\":\"yStacked\"];return null==a?null:r(a)}return null!=(e=r(n.data[t]))?e:null},dn=function(n,t,r,e,a){var i=n.map((function(n){return function(n){return $({},n,{data:n.data.map((function(n){return{data:$({},n)}}))})}(n)})),o=fn(i,t,r);\"stacked\"in t&&!0===t.stacked&&vn(o,i),\"stacked\"in r&&!0===r.stacked&&yn(o,i);var u=cn(t,o.x,e,\"x\"),c=cn(r,o.y,a,\"y\"),s=i.map((function(n){return $({},n,{data:n.data.map((function(n){return $({},n,{position:{x:sn(n,\"x\",u),y:sn(n,\"y\",c)}})}))})}));return $({},o,{series:s,xScale:u,yScale:c})},fn=function(n,t,r){return{x:ln(n,\"x\",t),y:ln(n,\"y\",r)}},ln=function(a,i,o,u){var c=void 0===u?{}:u,s=c.getValue,d=void 0===s?function(n){return n.data[i]}:s,f=c.setValue,l=void 0===f?function(n,t){n.data[i]=t}:f;if(\"linear\"===o.type)a.forEach((function(n){n.data.forEach((function(n){var t=d(n);t&&l(n,parseFloat(String(t)))}))}));else if(\"time\"===o.type&&\"native\"!==o.format){var m=Q(o);a.forEach((function(n){n.data.forEach((function(n){var t=d(n);t&&l(n,m(t))}))}))}var v=[];switch(a.forEach((function(n){n.data.forEach((function(n){v.push(d(n))}))})),o.type){case\"linear\":var y=r(n(v).filter((function(n){return null!==n})),(function(n){return n}));return{all:y,min:Math.min.apply(Math,y),max:Math.max.apply(Math,y)};case\"time\":var p=t(v,(function(n){return n.getTime()})).slice(0).sort((function(n,t){return t.getTime()-n.getTime()})).reverse();return{all:p,min:p[0],max:e(p)};default:var h=n(v);return{all:h,min:h[0],max:e(h)}}},mn=function(n,t,r){var i=an(n),o=[];t[i].all.forEach((function(t){var u=a(t)?un:on,c=[];r.forEach((function(r){var a=r.data.find((function(n){return u(n.data[i],t)})),s=null,d=null;if(void 0!==a){if(null!==(s=a.data[n])){var f=e(c);void 0===f?d=s:null!==f&&(d=f+s)}a.data[\"x\"===n?\"xStacked\":\"yStacked\"]=d}c.push(d),null!==d&&o.push(d)}))})),t[n].minStacked=Math.min.apply(Math,o),t[n].maxStacked=Math.max.apply(Math,o)},vn=function(n,t){return mn(\"x\",n,t)},yn=function(n,t){return mn(\"y\",n,t)},pn=function(n){var t=n.bandwidth();if(0===t)return n;var r=t/2;return n.round()&&(r=Math.round(r)),function(t){var e;return(null!=(e=n(t))?e:0)+r}},hn={millisecond:[y,p],second:[h,g],minute:[x,k],hour:[T,b],day:[v((function(n){return n.setHours(0,0,0,0)}),(function(n,t){return n.setDate(n.getDate()+t)}),(function(n,t){return(t.getTime()-n.getTime())/864e5}),(function(n){return Math.floor(n.getTime()/864e5)})),v((function(n){return n.setUTCHours(0,0,0,0)}),(function(n,t){return n.setUTCDate(n.getUTCDate()+t)}),(function(n,t){return(t.getTime()-n.getTime())/864e5}),(function(n){return Math.floor(n.getTime()/864e5)}))],week:[M,w],sunday:[E,S],monday:[D,C],tuesday:[U,j],wednesday:[O,R],thursday:[H,V],friday:[q,A],saturday:[B,F],month:[N,z],year:[I,P]},gn=Object.keys(hn),xn=new RegExp(\"^every\\\\s*(\\\\d+)?\\\\s*(\"+gn.join(\"|\")+\")s?$\",\"i\"),kn=function(n,t){if(Array.isArray(t))return t;if(\"string\"==typeof t&&\"useUTC\"in n){var r=t.match(xn);if(r){var e=r[1],a=r[2],i=hn[a][n.useUTC?1:0];if(\"day\"===a){var o,u,c=n.domain(),s=c[0],d=c[1],f=new Date(d);return f.setDate(f.getDate()+1),null!=(o=null==(u=i.every(Number(null!=e?e:1)))?void 0:u.range(s,f))?o:[]}if(void 0===e)return n.ticks(i);var l=i.every(Number(e));if(l)return n.ticks(l)}throw new Error(\"Invalid tickValues: \"+t)}if(\"ticks\"in n){if(void 0===t)return n.ticks();if(\"number\"==typeof(m=t)&&isFinite(m)&&Math.floor(m)===m)return n.ticks(t)}var m;return n.domain()};export{nn as castBandScale,X as castLinearScale,Z as castPointScale,pn as centerScale,un as compareDateValues,on as compareValues,cn as computeScale,dn as computeXYScalesForSeries,_ as createBandScale,Q as createDateNormalizer,W as createLinearScale,rn as createLogScale,Y as createPointScale,L as createPrecisionMethod,en as createSymlogScale,tn as createTimeScale,ln as generateSeriesAxis,fn as generateSeriesXY,an as getOtherAxis,kn as getScaleTicks,J as precisionCutOffs,K as precisionCutOffsByType,mn as stackAxis,G as timePrecisions};\n//# sourceMappingURL=nivo-scales.es.js.map\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import*as t from\"react\";import{memo as e,useMemo as i,useCallback as n,createElement as r}from\"react\";import{textPropsByEngine as a,useTheme as o,sanitizeSvgTextStyle as l,useMotionConfig as s,degreesToRadians as c}from\"@nivo/core\";import{animated as f,useSpring as u,useTransition as d}from\"@react-spring/web\";import{timeFormat as x}from\"d3-time-format\";import{format as m}from\"d3-format\";import{getScaleTicks as y,centerScale as h}from\"@nivo/scales\";import{jsxs as k,jsx as g,Fragment as v}from\"react/jsx-runtime\";function p(){return p=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t},p.apply(this,arguments)}var b=function(t){var e,i=t.axis,n=t.scale,r=t.ticksPosition,o=t.tickValues,l=t.tickSize,s=t.tickPadding,c=t.tickRotation,f=t.truncateTickAt,u=t.engine,d=void 0===u?\"svg\":u,x=y(n,o),m=a[d],k=\"bandwidth\"in n?h(n):n,g={lineX:0,lineY:0},v={textX:0,textY:0},b=\"object\"==typeof document&&\"rtl\"===document.dir,P=m.align.center,T=m.baseline.center;\"x\"===i?(e=function(t){var e;return{x:null!=(e=k(t))?e:0,y:0}},g.lineY=l*(\"after\"===r?1:-1),v.textY=(l+s)*(\"after\"===r?1:-1),T=\"after\"===r?m.baseline.top:m.baseline.bottom,0===c?P=m.align.center:\"after\"===r&&c<0||\"before\"===r&&c>0?(P=m.align[b?\"left\":\"right\"],T=m.baseline.center):(\"after\"===r&&c>0||\"before\"===r&&c<0)&&(P=m.align[b?\"right\":\"left\"],T=m.baseline.center)):(e=function(t){var e;return{x:0,y:null!=(e=k(t))?e:0}},g.lineX=l*(\"after\"===r?1:-1),v.textX=(l+s)*(\"after\"===r?1:-1),P=\"after\"===r?m.align.left:m.align.right);return{ticks:x.map((function(t){var i=\"string\"==typeof t?function(t){var e=String(t).length;return f&&f>0&&e>f?\"\"+String(t).slice(0,f).concat(\"...\"):\"\"+t}(t):t;return p({key:t instanceof Date?\"\"+t.valueOf():\"\"+t,value:i},e(t),g,v)})),textAlign:P,textBaseline:T}},P=function(t,e){if(void 0===t||\"function\"==typeof t)return t;if(\"time\"===e.type){var i=x(t);return function(t){return i(t instanceof Date?t:new Date(t))}}return m(t)},T=function(t){var e,i=t.width,n=t.height,r=t.scale,a=t.axis,o=t.values,l=(e=o,Array.isArray(e)?o:void 0)||y(r,o),s=\"bandwidth\"in r?h(r):r,c=\"x\"===a?l.map((function(t){var e,i;return{key:t instanceof Date?\"\"+t.valueOf():\"\"+t,x1:null!=(e=s(t))?e:0,x2:null!=(i=s(t))?i:0,y1:0,y2:n}})):l.map((function(t){var e,n;return{key:t instanceof Date?\"\"+t.valueOf():\"\"+t,x1:0,x2:i,y1:null!=(e=s(t))?e:0,y2:null!=(n=s(t))?n:0}}));return c},A=e((function(t){var e,n=t.value,r=t.format,a=t.lineX,s=t.lineY,c=t.onClick,u=t.textBaseline,d=t.textAnchor,x=t.animatedProps,m=o(),y=m.axis.ticks.line,h=m.axis.ticks.text,v=null!=(e=null==r?void 0:r(n))?e:n,b=i((function(){var t={opacity:x.opacity};return c?{style:p({},t,{cursor:\"pointer\"}),onClick:function(t){return c(t,v)}}:{style:t}}),[x.opacity,c,v]);return k(f.g,p({transform:x.transform},b,{children:[g(\"line\",{x1:0,x2:a,y1:0,y2:s,style:y}),h.outlineWidth>0&&g(f.text,{dominantBaseline:u,textAnchor:d,transform:x.textTransform,style:h,strokeWidth:2*h.outlineWidth,stroke:h.outlineColor,strokeLinejoin:\"round\",children:\"\"+v}),g(f.text,{dominantBaseline:u,textAnchor:d,transform:x.textTransform,style:l(h),children:\"\"+v})]}))})),S=function(e){var r=e.axis,a=e.scale,l=e.x,c=void 0===l?0:l,x=e.y,m=void 0===x?0:x,y=e.length,h=e.ticksPosition,T=e.tickValues,S=e.tickSize,W=void 0===S?5:S,w=e.tickPadding,B=void 0===w?5:w,X=e.tickRotation,Y=void 0===X?0:X,C=e.format,O=e.renderTick,j=void 0===O?A:O,z=e.truncateTickAt,V=e.legend,D=e.legendPosition,R=void 0===D?\"end\":D,E=e.legendOffset,q=void 0===E?0:E,F=e.onClick,L=e.ariaHidden,N=o(),H=N.axis.legend.text,I=i((function(){return P(C,a)}),[C,a]),J=b({axis:r,scale:a,ticksPosition:h,tickValues:T,tickSize:W,tickPadding:B,tickRotation:Y,truncateTickAt:z}),G=J.ticks,K=J.textAlign,M=J.textBaseline,Q=null;if(void 0!==V){var U,Z=0,$=0,_=0;\"y\"===r?(_=-90,Z=q,\"start\"===R?(U=\"start\",$=y):\"middle\"===R?(U=\"middle\",$=y/2):\"end\"===R&&(U=\"end\")):($=q,\"start\"===R?U=\"start\":\"middle\"===R?(U=\"middle\",Z=y/2):\"end\"===R&&(U=\"end\",Z=y)),Q=k(v,{children:[H.outlineWidth>0&&g(\"text\",{transform:\"translate(\"+Z+\", \"+$+\") rotate(\"+_+\")\",textAnchor:U,style:p({dominantBaseline:\"central\"},H),strokeWidth:2*H.outlineWidth,stroke:H.outlineColor,strokeLinejoin:\"round\",children:V}),g(\"text\",{transform:\"translate(\"+Z+\", \"+$+\") rotate(\"+_+\")\",textAnchor:U,style:p({dominantBaseline:\"central\"},H),children:V})]})}var tt=s(),et=tt.animate,it=tt.config,nt=u({transform:\"translate(\"+c+\",\"+m+\")\",lineX2:\"x\"===r?y:0,lineY2:\"x\"===r?0:y,config:it,immediate:!et}),rt=n((function(t){return{opacity:1,transform:\"translate(\"+t.x+\",\"+t.y+\")\",textTransform:\"translate(\"+t.textX+\",\"+t.textY+\") rotate(\"+Y+\")\"}}),[Y]),at=n((function(t){return{opacity:0,transform:\"translate(\"+t.x+\",\"+t.y+\")\",textTransform:\"translate(\"+t.textX+\",\"+t.textY+\") rotate(\"+Y+\")\"}}),[Y]),ot=d(G,{keys:function(t){return t.key},initial:rt,from:at,enter:rt,update:rt,leave:{opacity:0},config:it,immediate:!et});return k(f.g,{transform:nt.transform,\"aria-hidden\":L,children:[ot((function(e,i,n,r){return t.createElement(j,p({tickIndex:r,format:I,rotate:Y,textBaseline:M,textAnchor:K,truncateTickAt:z,animatedProps:e},i,F?{onClick:F}:{}))})),g(f.line,{style:N.axis.domain.line,x1:0,x2:nt.lineX2,y1:0,y2:nt.lineY2}),Q]})},W=e(S),w=[\"top\",\"right\",\"bottom\",\"left\"],B=e((function(t){var e=t.xScale,i=t.yScale,n=t.width,r=t.height,a={top:t.top,right:t.right,bottom:t.bottom,left:t.left};return g(v,{children:w.map((function(t){var o=a[t];if(!o)return null;var l=\"top\"===t||\"bottom\"===t;return g(W,p({},o,{axis:l?\"x\":\"y\",x:\"right\"===t?n:0,y:\"bottom\"===t?r:0,scale:l?e:i,length:l?n:r,ticksPosition:\"top\"===t||\"left\"===t?\"before\":\"after\",truncateTickAt:o.truncateTickAt}),t)}))})})),X=e((function(t){var e=t.animatedProps,i=o();return g(f.line,p({},e,i.grid.line))})),Y=e((function(t){var e=t.lines,i=s(),n=i.animate,a=i.config,o=d(e,{keys:function(t){return t.key},initial:function(t){return{opacity:1,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2}},from:function(t){return{opacity:0,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2}},enter:function(t){return{opacity:1,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2}},update:function(t){return{opacity:1,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2}},leave:{opacity:0},config:a,immediate:!n});return g(\"g\",{children:o((function(t,e){return r(X,p({},e,{key:e.key,animatedProps:t}))}))})})),C=e((function(t){var e=t.width,n=t.height,r=t.xScale,a=t.yScale,o=t.xValues,l=t.yValues,s=i((function(){return!!r&&T({width:e,height:n,scale:r,axis:\"x\",values:o})}),[r,o,e,n]),c=i((function(){return!!a&&T({width:e,height:n,scale:a,axis:\"y\",values:l})}),[n,e,a,l]);return k(v,{children:[s&&g(Y,{lines:s}),c&&g(Y,{lines:c})]})})),O=function(t,e){var i,n=e.axis,r=e.scale,a=e.x,o=void 0===a?0:a,l=e.y,s=void 0===l?0:l,f=e.length,u=e.ticksPosition,d=e.tickValues,x=e.tickSize,m=void 0===x?5:x,y=e.tickPadding,h=void 0===y?5:y,k=e.tickRotation,g=void 0===k?0:k,v=e.format,p=e.legend,P=e.legendPosition,T=void 0===P?\"end\":P,A=e.legendOffset,S=void 0===A?0:A,W=e.theme,w=b({axis:n,scale:r,ticksPosition:u,tickValues:d,tickSize:m,tickPadding:h,tickRotation:g,engine:\"canvas\"}),B=w.ticks,X=w.textAlign,Y=w.textBaseline;t.save(),t.translate(o,s),t.textAlign=X,t.textBaseline=Y;var C=W.axis.ticks.text;t.font=(C.fontWeight?C.fontWeight+\" \":\"\")+C.fontSize+\"px \"+C.fontFamily,(null!=(i=W.axis.domain.line.strokeWidth)?i:0)>0&&(t.lineWidth=Number(W.axis.domain.line.strokeWidth),t.lineCap=\"square\",W.axis.domain.line.stroke&&(t.strokeStyle=W.axis.domain.line.stroke),t.beginPath(),t.moveTo(0,0),t.lineTo(\"x\"===n?f:0,\"x\"===n?0:f),t.stroke());var O=\"function\"==typeof v?v:function(t){return\"\"+t};if(B.forEach((function(e){var i;(null!=(i=W.axis.ticks.line.strokeWidth)?i:0)>0&&(t.lineWidth=Number(W.axis.ticks.line.strokeWidth),t.lineCap=\"square\",W.axis.ticks.line.stroke&&(t.strokeStyle=W.axis.ticks.line.stroke),t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(e.x+e.lineX,e.y+e.lineY),t.stroke());var n=O(e.value);t.save(),t.translate(e.x+e.textX,e.y+e.textY),t.rotate(c(g)),C.outlineWidth>0&&(t.strokeStyle=C.outlineColor,t.lineWidth=2*C.outlineWidth,t.lineJoin=\"round\",t.strokeText(\"\"+n,0,0)),W.axis.ticks.text.fill&&(t.fillStyle=C.fill),t.fillText(\"\"+n,0,0),t.restore()})),void 0!==p){var j=0,z=0,V=0,D=\"center\";\"y\"===n?(V=-90,j=S,\"start\"===T?(D=\"start\",z=f):\"middle\"===T?(D=\"center\",z=f/2):\"end\"===T&&(D=\"end\")):(z=S,\"start\"===T?D=\"start\":\"middle\"===T?(D=\"center\",j=f/2):\"end\"===T&&(D=\"end\",j=f)),t.translate(j,z),t.rotate(c(V)),t.font=(W.axis.legend.text.fontWeight?W.axis.legend.text.fontWeight+\" \":\"\")+W.axis.legend.text.fontSize+\"px \"+W.axis.legend.text.fontFamily,W.axis.legend.text.fill&&(t.fillStyle=W.axis.legend.text.fill),t.textAlign=D,t.textBaseline=\"middle\",t.fillText(p,0,0)}t.restore()},j=function(t,e){var i=e.xScale,n=e.yScale,r=e.width,a=e.height,o=e.top,l=e.right,s=e.bottom,c=e.left,f=e.theme,u={top:o,right:l,bottom:s,left:c};w.forEach((function(e){var o=u[e];if(!o)return null;var l=\"top\"===e||\"bottom\"===e,s=\"top\"===e||\"left\"===e?\"before\":\"after\",c=l?i:n,d=P(o.format,c);O(t,p({},o,{axis:l?\"x\":\"y\",x:\"right\"===e?r:0,y:\"bottom\"===e?a:0,scale:c,format:d,length:l?r:a,ticksPosition:s,theme:f}))}))},z=function(t,e){var i=e.width,n=e.height,r=e.scale,a=e.axis,o=e.values;T({width:i,height:n,scale:r,axis:a,values:o}).forEach((function(e){t.beginPath(),t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.stroke()}))};export{B as Axes,W as Axis,A as AxisTick,C as Grid,X as GridLine,Y as GridLines,S as NonMemoizedAxis,w as positions,j as renderAxesToCanvas,O as renderAxisToCanvas,z as renderGridLinesToCanvas};\n//# sourceMappingURL=nivo-axes.es.js.map\n","import{jsx as t,jsxs as e}from\"react/jsx-runtime\";import{scaleLinear as i}from\"d3-scale\";import{getValueFormatter as n,useTheme as o,sanitizeSvgTextStyle as r,degreesToRadians as l}from\"@nivo/core\";import{computeContinuousColorScaleColorStops as a}from\"@nivo/colors\";import*as c from\"react\";import{Fragment as d,useState as s,useCallback as h,useMemo as g}from\"react\";var f=function(e){var i=e.x,n=e.y,o=e.size,r=e.fill,l=e.opacity,a=void 0===l?1:l,c=e.borderWidth,d=void 0===c?0:c,s=e.borderColor;return t(\"circle\",{r:o/2,cx:i+o/2,cy:n+o/2,fill:r,opacity:a,strokeWidth:d,stroke:void 0===s?\"transparent\":s,style:{pointerEvents:\"none\"}})},m=function(e){var i=e.x,n=e.y,o=e.size,r=e.fill,l=e.opacity,a=void 0===l?1:l,c=e.borderWidth,d=void 0===c?0:c,s=e.borderColor;return t(\"g\",{transform:\"translate(\"+i+\",\"+n+\")\",children:t(\"path\",{d:\"\\n M\"+o/2+\" 0\\n L\"+.8*o+\" \"+o/2+\"\\n L\"+o/2+\" \"+o+\"\\n L\"+.2*o+\" \"+o/2+\"\\n L\"+o/2+\" 0\\n \",fill:r,opacity:a,strokeWidth:d,stroke:void 0===s?\"transparent\":s,style:{pointerEvents:\"none\"}})})},v=function(e){var i=e.x,n=e.y,o=e.size,r=e.fill,l=e.opacity,a=void 0===l?1:l,c=e.borderWidth,d=void 0===c?0:c,s=e.borderColor;return t(\"rect\",{x:i,y:n,fill:r,opacity:a,strokeWidth:d,stroke:void 0===s?\"transparent\":s,width:o,height:o,style:{pointerEvents:\"none\"}})},u=function(e){var i=e.x,n=e.y,o=e.size,r=e.fill,l=e.opacity,a=void 0===l?1:l,c=e.borderWidth,d=void 0===c?0:c,s=e.borderColor;return t(\"g\",{transform:\"translate(\"+i+\",\"+n+\")\",children:t(\"path\",{d:\"\\n M\"+o/2+\" 0\\n L\"+o+\" \"+o+\"\\n L0 \"+o+\"\\n L\"+o/2+\" 0\\n \",fill:r,opacity:a,strokeWidth:d,stroke:void 0===s?\"transparent\":s,style:{pointerEvents:\"none\"}})})};function p(){return p=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t},p.apply(this,arguments)}var y={length:200,thickness:16,direction:\"row\",tickPosition:\"after\",tickSize:4,tickSpacing:3,tickOverlap:!1,tickFormat:function(t){return\"\"+t},titleAlign:\"start\",titleOffset:4},k={top:0,right:0,bottom:0,left:0},x=function(t){var e,i=t.direction,n=t.itemsSpacing,o=t.padding,r=t.itemCount,l=t.itemWidth,a=t.itemHeight;if(\"number\"!=typeof o&&(\"object\"!=typeof(e=o)||Array.isArray(e)||null===e))throw new Error(\"Invalid property padding, must be one of: number, object\");var c=\"number\"==typeof o?{top:o,right:o,bottom:o,left:o}:p({},k,o),d=c.left+c.right,s=c.top+c.bottom,h=l+d,g=a+s,f=(r-1)*n;return\"row\"===i?h=l*r+f+d:\"column\"===i&&(g=a*r+f+s),{width:h,height:g,padding:c}},b=function(t){var e=t.anchor,i=t.translateX,n=t.translateY,o=t.containerWidth,r=t.containerHeight,l=t.width,a=t.height,c=i,d=n;switch(e){case\"top\":c+=(o-l)/2;break;case\"top-right\":c+=o-l;break;case\"right\":c+=o-l,d+=(r-a)/2;break;case\"bottom-right\":c+=o-l,d+=r-a;break;case\"bottom\":c+=(o-l)/2,d+=r-a;break;case\"bottom-left\":d+=r-a;break;case\"left\":d+=(r-a)/2;break;case\"center\":c+=(o-l)/2,d+=(r-a)/2}return{x:c,y:d}},S=function(t){var e,i,n,o,r,l,a=t.direction,c=t.justify,d=t.symbolSize,s=t.symbolSpacing,h=t.width,g=t.height;switch(a){case\"left-to-right\":e=0,i=(g-d)/2,o=g/2,l=\"central\",c?(n=h,r=\"end\"):(n=d+s,r=\"start\");break;case\"right-to-left\":e=h-d,i=(g-d)/2,o=g/2,l=\"central\",c?(n=0,r=\"start\"):(n=h-d-s,r=\"end\");break;case\"top-to-bottom\":e=(h-d)/2,i=0,n=h/2,r=\"middle\",c?(o=g,l=\"alphabetic\"):(o=d+s,l=\"text-before-edge\");break;case\"bottom-to-top\":e=(h-d)/2,i=g-d,n=h/2,r=\"middle\",c?(o=0,l=\"text-before-edge\"):(o=g-d-s,l=\"alphabetic\")}return{symbolX:e,symbolY:i,labelX:n,labelY:o,labelAnchor:r,labelAlignment:l}},A=function(t){var e,o=t.scale,r=t.ticks,l=t.length,c=void 0===l?y.length:l,d=t.thickness,s=void 0===d?y.thickness:d,h=t.direction,g=void 0===h?y.direction:h,f=t.tickPosition,m=void 0===f?y.tickPosition:f,v=t.tickSize,u=void 0===v?y.tickSize:v,p=t.tickSpacing,k=void 0===p?y.tickSpacing:p,x=t.tickOverlap,b=void 0===x?y.tickOverlap:x,S=t.tickFormat,A=void 0===S?y.tickFormat:S,W=t.title,z=t.titleAlign,C=void 0===z?y.titleAlign:z,w=t.titleOffset,X=void 0===w?y.titleOffset:w,Y=\"column\"===g?[].concat(o.domain()).reverse():o.domain(),O=i().domain(Y);2===Y.length?O.range([0,c]):3===Y.length&&O.range([0,c/2,c]),e=\"thresholds\"in o?[Y[0]].concat(o.thresholds(),[Y[1]]):Array.isArray(r)?r:o.ticks(r);var B,H,E,j,L,M,F=a(o,32),T=n(A),P=[],V=0,R=0;if(\"row\"===g){var D,q,G;B=c,H=s,R=1;var I;L=0,E=\"start\"===C?0:\"middle\"===C?c/2:c,\"before\"===m?(D=-u,q=b?s:0,G=-u-k,I=\"alphabetic\",j=s+X,M=\"hanging\"):(D=b?0:s,G=(q=s+u)+k,I=\"hanging\",j=-X,M=\"alphabetic\"),e.forEach((function(t){var e=O(t);P.push({x1:e,y1:D,x2:e,y2:q,text:T(t),textX:e,textY:G,textHorizontalAlign:\"middle\",textVerticalAlign:I})}))}else{var N,_,J,K;B=s,H=c,V=1;L=-90,j=\"start\"===C?c:\"middle\"===C?c/2:0,\"before\"===m?(_=b?s:0,J=(N=-u)-k,K=\"end\",E=s+X,M=\"hanging\"):(N=b?0:s,J=(_=s+u)+k,K=\"start\",E=-X,M=\"alphabetic\"),e.forEach((function(t){var e=O(t);P.push({x1:N,y1:e,x2:_,y2:e,text:T(t),textX:J,textY:e,textHorizontalAlign:K,textVerticalAlign:\"central\"})}))}return{width:B,height:H,gradientX1:0,gradientY1:V,gradientX2:R,gradientY2:0,colorStops:F,ticks:P,titleText:W,titleX:E,titleY:j,titleRotation:L,titleHorizontalAlign:C,titleVerticalAlign:M}},W=function(i){var n=i.scale,r=i.ticks,l=i.length,a=void 0===l?y.length:l,c=i.thickness,s=void 0===c?y.thickness:c,h=i.direction,g=void 0===h?y.direction:h,f=i.tickPosition,m=void 0===f?y.tickPosition:f,v=i.tickSize,u=void 0===v?y.tickSize:v,k=i.tickSpacing,x=void 0===k?y.tickSpacing:k,b=i.tickOverlap,S=void 0===b?y.tickOverlap:b,W=i.tickFormat,z=void 0===W?y.tickFormat:W,C=i.title,w=i.titleAlign,X=void 0===w?y.titleAlign:w,Y=i.titleOffset,O=A({scale:n,ticks:r,length:a,thickness:s,direction:g,tickPosition:m,tickSize:u,tickSpacing:x,tickOverlap:S,tickFormat:z,title:C,titleAlign:X,titleOffset:void 0===Y?y.titleOffset:Y}),B=O.width,H=O.height,E=O.gradientX1,j=O.gradientY1,L=O.gradientX2,M=O.gradientY2,F=O.ticks,T=O.colorStops,P=O.titleText,V=O.titleX,R=O.titleY,D=O.titleRotation,q=O.titleVerticalAlign,G=O.titleHorizontalAlign,I=o(),N=\"ContinuousColorsLegendSvgGradient.\"+g+\".\"+T.map((function(t){return t.offset})).join(\"_\");return e(\"g\",{children:[t(\"defs\",{children:t(\"linearGradient\",{id:N,x1:E,y1:j,x2:L,y2:M,children:T.map((function(e){return t(\"stop\",p({},e))}))})}),P&&t(\"text\",{transform:\"translate(\"+V+\", \"+R+\") rotate(\"+D+\")\",textAnchor:G,dominantBaseline:q,style:I.legends.title.text,children:P}),t(\"rect\",{width:B,height:H,fill:\"url(#\"+N}),F.map((function(i,n){return e(d,{children:[t(\"line\",{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2,style:I.legends.ticks.line}),t(\"text\",{x:i.textX,y:i.textY,textAnchor:i.textHorizontalAlign,dominantBaseline:i.textVerticalAlign,style:I.legends.ticks.text,children:i.text})]},n)}))]})},z=[\"containerWidth\",\"containerHeight\",\"anchor\",\"translateX\",\"translateY\",\"length\",\"thickness\",\"direction\"],C=function(e){var i,n,o=e.containerWidth,r=e.containerHeight,l=e.anchor,a=e.translateX,c=void 0===a?0:a,d=e.translateY,s=void 0===d?0:d,h=e.length,g=void 0===h?y.length:h,f=e.thickness,m=void 0===f?y.thickness:f,v=e.direction,u=void 0===v?y.direction:v,k=function(t,e){if(null==t)return{};var i,n,o={},r=Object.keys(t);for(n=0;n<r.length;n++)i=r[n],e.indexOf(i)>=0||(o[i]=t[i]);return o}(e,z);\"row\"===u?(i=g,n=m):(i=m,n=g);var x=b({anchor:l,translateX:c,translateY:s,containerWidth:o,containerHeight:r,width:i,height:n}),S=x.x,A=x.y;return t(\"g\",{transform:\"translate(\"+S+\", \"+A+\")\",children:t(W,p({length:g,thickness:m,direction:u},k))})},w={circle:f,diamond:m,square:v,triangle:u},X=function(i){var n,l,a,d,g,f,m,v,u,y,k,x=i.x,b=i.y,A=i.width,W=i.height,z=i.data,C=i.direction,X=void 0===C?\"left-to-right\":C,Y=i.justify,O=void 0!==Y&&Y,B=i.textColor,H=i.background,E=void 0===H?\"transparent\":H,j=i.opacity,L=void 0===j?1:j,M=i.symbolShape,F=void 0===M?\"square\":M,T=i.symbolSize,P=void 0===T?16:T,V=i.symbolSpacing,R=void 0===V?8:V,D=i.symbolBorderWidth,q=void 0===D?0:D,G=i.symbolBorderColor,I=void 0===G?\"transparent\":G,N=i.onClick,_=i.onMouseEnter,J=i.onMouseLeave,K=i.toggleSerie,Q=i.effects,U=s({}),Z=U[0],$=U[1],tt=o(),et=h((function(t){if(Q){var e=Q.filter((function(t){return\"hover\"===t.on})).reduce((function(t,e){return p({},t,e.style)}),{});$(e)}null==_||_(z,t)}),[_,z,Q]),it=h((function(t){if(Q){var e=Q.filter((function(t){return\"hover\"!==t.on})).reduce((function(t,e){return p({},t,e.style)}),{});$(e)}null==J||J(z,t)}),[J,z,Q]),nt=S({direction:X,justify:O,symbolSize:null!=(n=Z.symbolSize)?n:P,symbolSpacing:R,width:A,height:W}),ot=nt.symbolX,rt=nt.symbolY,lt=nt.labelX,at=nt.labelY,ct=nt.labelAnchor,dt=nt.labelAlignment,st=[N,_,J,K].some((function(t){return void 0!==t})),ht=\"function\"==typeof F?F:w[F];return e(\"g\",{transform:\"translate(\"+x+\",\"+b+\")\",style:{opacity:null!=(l=Z.itemOpacity)?l:L},children:[t(\"rect\",{width:A,height:W,fill:null!=(a=Z.itemBackground)?a:E,style:{cursor:st?\"pointer\":\"auto\"},onClick:function(t){null==N||N(z,t),null==K||K(z.id)},onMouseEnter:et,onMouseLeave:it}),c.createElement(ht,p({id:z.id,x:ot,y:rt,size:null!=(d=Z.symbolSize)?d:P,fill:null!=(g=null!=(f=z.fill)?f:z.color)?g:\"black\",borderWidth:null!=(m=Z.symbolBorderWidth)?m:q,borderColor:null!=(v=Z.symbolBorderColor)?v:I},z.hidden?tt.legends.hidden.symbol:void 0)),t(\"text\",{textAnchor:ct,style:p({},r(tt.legends.text),{fill:null!=(u=null!=(y=null!=(k=Z.itemTextColor)?k:B)?y:tt.legends.text.fill)?u:\"black\",dominantBaseline:dt,pointerEvents:\"none\",userSelect:\"none\"},z.hidden?tt.legends.hidden.text:void 0),x:lt,y:at,children:z.label})]})},Y=function(e){var i=e.data,n=e.x,o=e.y,r=e.direction,l=e.padding,a=void 0===l?0:l,c=e.justify,d=e.effects,s=e.itemWidth,h=e.itemHeight,g=e.itemDirection,f=void 0===g?\"left-to-right\":g,m=e.itemsSpacing,v=void 0===m?0:m,u=e.itemTextColor,p=e.itemBackground,y=void 0===p?\"transparent\":p,k=e.itemOpacity,b=void 0===k?1:k,S=e.symbolShape,A=e.symbolSize,W=e.symbolSpacing,z=e.symbolBorderWidth,C=e.symbolBorderColor,w=e.onClick,Y=e.onMouseEnter,O=e.onMouseLeave,B=e.toggleSerie,H=x({itemCount:i.length,itemWidth:s,itemHeight:h,itemsSpacing:v,direction:r,padding:a}).padding,E=\"row\"===r?s+v:0,j=\"column\"===r?h+v:0;return t(\"g\",{transform:\"translate(\"+n+\",\"+o+\")\",children:i.map((function(e,i){return t(X,{data:e,x:i*E+H.left,y:i*j+H.top,width:s,height:h,direction:f,justify:c,effects:d,textColor:u,background:y,opacity:b,symbolShape:S,symbolSize:A,symbolSpacing:W,symbolBorderWidth:z,symbolBorderColor:C,onClick:w,onMouseEnter:Y,onMouseLeave:O,toggleSerie:B},i)}))})},O=function(e){var i=e.data,n=e.containerWidth,o=e.containerHeight,r=e.translateX,l=void 0===r?0:r,a=e.translateY,c=void 0===a?0:a,d=e.anchor,s=e.direction,h=e.padding,g=void 0===h?0:h,f=e.justify,m=e.itemsSpacing,v=void 0===m?0:m,u=e.itemWidth,p=e.itemHeight,y=e.itemDirection,k=e.itemTextColor,S=e.itemBackground,A=e.itemOpacity,W=e.symbolShape,z=e.symbolSize,C=e.symbolSpacing,w=e.symbolBorderWidth,X=e.symbolBorderColor,O=e.onClick,B=e.onMouseEnter,H=e.onMouseLeave,E=e.toggleSerie,j=e.effects,L=x({itemCount:i.length,itemsSpacing:v,itemWidth:u,itemHeight:p,direction:s,padding:g}),M=L.width,F=L.height,T=b({anchor:d,translateX:l,translateY:c,containerWidth:n,containerHeight:o,width:M,height:F}),P=T.x,V=T.y;return t(Y,{data:i,x:P,y:V,direction:s,padding:g,justify:f,effects:j,itemsSpacing:v,itemWidth:u,itemHeight:p,itemDirection:y,itemTextColor:k,itemBackground:S,itemOpacity:A,symbolShape:W,symbolSize:z,symbolSpacing:C,symbolBorderWidth:w,symbolBorderColor:X,onClick:O,onMouseEnter:B,onMouseLeave:H,toggleSerie:\"boolean\"==typeof E?void 0:E})},B={start:\"left\",middle:\"center\",end:\"right\"},H=function(t,e){var i=e.data,n=e.containerWidth,o=e.containerHeight,r=e.translateX,l=void 0===r?0:r,a=e.translateY,c=void 0===a?0:a,d=e.anchor,s=e.direction,h=e.padding,g=void 0===h?0:h,f=e.justify,m=void 0!==f&&f,v=e.itemsSpacing,u=void 0===v?0:v,p=e.itemWidth,y=e.itemHeight,k=e.itemDirection,A=void 0===k?\"left-to-right\":k,W=e.itemTextColor,z=e.symbolSize,C=void 0===z?16:z,w=e.symbolSpacing,X=void 0===w?8:w,Y=e.theme,O=x({itemCount:i.length,itemWidth:p,itemHeight:y,itemsSpacing:u,direction:s,padding:g}),H=O.width,E=O.height,j=O.padding,L=b({anchor:d,translateX:l,translateY:c,containerWidth:n,containerHeight:o,width:H,height:E}),M=L.x,F=L.y,T=\"row\"===s?p+u:0,P=\"column\"===s?y+u:0;t.save(),t.translate(M,F),t.font=Y.legends.text.fontSize+\"px \"+(Y.legends.text.fontFamily||\"sans-serif\"),i.forEach((function(e,i){var n,o,r=i*T+j.left,l=i*P+j.top,a=S({direction:A,justify:m,symbolSize:C,symbolSpacing:X,width:p,height:y}),c=a.symbolX,d=a.symbolY,s=a.labelX,h=a.labelY,g=a.labelAnchor,f=a.labelAlignment;t.fillStyle=null!=(n=e.color)?n:\"black\",t.fillRect(r+c,l+d,C,C),t.textAlign=B[g],\"central\"===f&&(t.textBaseline=\"middle\"),t.fillStyle=null!=(o=null!=W?W:Y.legends.text.fill)?o:\"black\",t.fillText(String(e.label),r+s,l+h)})),t.restore()},E=function(t,e){var i=e.containerWidth,n=e.containerHeight,o=e.anchor,r=e.translateX,a=void 0===r?0:r,c=e.translateY,d=void 0===c?0:c,s=e.scale,h=e.length,g=void 0===h?y.length:h,f=e.thickness,m=void 0===f?y.thickness:f,v=e.direction,u=void 0===v?y.direction:v,p=e.ticks,k=e.tickPosition,x=void 0===k?y.tickPosition:k,S=e.tickSize,W=void 0===S?y.tickSize:S,z=e.tickSpacing,C=void 0===z?y.tickSpacing:z,w=e.tickOverlap,X=void 0===w?y.tickOverlap:w,Y=e.tickFormat,O=void 0===Y?y.tickFormat:Y,B=e.title,H=e.titleAlign,E=void 0===H?y.titleAlign:H,j=e.titleOffset,L=void 0===j?y.titleOffset:j,M=e.theme,F=A({scale:s,ticks:p,length:g,thickness:m,direction:u,tickPosition:x,tickSize:W,tickSpacing:C,tickOverlap:X,tickFormat:O,title:B,titleAlign:E,titleOffset:L}),T=F.width,P=F.height,V=F.gradientX1,R=F.gradientY1,D=F.gradientX2,q=F.gradientY2,G=F.colorStops,I=F.ticks,N=F.titleText,_=F.titleX,J=F.titleY,K=F.titleRotation,Q=F.titleVerticalAlign,U=F.titleHorizontalAlign,Z=b({anchor:o,translateX:a,translateY:d,containerWidth:i,containerHeight:n,width:T,height:P}),$=Z.x,tt=Z.y,et={font:t.font,textAlign:t.textAlign,textBaseline:t.textBaseline};t.save(),t.translate($,tt);var it=t.createLinearGradient(V*T,R*P,D*T,q*P);G.forEach((function(t){it.addColorStop(t.offset,t.stopColor)})),t.fillStyle=it,t.fillRect(0,0,T,P),t.font=(M.legends.ticks.text.fontWeight?M.legends.ticks.text.fontWeight+\" \":\"\")+M.legends.ticks.text.fontSize+\"px \"+M.legends.ticks.text.fontFamily,I.forEach((function(e){var i;(null!=(i=M.legends.ticks.line.strokeWidth)?i:0)>0&&(t.lineWidth=Number(M.axis.ticks.line.strokeWidth),M.axis.ticks.line.stroke&&(t.strokeStyle=M.axis.ticks.line.stroke),t.lineCap=\"square\",t.beginPath(),t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.stroke()),M.legends.ticks.text.fill&&(t.fillStyle=M.legends.ticks.text.fill),t.textAlign=\"middle\"===e.textHorizontalAlign?\"center\":e.textHorizontalAlign,t.textBaseline=\"central\"===e.textVerticalAlign?\"middle\":e.textVerticalAlign,t.fillText(e.text,e.textX,e.textY)})),N&&(t.save(),t.translate(_,J),t.rotate(l(K)),t.font=(M.legends.title.text.fontWeight?M.legends.title.text.fontWeight+\" \":\"\")+M.legends.title.text.fontSize+\"px \"+M.legends.title.text.fontFamily,M.legends.title.text.fill&&(t.fillStyle=M.legends.title.text.fill),t.textAlign=\"middle\"===U?\"center\":U,t.textBaseline=Q,t.fillText(N,0,0),t.restore()),t.restore(),t.font=et.font,t.textAlign=et.textAlign,t.textBaseline=et.textBaseline},j=function(t){var e=t.scale,i=t.domain,n=t.reverse,o=void 0!==n&&n,r=t.valueFormat,l=void 0===r?function(t){return t}:r,a=t.separator,c=void 0===a?\" - \":a;return g((function(){var t=(null!=i?i:e.range()).map((function(t,i){var n=e.invertExtent(t),o=n[0],r=n[1];return{id:t,index:i,extent:[o,r],label:\"\"+l(o)+c+l(r),value:e(o),color:t}}));return o&&t.reverse(),t}),[i,e,o,c,l])};export{C as AnchoredContinuousColorsLegendSvg,O as BoxLegendSvg,W as ContinuousColorsLegendSvg,Y as LegendSvg,X as LegendSvgItem,f as SymbolCircle,m as SymbolDiamond,v as SymbolSquare,u as SymbolTriangle,A as computeContinuousColorsLegend,x as computeDimensions,S as computeItemLayout,b as computePositionFromAnchor,y as continuousColorsLegendDefaults,E as renderContinuousColorLegendToCanvas,H as renderLegendToCanvas,j as useQuantizeColorScaleLegendData};\n//# sourceMappingURL=nivo-legends.es.js.map\n","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","export const epsilon = 1.1102230246251565e-16;\nexport const splitter = 134217729;\nexport const resulterrbound = (3 + 8 * epsilon) * epsilon;\n\n// fast_expansion_sum_zeroelim routine from oritinal code\nexport function sum(elen, e, flen, f, h) {\n let Q, Qnew, hh, bvirt;\n let enow = e[0];\n let fnow = f[0];\n let eindex = 0;\n let findex = 0;\n if ((fnow > enow) === (fnow > -enow)) {\n Q = enow;\n enow = e[++eindex];\n } else {\n Q = fnow;\n fnow = f[++findex];\n }\n let hindex = 0;\n if (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = enow + Q;\n hh = Q - (Qnew - enow);\n enow = e[++eindex];\n } else {\n Qnew = fnow + Q;\n hh = Q - (Qnew - fnow);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n while (eindex < elen && findex < flen) {\n if ((fnow > enow) === (fnow > -enow)) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n } else {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n }\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n }\n while (eindex < elen) {\n Qnew = Q + enow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (enow - bvirt);\n enow = e[++eindex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n while (findex < flen) {\n Qnew = Q + fnow;\n bvirt = Qnew - Q;\n hh = Q - (Qnew - bvirt) + (fnow - bvirt);\n fnow = f[++findex];\n Q = Qnew;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function sum_three(alen, a, blen, b, clen, c, tmp, out) {\n return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);\n}\n\n// scale_expansion_zeroelim routine from oritinal code\nexport function scale(elen, e, b, h) {\n let Q, sum, hh, product1, product0;\n let bvirt, c, ahi, alo, bhi, blo;\n\n c = splitter * b;\n bhi = c - (c - b);\n blo = b - bhi;\n let enow = e[0];\n Q = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);\n let hindex = 0;\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n for (let i = 1; i < elen; i++) {\n enow = e[i];\n product1 = enow * b;\n c = splitter * enow;\n ahi = c - (c - enow);\n alo = enow - ahi;\n product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);\n sum = Q + product0;\n bvirt = sum - Q;\n hh = Q - (sum - bvirt) + (product0 - bvirt);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n Q = product1 + sum;\n hh = sum - (Q - product1);\n if (hh !== 0) {\n h[hindex++] = hh;\n }\n }\n if (Q !== 0 || hindex === 0) {\n h[hindex++] = Q;\n }\n return hindex;\n}\n\nexport function negate(elen, e) {\n for (let i = 0; i < elen; i++) e[i] = -e[i];\n return elen;\n}\n\nexport function estimate(elen, e) {\n let Q = e[0];\n for (let i = 1; i < elen; i++) Q += e[i];\n return Q;\n}\n\nexport function vec(n) {\n return new Float64Array(n);\n}\n","import {epsilon, splitter, resulterrbound, estimate, vec, sum} from './util.js';\n\nconst ccwerrboundA = (3 + 16 * epsilon) * epsilon;\nconst ccwerrboundB = (2 + 12 * epsilon) * epsilon;\nconst ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon;\n\nconst B = vec(4);\nconst C1 = vec(8);\nconst C2 = vec(12);\nconst D = vec(16);\nconst u = vec(4);\n\nfunction orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {\n let acxtail, acytail, bcxtail, bcytail;\n let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;\n\n const acx = ax - cx;\n const bcx = bx - cx;\n const acy = ay - cy;\n const bcy = by - cy;\n\n s1 = acx * bcy;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcx;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n B[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n B[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n B[2] = _j - (u3 - bvirt) + (_i - bvirt);\n B[3] = u3;\n\n let det = estimate(4, B);\n let errbound = ccwerrboundB * detsum;\n if (det >= errbound || -det >= errbound) {\n return det;\n }\n\n bvirt = ax - acx;\n acxtail = ax - (acx + bvirt) + (bvirt - cx);\n bvirt = bx - bcx;\n bcxtail = bx - (bcx + bvirt) + (bvirt - cx);\n bvirt = ay - acy;\n acytail = ay - (acy + bvirt) + (bvirt - cy);\n bvirt = by - bcy;\n bcytail = by - (bcy + bvirt) + (bvirt - cy);\n\n if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {\n return det;\n }\n\n errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det);\n det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);\n if (det >= errbound || -det >= errbound) return det;\n\n s1 = acxtail * bcy;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcy;\n bhi = c - (c - bcy);\n blo = bcy - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcx;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcx;\n bhi = c - (c - bcx);\n blo = bcx - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C1len = sum(4, B, 4, u, C1);\n\n s1 = acx * bcytail;\n c = splitter * acx;\n ahi = c - (c - acx);\n alo = acx - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acy * bcxtail;\n c = splitter * acy;\n ahi = c - (c - acy);\n alo = acy - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const C2len = sum(C1len, C1, 4, u, C2);\n\n s1 = acxtail * bcytail;\n c = splitter * acxtail;\n ahi = c - (c - acxtail);\n alo = acxtail - ahi;\n c = splitter * bcytail;\n bhi = c - (c - bcytail);\n blo = bcytail - bhi;\n s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);\n t1 = acytail * bcxtail;\n c = splitter * acytail;\n ahi = c - (c - acytail);\n alo = acytail - ahi;\n c = splitter * bcxtail;\n bhi = c - (c - bcxtail);\n blo = bcxtail - bhi;\n t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);\n _i = s0 - t0;\n bvirt = s0 - _i;\n u[0] = s0 - (_i + bvirt) + (bvirt - t0);\n _j = s1 + _i;\n bvirt = _j - s1;\n _0 = s1 - (_j - bvirt) + (_i - bvirt);\n _i = _0 - t1;\n bvirt = _0 - _i;\n u[1] = _0 - (_i + bvirt) + (bvirt - t1);\n u3 = _j + _i;\n bvirt = u3 - _j;\n u[2] = _j - (u3 - bvirt) + (_i - bvirt);\n u[3] = u3;\n const Dlen = sum(C2len, C2, 4, u, D);\n\n return D[Dlen - 1];\n}\n\nexport function orient2d(ax, ay, bx, by, cx, cy) {\n const detleft = (ay - cy) * (bx - cx);\n const detright = (ax - cx) * (by - cy);\n const det = detleft - detright;\n\n const detsum = Math.abs(detleft + detright);\n if (Math.abs(det) >= ccwerrboundA * detsum) return det;\n\n return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);\n}\n\nexport function orient2dfast(ax, ay, bx, by, cx, cy) {\n return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);\n}\n","\nconst EPSILON = Math.pow(2, -52);\nconst EDGE_STACK = new Uint32Array(512);\n\nimport {orient2d} from 'robust-predicates';\n\nexport default class Delaunator {\n\n static from(points, getX = defaultGetX, getY = defaultGetY) {\n const n = points.length;\n const coords = new Float64Array(n * 2);\n\n for (let i = 0; i < n; i++) {\n const p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n }\n\n constructor(coords) {\n const n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n\n this.coords = coords;\n\n // arrays that will store the triangulation graph\n const maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3);\n\n // temporary arrays for tracking the edges of the advancing convex hull\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n this._hullNext = new Uint32Array(n); // edge to next edge\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n this._hullHash = new Int32Array(this._hashSize); // angular edge hash\n\n // temporary arrays for sorting points\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n\n this.update();\n }\n\n update() {\n const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this;\n const n = coords.length >> 1;\n\n // populate an array of point indices; calculate input data bbox\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = 0; i < n; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n this._ids[i] = i;\n }\n const cx = (minX + maxX) / 2;\n const cy = (minY + maxY) / 2;\n\n let i0, i1, i2;\n\n // pick a seed point close to the center\n for (let i = 0, minDist = Infinity; i < n; i++) {\n const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist) {\n i0 = i;\n minDist = d;\n }\n }\n const i0x = coords[2 * i0];\n const i0y = coords[2 * i0 + 1];\n\n // find the point closest to the seed\n for (let i = 0, minDist = Infinity; i < n; i++) {\n if (i === i0) continue;\n const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist && d > 0) {\n i1 = i;\n minDist = d;\n }\n }\n let i1x = coords[2 * i1];\n let i1y = coords[2 * i1 + 1];\n\n let minRadius = Infinity;\n\n // find the third point which forms the smallest circumcircle with the first two\n for (let i = 0; i < n; i++) {\n if (i === i0 || i === i1) continue;\n const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);\n if (r < minRadius) {\n i2 = i;\n minRadius = r;\n }\n }\n let i2x = coords[2 * i2];\n let i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (let i = 0; i < n; i++) {\n this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);\n }\n quicksort(this._ids, this._dists, 0, n - 1);\n const hull = new Uint32Array(n);\n let j = 0;\n for (let i = 0, d0 = -Infinity; i < n; i++) {\n const id = this._ids[i];\n const d = this._dists[id];\n if (d > d0) {\n hull[j++] = id;\n d0 = d;\n }\n }\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n }\n\n // swap the order of the seed points for counter-clockwise orientation\n if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {\n const i = i1;\n const x = i1x;\n const y = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = i;\n i2x = x;\n i2y = y;\n }\n\n const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (let i = 0; i < n; i++) {\n this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);\n }\n\n // sort the points by distance from the seed triangle circumcenter\n quicksort(this._ids, this._dists, 0, n - 1);\n\n // set up the seed triangle as the starting hull\n this._hullStart = i0;\n let hullSize = 3;\n\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n\n this.trianglesLen = 0;\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (let k = 0, xp, yp; k < this._ids.length; k++) {\n const i = this._ids[k];\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n\n // skip near-duplicate points\n if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;\n xp = x;\n yp = y;\n\n // skip seed triangle points\n if (i === i0 || i === i1 || i === i2) continue;\n\n // find a visible edge on the convex hull using edge hash\n let start = 0;\n for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {\n start = hullHash[(key + j) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) break;\n }\n\n start = hullPrev[start];\n let e = start, q;\n while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {\n e = q;\n if (e === start) {\n e = -1;\n break;\n }\n }\n if (e === -1) continue; // likely a near-duplicate point; skip it\n\n // add the first triangle from the point\n let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);\n\n // recursively flip triangles from the point until they satisfy the Delaunay condition\n hullTri[i] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n hullSize++;\n\n // walk forward through the hull, adding more triangles and flipping recursively\n let n = hullNext[e];\n while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {\n t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);\n hullTri[i] = this._legalize(t + 2);\n hullNext[n] = n; // mark as removed\n hullSize--;\n n = q;\n }\n\n // walk backward from the other side, adding more triangles and flipping\n if (e === start) {\n while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {\n t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);\n this._legalize(t + 2);\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n hullSize--;\n e = q;\n }\n }\n\n // update the hull indices\n this._hullStart = hullPrev[i] = e;\n hullNext[e] = hullPrev[n] = i;\n hullNext[i] = n;\n\n // save the two new edges in the hash table\n hullHash[this._hashKey(x, y)] = i;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n for (let i = 0, e = this._hullStart; i < hullSize; i++) {\n this.hull[i] = e;\n e = hullNext[e];\n }\n\n // trim typed triangle mesh arrays\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n }\n\n _hashKey(x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n }\n\n _legalize(a) {\n const {_triangles: triangles, _halfedges: halfedges, coords} = this;\n\n let i = 0;\n let ar = 0;\n\n // recursion eliminated with a fixed-size stack\n while (true) {\n const b = halfedges[a];\n\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/ \\a\n * / || \\ / \\\n * / a||b \\ flip /___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\ /br\n * \\||/ \\ /\n * pr pr\n */\n const a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) { // convex hull edge\n if (i === 0) break;\n a = EDGE_STACK[--i];\n continue;\n }\n\n const b0 = b - b % 3;\n const al = a0 + (a + 1) % 3;\n const bl = b0 + (b + 2) % 3;\n\n const p0 = triangles[ar];\n const pr = triangles[a];\n const pl = triangles[al];\n const p1 = triangles[bl];\n\n const illegal = inCircle(\n coords[2 * p0], coords[2 * p0 + 1],\n coords[2 * pr], coords[2 * pr + 1],\n coords[2 * pl], coords[2 * pl + 1],\n coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n\n const hbl = halfedges[bl];\n\n // edge swapped on the other side of the hull (rare); fix the halfedge reference\n if (hbl === -1) {\n let e = this._hullStart;\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n this._link(a, hbl);\n this._link(b, halfedges[ar]);\n this._link(ar, bl);\n\n const br = b0 + (b + 1) % 3;\n\n // don't worry about hitting the cap: it can only happen on extremely degenerate input\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) break;\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n }\n\n _link(a, b) {\n this._halfedges[a] = b;\n if (b !== -1) this._halfedges[b] = a;\n }\n\n // add a new triangle given vertex indices and adjacent half-edge ids\n _addTriangle(i0, i1, i2, a, b, c) {\n const t = this.trianglesLen;\n\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n this._link(t + 1, b);\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n\n return t;\n }\n}\n\n// monotonically increases with real angle, but doesn't need expensive trigonometry\nfunction pseudoAngle(dx, dy) {\n const p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n const dx = ax - px;\n const dy = ay - py;\n const ex = bx - px;\n const ey = by - py;\n const fx = cx - px;\n const fy = cy - py;\n\n const ap = dx * dx + dy * dy;\n const bp = ex * ex + ey * ey;\n const cp = fx * fx + fy * fy;\n\n return dx * (ey * cp - bp * fy) -\n dy * (ex * cp - bp * fx) +\n ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = (ey * bl - dy * cl) * d;\n const y = (dx * cl - ex * bl) * d;\n\n return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = ax + (ey * bl - dy * cl) * d;\n const y = ay + (dx * cl - ex * bl) * d;\n\n return {x, y};\n}\n\nfunction quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (let i = left + 1; i <= right; i++) {\n const temp = ids[i];\n const tempDist = dists[temp];\n let j = i - 1;\n while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];\n ids[j + 1] = temp;\n }\n } else {\n const median = (left + right) >> 1;\n let i = left + 1;\n let j = right;\n swap(ids, median, i);\n if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);\n if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);\n\n const temp = ids[i];\n const tempDist = dists[temp];\n while (true) {\n do i++; while (dists[ids[i]] < tempDist);\n do j--; while (dists[ids[j]] > tempDist);\n if (j < i) break;\n swap(ids, i, j);\n }\n ids[left + 1] = ids[j];\n ids[j] = temp;\n\n if (right - i + 1 >= j - left) {\n quicksort(ids, dists, i, right);\n quicksort(ids, dists, left, j - 1);\n } else {\n quicksort(ids, dists, left, j - 1);\n quicksort(ids, dists, i, right);\n }\n }\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n return p[0];\n}\nfunction defaultGetY(p) {\n return p[1];\n}\n","const epsilon = 1e-6;\n\nexport default class Path {\n constructor() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n }\n moveTo(x, y) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n }\n lineTo(x, y) {\n this._ += `L${this._x1 = +x},${this._y1 = +y}`;\n }\n arc(x, y, r) {\n x = +x, y = +y, r = +r;\n const x0 = x + r;\n const y0 = y;\n if (r < 0) throw new Error(\"negative radius\");\n if (this._x1 === null) this._ += `M${x0},${y0}`;\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n if (!r) return;\n this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;\n }\n rect(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 value() {\n return this._ || null;\n }\n}\n","export default class Polygon {\n constructor() {\n this._ = [];\n }\n moveTo(x, y) {\n this._.push([x, y]);\n }\n closePath() {\n this._.push(this._[0].slice());\n }\n lineTo(x, y) {\n this._.push([x, y]);\n }\n value() {\n return this._.length ? this._ : null;\n }\n}\n","import Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\n\nexport default class Voronoi {\n constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {\n if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n this.delaunay = delaunay;\n this._circumcenters = new Float64Array(delaunay.points.length * 2);\n this.vectors = new Float64Array(delaunay.points.length * 2);\n this.xmax = xmax, this.xmin = xmin;\n this.ymax = ymax, this.ymin = ymin;\n this._init();\n }\n update() {\n this.delaunay.update();\n this._init();\n return this;\n }\n _init() {\n const {delaunay: {points, hull, triangles}, vectors} = this;\n let bx, by; // lazily computed barycenter of the hull\n\n // Compute circumcenters.\n const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n const t1 = triangles[i] * 2;\n const t2 = triangles[i + 1] * 2;\n const t3 = triangles[i + 2] * 2;\n const x1 = points[t1];\n const y1 = points[t1 + 1];\n const x2 = points[t2];\n const y2 = points[t2 + 1];\n const x3 = points[t3];\n const y3 = points[t3 + 1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const ex = x3 - x1;\n const ey = y3 - y1;\n const ab = (dx * ey - dy * ex) * 2;\n\n if (Math.abs(ab) < 1e-9) {\n // For a degenerate triangle, the circumcenter is at the infinity, in a\n // direction orthogonal to the halfedge and away from the “center” of\n // the diagram <bx, by>, defined as the hull’s barycenter.\n if (bx === undefined) {\n bx = by = 0;\n for (const i of hull) bx += points[i * 2], by += points[i * 2 + 1];\n bx /= hull.length, by /= hull.length;\n }\n const a = 1e9 * Math.sign((bx - x1) * ey - (by - y1) * ex);\n x = (x1 + x3) / 2 - a * ey;\n y = (y1 + y3) / 2 + a * ex;\n } else {\n const d = 1 / ab;\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n x = x1 + (ey * bl - dy * cl) * d;\n y = y1 + (dx * cl - ex * bl) * d;\n }\n circumcenters[j] = x;\n circumcenters[j + 1] = y;\n }\n\n // Compute exterior cell rays.\n let h = hull[hull.length - 1];\n let p0, p1 = h * 4;\n let x0, x1 = points[2 * h];\n let y0, y1 = points[2 * h + 1];\n vectors.fill(0);\n for (let i = 0; i < hull.length; ++i) {\n h = hull[i];\n p0 = p1, x0 = x1, y0 = y1;\n p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n vectors[p0 + 2] = vectors[p1] = y0 - y1;\n vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n }\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;\n if (hull.length <= 1) return null;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = Math.floor(i / 3) * 2;\n const tj = Math.floor(j / 3) * 2;\n const xi = circumcenters[ti];\n const yi = circumcenters[ti + 1];\n const xj = circumcenters[tj];\n const yj = circumcenters[tj + 1];\n this._renderSegment(xi, yi, xj, yj, context);\n }\n let h0, h1 = hull[hull.length - 1];\n for (let i = 0; i < hull.length; ++i) {\n h0 = h1, h1 = hull[i];\n const t = Math.floor(inedges[h1] / 3) * 2;\n const x = circumcenters[t];\n const y = circumcenters[t + 1];\n const v = h0 * 4;\n const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n if (p) this._renderSegment(x, y, p[0], p[1], context);\n }\n return buffer && buffer.value();\n }\n renderBounds(context) {\n const buffer = context == null ? context = new Path : undefined;\n context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n return buffer && buffer.value();\n }\n renderCell(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const points = this._clip(i);\n if (points === null || !points.length) return;\n context.moveTo(points[0], points[1]);\n let n = points.length;\n while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;\n for (let i = 2; i < n; i += 2) {\n if (points[i] !== points[i-2] || points[i+1] !== points[i-1])\n context.lineTo(points[i], points[i + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n *cellPolygons() {\n const {delaunay: {points}} = this;\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const cell = this.cellPolygon(i);\n if (cell) cell.index = i, yield cell;\n }\n }\n cellPolygon(i) {\n const polygon = new Polygon;\n this.renderCell(i, polygon);\n return polygon.value();\n }\n _renderSegment(x0, y0, x1, y1, context) {\n let S;\n const c0 = this._regioncode(x0, y0);\n const c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n context.moveTo(S[0], S[1]);\n context.lineTo(S[2], S[3]);\n }\n }\n contains(i, x, y) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n return this.delaunay._step(i, x, y) === i;\n }\n *neighbors(i) {\n const ci = this._clip(i);\n if (ci) for (const j of this.delaunay.neighbors(i)) {\n const cj = this._clip(j);\n // find the common edge\n if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {\n for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {\n if (ci[ai] === cj[aj]\n && ci[ai + 1] === cj[aj + 1]\n && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj]\n && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) {\n yield j;\n break loop;\n }\n }\n }\n }\n }\n _cell(i) {\n const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;\n const e0 = inedges[i];\n if (e0 === -1) return null; // coincident point\n const points = [];\n let e = e0;\n do {\n const t = Math.floor(e / 3);\n points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n } while (e !== e0 && e !== -1);\n return points;\n }\n _clip(i) {\n // degenerate case (1 valid point: return the box)\n if (i === 0 && this.delaunay.hull.length === 1) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n const points = this._cell(i);\n if (points === null) return null;\n const {vectors: V} = this;\n const v = i * 4;\n return this._simplify(V[v] || V[v + 1]\n ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])\n : this._clipFinite(i, points));\n }\n _clipFinite(i, points) {\n const n = points.length;\n let P = null;\n let x0, y0, x1 = points[n - 2], y1 = points[n - 1];\n let c0, c1 = this._regioncode(x1, y1);\n let e0, e1 = 0;\n for (let j = 0; j < n; j += 2) {\n x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n c0 = c1, c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n e0 = e1, e1 = 0;\n if (P) P.push(x1, y1);\n else P = [x1, y1];\n } else {\n let S, sx0, sy0, sx1, sy1;\n if (c0 === 0) {\n if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n [sx0, sy0, sx1, sy1] = S;\n } else {\n if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n [sx1, sy1, sx0, sy0] = S;\n e0 = e1, e1 = this._edgecode(sx0, sy0);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx0, sy0);\n else P = [sx0, sy0];\n }\n e0 = e1, e1 = this._edgecode(sx1, sy1);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx1, sy1);\n else P = [sx1, sy1];\n }\n }\n if (P) {\n e0 = e1, e1 = this._edgecode(P[0], P[1]);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n return P;\n }\n _clipSegment(x0, y0, x1, y1, c0, c1) {\n // for more robustness, always consider the segment in the same order\n const flip = c0 < c1;\n if (flip) [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0];\n while (true) {\n if (c0 === 0 && c1 === 0) return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1];\n if (c0 & c1) return null;\n let x, y, c = c0 || c1;\n if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;\n else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;\n else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;\n else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);\n else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n }\n }\n _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n let P = Array.from(points), p;\n if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n if (P = this._clipFinite(i, P)) {\n for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n }\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n }\n return P;\n }\n _edge(i, e0, e1, P, j) {\n while (e0 !== e1) {\n let x, y;\n switch (e0) {\n case 0b0101: e0 = 0b0100; continue; // top-left\n case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top\n case 0b0110: e0 = 0b0010; continue; // top-right\n case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right\n case 0b1010: e0 = 0b1000; continue; // bottom-right\n case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom\n case 0b1001: e0 = 0b0001; continue; // bottom-left\n case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left\n }\n // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are\n // undefined, the conditional statement will be executed.\n if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n P.splice(j, 0, x, y), j += 2;\n }\n }\n return j;\n }\n _project(x0, y0, vx, vy) {\n let t = Infinity, c, x, y;\n if (vy < 0) { // top\n if (y0 <= this.ymin) return null;\n if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n } else if (vy > 0) { // bottom\n if (y0 >= this.ymax) return null;\n if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n }\n if (vx > 0) { // right\n if (x0 >= this.xmax) return null;\n if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n } else if (vx < 0) { // left\n if (x0 <= this.xmin) return null;\n if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n }\n return [x, y];\n }\n _edgecode(x, y) {\n return (x === this.xmin ? 0b0001\n : x === this.xmax ? 0b0010 : 0b0000)\n | (y === this.ymin ? 0b0100\n : y === this.ymax ? 0b1000 : 0b0000);\n }\n _regioncode(x, y) {\n return (x < this.xmin ? 0b0001\n : x > this.xmax ? 0b0010 : 0b0000)\n | (y < this.ymin ? 0b0100\n : y > this.ymax ? 0b1000 : 0b0000);\n }\n _simplify(P) {\n if (P && P.length > 4) {\n for (let i = 0; i < P.length; i+= 2) {\n const j = (i + 2) % P.length, k = (i + 4) % P.length;\n if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) {\n P.splice(j, 2), i -= 2;\n }\n }\n if (!P.length) P = null;\n }\n return P;\n }\n}\n","import Delaunator from \"delaunator\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\nimport Voronoi from \"./voronoi.js\";\n\nconst tau = 2 * Math.PI, pow = Math.pow;\n\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n}\n\n// A triangulation is collinear if all its triangles have a non-null area\nfunction collinear(d) {\n const {triangles, coords} = d;\n for (let i = 0; i < triangles.length; i += 3) {\n const a = 2 * triangles[i],\n b = 2 * triangles[i + 1],\n c = 2 * triangles[i + 2],\n cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])\n - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n if (cross > 1e-10) return false;\n }\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nexport default class Delaunay {\n static from(points, fx = pointX, fy = pointY, that) {\n return new Delaunay(\"length\" in points\n ? flatArray(points, fx, fy, that)\n : Float64Array.from(flatIterable(points, fx, fy, that)));\n }\n constructor(points) {\n this._delaunator = new Delaunator(points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = this._delaunator.coords;\n this._init();\n }\n update() {\n this._delaunator.update();\n this._init();\n return this;\n }\n _init() {\n const d = this._delaunator, points = this.points;\n\n // check for collinear\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)\n .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors\n const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],\n bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],\n r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n this._delaunator = new Delaunator(points);\n } else {\n delete this.collinear;\n }\n\n const halfedges = this.halfedges = this._delaunator.halfedges;\n const hull = this.hull = this._delaunator.hull;\n const triangles = this.triangles = this._delaunator.triangles;\n const inedges = this.inedges.fill(-1);\n const hullIndex = this._hullIndex.fill(-1);\n\n // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n for (let e = 0, n = halfedges.length; e < n; ++e) {\n const p = triangles[e % 3 === 2 ? e - 2 : e + 1];\n if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;\n }\n for (let i = 0, n = hull.length; i < n; ++i) {\n hullIndex[hull[i]] = i;\n }\n\n // degenerate case: 1 or 2 (distinct) points\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n inedges[hull[0]] = 1;\n if (hull.length === 2) {\n inedges[hull[1]] = 0;\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n }\n }\n }\n voronoi(bounds) {\n return new Voronoi(this, bounds);\n }\n *neighbors(i) {\n const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;\n\n // degenerate case with several collinear points\n if (collinear) {\n const l = collinear.indexOf(i);\n if (l > 0) yield collinear[l - 1];\n if (l < collinear.length - 1) yield collinear[l + 1];\n return;\n }\n\n const e0 = inedges[i];\n if (e0 === -1) return; // coincident point\n let e = e0, p0 = -1;\n do {\n yield p0 = triangles[e];\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) return; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n const p = hull[(_hullIndex[i] + 1) % hull.length];\n if (p !== p0) yield p;\n return;\n }\n } while (e !== e0);\n }\n find(x, y, i = 0) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n const i0 = i;\n let c;\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;\n return c;\n }\n _step(i, x, y) {\n const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n let c = i;\n let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n const e0 = inedges[i];\n let e = e0;\n do {\n let t = triangles[e];\n const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n if (dt < dc) dc = dt, c = t;\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n e = hull[(_hullIndex[i] + 1) % hull.length];\n if (e !== t) {\n if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n }\n break;\n }\n } while (e !== e0);\n return c;\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, halfedges, triangles} = this;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = triangles[i] * 2;\n const tj = triangles[j] * 2;\n context.moveTo(points[ti], points[ti + 1]);\n context.lineTo(points[tj], points[tj + 1]);\n }\n this.renderHull(context);\n return buffer && buffer.value();\n }\n renderPoints(context, r) {\n if (r === undefined && (!context || typeof context.moveTo !== \"function\")) r = context, context = null;\n r = r == undefined ? 2 : +r;\n const buffer = context == null ? context = new Path : undefined;\n const {points} = this;\n for (let i = 0, n = points.length; i < n; i += 2) {\n const x = points[i], y = points[i + 1];\n context.moveTo(x + r, y);\n context.arc(x, y, r, 0, tau);\n }\n return buffer && buffer.value();\n }\n renderHull(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {hull, points} = this;\n const h = hull[0] * 2, n = hull.length;\n context.moveTo(points[h], points[h + 1]);\n for (let i = 1; i < n; ++i) {\n const h = 2 * hull[i];\n context.lineTo(points[h], points[h + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n hullPolygon() {\n const polygon = new Polygon;\n this.renderHull(polygon);\n return polygon.value();\n }\n renderTriangle(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, triangles} = this;\n const t0 = triangles[i *= 3] * 2;\n const t1 = triangles[i + 1] * 2;\n const t2 = triangles[i + 2] * 2;\n context.moveTo(points[t0], points[t0 + 1]);\n context.lineTo(points[t1], points[t1 + 1]);\n context.lineTo(points[t2], points[t2 + 1]);\n context.closePath();\n return buffer && buffer.value();\n }\n *trianglePolygons() {\n const {triangles} = this;\n for (let i = 0, n = triangles.length / 3; i < n; ++i) {\n yield this.trianglePolygon(i);\n }\n }\n trianglePolygon(i) {\n const polygon = new Polygon;\n this.renderTriangle(i, polygon);\n return polygon.value();\n }\n}\n\nfunction flatArray(points, fx, fy, that) {\n const n = points.length;\n const array = new Float64Array(n * 2);\n for (let i = 0; i < n; ++i) {\n const p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n return array;\n}\n\nfunction* flatIterable(points, fx, fy, that) {\n let i = 0;\n for (const p of points) {\n yield fx.call(that, p, i, points);\n yield fy.call(that, p, i, points);\n ++i;\n }\n}\n","import{useMemo as n,useState as o,useRef as e,useEffect as i,useCallback as t,Fragment as r,createElement as l}from\"react\";import{defaultMargin as u,getRelativeCursor as a,getDistance as d,Container as s,useDimensions as c,SvgWrapper as h,ResponsiveWrapper as v}from\"@nivo/core\";import{scaleLinear as f}from\"d3-scale\";import{Delaunay as p}from\"d3-delaunay\";import{useTooltip as g}from\"@nivo/tooltip\";import{jsx as m,jsxs as M,Fragment as b}from\"react/jsx-runtime\";function k(){return k=Object.assign?Object.assign.bind():function(n){for(var o=1;o<arguments.length;o++){var e=arguments[o];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n},k.apply(this,arguments)}var y={xDomain:[0,1],yDomain:[0,1],layers:[\"links\",\"cells\",\"points\",\"bounds\"],enableLinks:!1,linkLineWidth:1,linkLineColor:\"#bbbbbb\",enableCells:!0,cellLineWidth:2,cellLineColor:\"#000000\",enablePoints:!0,pointSize:4,pointColor:\"#666666\",role:\"img\"},C=function(n){return[n.x,n.y]},L=u,T=\"cursor\",P=\"top\",w=function(n){var o=n.points,e=n.getNodePosition,i=void 0===e?C:e,t=n.margin,r=void 0===t?L:t;return o.map((function(n){var o=i(n),e=o[0],t=o[1];return[e+r.left,t+r.top]}))},E=function(n){var o=n.points,e=n.width,i=n.height,t=n.margin,r=void 0===t?L:t,l=n.debug,u=p.from(o),a=l?u.voronoi([0,0,r.left+e+r.right,r.top+i+r.bottom]):void 0;return{points:o,delaunay:u,voronoi:a}},W=function(o){var e=o.points,i=o.getNodePosition,t=void 0===i?C:i,r=o.width,l=o.height,u=o.margin,a=void 0===u?L:u,d=o.debug;return n((function(){return E({points:w({points:e,margin:a,getNodePosition:t}),width:r,height:l,margin:a,debug:d})}),[e,r,l,a,d])},x=function(o){var e=o.data,i=o.width,t=o.height,r=o.xDomain,l=o.yDomain,u=n((function(){return f().domain(r).range([0,i])}),[r,i]),a=n((function(){return f().domain(l).range([0,t])}),[l,t]),d=n((function(){return e.map((function(n){return{x:u(n.x),y:a(n.y),data:n}}))}),[e,u,a]);return n((function(){var n=p.from(d.map((function(n){return[n.x,n.y]}))),o=n.voronoi([0,0,i,t]);return{points:d,delaunay:n,voronoi:o}}),[d,i,t])},S=function(o){var e=o.points,i=o.delaunay,t=o.voronoi;return n((function(){return{points:e,delaunay:i,voronoi:t}}),[e,i,t])},D=function(r){var l=r.elementRef,u=r.nodes,s=r.getNodePosition,c=void 0===s?C:s,h=r.delaunay,v=r.setCurrent,f=r.margin,p=void 0===f?L:f,m=r.detectionRadius,M=void 0===m?1/0:m,b=r.isInteractive,k=void 0===b||b,y=r.onMouseEnter,w=r.onMouseMove,E=r.onMouseLeave,W=r.onClick,x=r.onTouchStart,S=r.onTouchMove,D=r.onTouchEnd,R=r.enableTouchCrosshair,A=void 0!==R&&R,N=r.tooltip,O=r.tooltipPosition,j=void 0===O?T:O,I=r.tooltipAnchor,z=void 0===I?P:I,F=o(null),H=F[0],B=F[1],q=e(null);i((function(){q.current=H}),[q,H]);var G=t((function(n){if(!l.current)return null;var o=a(l.current,n),e=o[0],i=o[1],t=h.find(e,i),r=void 0!==t?u[t]:null;if(r&&M!==1/0){var s=c(r),v=s[0],f=s[1];d(e,i,v+p.left,f+p.top)>M&&(t=null,r=null)}return null===t||null===r?null:[t,r]}),[l,h,u,c,p,M]),J=g(),K=J.showTooltipAt,Q=J.showTooltipFromEvent,U=J.hideTooltip,V=n((function(){if(N)return\"cursor\"===j?function(n,o){Q(N(n),o,z)}:function(n){var o=c(n),e=o[0],i=o[1];K(N(n),[e+p.left,i+p.top],z)}}),[K,Q,N,j,z,c,p]),X=t((function(n){var o=G(n);if(B(o),null==v||v(o?o[1]:null),o){var e=o[1];null==V||V(e,n),null==y||y(o[1],n)}}),[G,B,v,V,y]),Y=t((function(n){var o=G(n);if(B(o),o){var e=o[0],i=o[1];if(null==v||v(i),null==V||V(i,n),q.current){var t=q.current,r=t[0],l=t[1];e!==r?null==E||E(l,n):null==w||w(i,n)}else null==y||y(i,n)}else null==v||v(null),null==U||U(),q.current&&(null==E||E(q.current[1],n))}),[G,B,q,y,w,E,V,U]),Z=t((function(n){B(null),null==v||v(null),U(),E&&q.current&&E(q.current[1],n)}),[B,v,q,U,E]),$=t((function(n){var o=G(n);B(o),o&&(null==W||W(o[1],n))}),[G,B,W]),_=t((function(n){var o=G(n);A&&(B(o),null==v||v(o?o[1]:null)),o&&(null==x||x(o[1],n))}),[G,B,v,A,x]),nn=t((function(n){var o=G(n);A&&(B(o),null==v||v(o?o[1]:null)),o&&(null==S||S(o[1],n))}),[G,B,v,A,S]),on=t((function(n){A&&(B(null),null==v||v(null)),D&&q.current&&D(q.current[1],n)}),[A,B,v,D,q]);return{current:H,handleMouseEnter:k?X:void 0,handleMouseMove:k?Y:void 0,handleMouseLeave:k?Z:void 0,handleClick:k?$:void 0,handleTouchStart:k?_:void 0,handleTouchMove:k?nn:void 0,handleTouchEnd:k?on:void 0}},R=function(n){var o=n.elementRef,e=n.nodes,i=n.getNodePosition,t=n.width,r=n.height,l=n.margin,u=void 0===l?L:l,a=n.isInteractive,d=void 0===a||a,s=n.detectionRadius,c=void 0===s?1/0:s,h=n.setCurrent,v=n.onMouseEnter,f=n.onMouseMove,p=n.onMouseLeave,g=n.onClick,m=n.tooltip,M=n.tooltipPosition,b=void 0===M?T:M,k=n.tooltipAnchor,y=void 0===k?P:k,C=n.debug,w=W({points:e,getNodePosition:i,width:t,height:r,margin:u,debug:void 0!==C&&C}),E=w.delaunay,x=w.voronoi,S=D({elementRef:o,nodes:e,margin:u,setCurrent:h,delaunay:E,detectionRadius:c,isInteractive:d,onMouseEnter:v,onMouseMove:f,onMouseLeave:p,onClick:g,tooltip:m,tooltipPosition:b,tooltipAnchor:y}),R=S.handleMouseEnter,A=S.handleMouseMove,N=S.handleMouseLeave,O=S.handleClick;return{delaunay:E,voronoi:x,current:S.current,handleMouseEnter:R,handleMouseMove:A,handleMouseLeave:N,handleClick:O}},A=[\"theme\"],N=function(n){var o=n.data,e=n.width,i=n.height,t=n.margin,u=n.layers,a=void 0===u?y.layers:u,d=n.xDomain,s=void 0===d?y.xDomain:d,v=n.yDomain,f=void 0===v?y.yDomain:v,p=n.enableLinks,g=void 0===p?y.enableLinks:p,M=n.linkLineWidth,b=void 0===M?y.linkLineWidth:M,k=n.linkLineColor,C=void 0===k?y.linkLineColor:k,L=n.enableCells,T=void 0===L?y.enableCells:L,P=n.cellLineWidth,w=void 0===P?y.cellLineWidth:P,E=n.cellLineColor,W=void 0===E?y.cellLineColor:E,D=n.enablePoints,R=void 0===D?y.enableCells:D,A=n.pointSize,N=void 0===A?y.pointSize:A,O=n.pointColor,j=void 0===O?y.pointColor:O,I=n.role,z=void 0===I?y.role:I,F=c(e,i,t),H=F.outerWidth,B=F.outerHeight,q=F.margin,G=F.innerWidth,J=F.innerHeight,K=x({data:o,width:G,height:J,xDomain:s,yDomain:f}),Q=K.points,U=K.delaunay,V=K.voronoi,X={links:null,cells:null,points:null,bounds:null};g&&a.includes(\"links\")&&(X.links=m(\"path\",{stroke:C,strokeWidth:b,fill:\"none\",d:U.render()},\"links\")),T&&a.includes(\"cells\")&&(X.cells=m(\"path\",{d:V.render(),fill:\"none\",stroke:W,strokeWidth:w},\"cells\")),R&&a.includes(\"points\")&&(X.points=m(\"path\",{stroke:\"none\",fill:j,d:U.renderPoints(void 0,N/2)},\"points\")),a.includes(\"bounds\")&&(X.bounds=m(\"path\",{fill:\"none\",stroke:W,strokeWidth:w,d:V.renderBounds()},\"bounds\"));var Y=S({points:Q,delaunay:U,voronoi:V});return m(h,{width:H,height:B,margin:q,role:z,children:a.map((function(n,o){return void 0!==X[n]?X[n]:\"function\"==typeof n?m(r,{children:l(n,Y)},o):null}))})},O=function(n){var o=n.theme,e=function(n,o){if(null==n)return{};var e,i,t={},r=Object.keys(n);for(i=0;i<r.length;i++)e=r[i],o.indexOf(e)>=0||(t[e]=n[e]);return t}(n,A);return m(s,{isInteractive:!1,animate:!1,theme:o,children:m(N,k({},e))})},j=function(n){return m(v,{children:function(o){var e=o.width,i=o.height;return m(O,k({width:e,height:i},n))}})},I=function(o){var i=o.nodes,t=o.width,r=o.height,l=o.margin,u=void 0===l?L:l,a=o.getNodePosition,d=o.setCurrent,s=o.onMouseEnter,c=o.onMouseMove,h=o.onMouseLeave,v=o.onClick,f=o.onTouchStart,p=o.onTouchMove,g=o.onTouchEnd,k=o.enableTouchCrosshair,y=void 0!==k&&k,C=o.detectionRadius,w=void 0===C?1/0:C,E=o.tooltip,x=o.tooltipPosition,S=void 0===x?T:x,R=o.tooltipAnchor,A=void 0===R?P:R,N=o.debug,O=e(null),j=W({points:i,getNodePosition:a,width:t,height:r,margin:u,debug:N}),I=j.delaunay,z=j.voronoi,F=D({elementRef:O,nodes:i,delaunay:I,margin:u,detectionRadius:w,setCurrent:d,onMouseEnter:s,onMouseMove:c,onMouseLeave:h,onClick:v,onTouchStart:f,onTouchMove:p,onTouchEnd:g,enableTouchCrosshair:y,tooltip:E,tooltipPosition:S,tooltipAnchor:A}),H=F.current,B=F.handleMouseEnter,q=F.handleMouseMove,G=F.handleMouseLeave,J=F.handleClick,K=F.handleTouchStart,Q=F.handleTouchMove,U=F.handleTouchEnd,V=n((function(){if(N&&z)return z.render()}),[N,z]);return M(\"g\",{ref:O,transform:\"translate(\"+-u.left+\",\"+-u.top+\")\",children:[N&&z&&M(b,{children:[m(\"path\",{d:V,stroke:\"red\",strokeWidth:1,opacity:.75}),w<1/0&&m(\"path\",{stroke:\"red\",strokeWidth:.35,fill:\"none\",d:I.renderPoints(void 0,w)}),H&&m(\"path\",{fill:\"pink\",opacity:.35,d:z.renderCell(H[0])})]}),m(\"rect\",{\"data-ref\":\"mesh-interceptor\",width:u.left+t+u.right,height:u.top+r+u.bottom,fill:\"red\",opacity:0,style:{cursor:\"auto\"},onMouseEnter:B,onMouseMove:q,onMouseLeave:G,onTouchStart:K,onTouchMove:Q,onTouchEnd:U,onClick:J})]})},z=function(n,o){n.save(),n.globalAlpha=.75,n.beginPath(),o.render(n),n.strokeStyle=\"red\",n.lineWidth=1,n.stroke(),n.restore()},F=function(n,o,e){n.save(),n.globalAlpha=.15,n.beginPath(),o.renderPoints(n,e),n.strokeStyle=\"red\",n.lineWidth=1,n.stroke(),n.restore()},H=function(n,o,e){n.save(),n.globalAlpha=.35,n.beginPath(),o.renderCell(e,n),n.fillStyle=\"pink\",n.fill(),n.restore()},B=function(n,o){var e=o.delaunay,i=o.voronoi,t=o.detectionRadius,r=o.index;z(n,i),t<1/0&&F(n,e,t),null!==r&&H(n,i,r)};export{I as Mesh,j as ResponsiveVoronoi,O as Voronoi,E as computeMesh,w as computeMeshPoints,y as defaultVoronoiProps,B as renderDebugToCanvas,F as renderDelaunayPointsToCanvas,H as renderVoronoiCellToCanvas,z as renderVoronoiToCanvas,R as useMesh,D as useMeshEvents,x as useVoronoi,S as useVoronoiLayerContext,W as useVoronoiMesh};\n//# sourceMappingURL=nivo-voronoi.es.js.map\n","import{memo as e,useMemo as o,useState as i,useCallback as t,createElement as n,Fragment as r,forwardRef as a,useRef as l,useEffect as s}from\"react\";import{useTheme as d,curveFromProp as c,useValueFormatter as u,useMotionConfig as h,useAnimatedPath as f,getLabelGenerator as v,DotsItem as p,withContainer as m,useDimensions as g,CartesianMarkers as y,bindDefs as x,SvgWrapper as b,ResponsiveWrapper as S,getRelativeCursor as M,isCursorInRect as C}from\"@nivo/core\";import{useOrdinalColorScale as w,useInheritedColor as T}from\"@nivo/colors\";import{Grid as k,Axes as B,renderGridLinesToCanvas as W,renderAxesToCanvas as E}from\"@nivo/axes\";import{BoxLegendSvg as L,renderLegendToCanvas as G}from\"@nivo/legends\";import{BasicTooltip as P,TableTooltip as F,Chip as O,useTooltip as V,Crosshair as I}from\"@nivo/tooltip\";import{line as H,area as Y}from\"d3-shape\";import{computeXYScalesForSeries as R}from\"@nivo/scales\";import A from\"lodash/uniqueId\";import{jsx as X,jsxs as z}from\"react/jsx-runtime\";import{useSpring as j,animated as D}from\"@react-spring/web\";import{Mesh as q,useVoronoiMesh as J,renderVoronoiToCanvas as K,renderVoronoiCellToCanvas as N}from\"@nivo/voronoi\";function Q(){return Q=Object.assign?Object.assign.bind():function(e){for(var o=1;o<arguments.length;o++){var i=arguments[o];for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=i[t])}return e},Q.apply(this,arguments)}var U=e((function(e){var o=e.point;return X(P,{id:z(\"span\",{children:[\"x: \",X(\"strong\",{children:o.data.xFormatted}),\", y:\",\" \",X(\"strong\",{children:o.data.yFormatted})]}),enableChip:!0,color:o.serieColor})})),Z=e((function(e){var o=e.slice,i=e.axis,t=d(),n=\"x\"===i?\"y\":\"x\";return X(F,{rows:o.points.map((function(e){return[X(O,{color:e.serieColor,style:t.tooltip.chip},\"chip\"),e.serieId,X(\"span\",{style:t.tooltip.tableCellValue,children:e.data[n+\"Formatted\"]},\"value\")]}))})})),$={curve:\"linear\",xScale:{type:\"point\"},yScale:{type:\"linear\",min:0,max:\"auto\"},layers:[\"grid\",\"markers\",\"axes\",\"areas\",\"crosshair\",\"lines\",\"points\",\"slices\",\"mesh\",\"legends\"],axisBottom:{},axisLeft:{},enableGridX:!0,enableGridY:!0,enablePoints:!0,pointSize:6,pointColor:{from:\"color\"},pointBorderWidth:0,pointBorderColor:{theme:\"background\"},enablePointLabel:!1,pointLabel:\"yFormatted\",colors:{scheme:\"nivo\"},enableArea:!1,areaBaselineValue:0,areaOpacity:.2,areaBlendMode:\"normal\",lineWidth:2,legends:[],isInteractive:!0,tooltip:U,enableSlices:!1,debugSlices:!1,sliceTooltip:Z,debugMesh:!1,enableCrosshair:!0,crosshairType:\"bottom-left\"},_=Q({},$,{enablePointLabel:!1,useMesh:!1,enableTouchCrosshair:!1,animate:!0,motionConfig:\"gentle\",defs:[],fill:[],role:\"img\",initialHiddenIds:[]}),ee=Q({},$,{pixelRatio:\"undefined\"!=typeof window&&window.devicePixelRatio||1}),oe=function(e){var i=e.curve;return o((function(){return H().defined((function(e){return null!==e.x&&null!==e.y})).x((function(e){return e.x})).y((function(e){return e.y})).curve(c(i))}),[i])},ie=function(e){var i=e.curve,t=e.yScale,n=e.areaBaselineValue;return o((function(){return Y().defined((function(e){return null!==e.x&&null!==e.y})).x((function(e){return e.x})).y1((function(e){return e.y})).curve(c(i)).y0(t(n))}),[i,t,n])},te=function(e){var i=e.componentId,t=e.enableSlices,n=e.points,r=e.width,a=e.height;return o((function(){if(!1===t)return[];if(\"x\"===t){var e=new Map;return n.forEach((function(o){null!==o.data.x&&null!==o.data.y&&(e.has(o.x)?e.get(o.x).push(o):e.set(o.x,[o]))})),Array.from(e.entries()).sort((function(e,o){return e[0]-o[0]})).map((function(e,o,t){var n,l,s=e[0],d=e[1],c=t[o-1],u=t[o+1];return n=c?s-(s-c[0])/2:s,l=u?s-n+(u[0]-s)/2:r-n,{id:\"slice:\"+i+\":\"+s,x0:n,x:s,y0:0,y:0,width:l,height:a,points:d.reverse()}}))}if(\"y\"===t){var o=new Map;return n.forEach((function(e){null!==e.data.x&&null!==e.data.y&&(o.has(e.y)?o.get(e.y).push(e):o.set(e.y,[e]))})),Array.from(o.entries()).sort((function(e,o){return e[0]-o[0]})).map((function(e,o,i){var t,n,l=e[0],s=e[1],d=i[o-1],c=i[o+1];return t=d?l-(l-d[0])/2:l,n=c?l-t+(c[0]-l)/2:a-t,{id:l,x0:0,x:0,y0:t,y:l,width:r,height:n,points:s.reverse()}}))}}),[i,t,a,n,r])},ne=\"line\",re=function(e){var n=e.data,r=e.xScale,a=void 0===r?_.xScale:r,l=e.xFormat,s=e.yScale,c=void 0===s?_.yScale:s,h=e.yFormat,f=e.width,v=e.height,p=e.colors,m=void 0===p?_.colors:p,g=e.curve,y=void 0===g?_.curve:g,x=e.areaBaselineValue,b=void 0===x?_.areaBaselineValue:x,S=e.pointColor,M=void 0===S?_.pointColor:S,C=e.pointBorderColor,k=void 0===C?_.pointBorderColor:C,B=e.enableSlices,W=void 0===B?_.enableSlicesTooltip:B,E=e.initialHiddenIds,L=void 0===E?_.initialHiddenIds:E,G=i(A(ne))[0],P=u(l),F=u(h),O=w(m,\"id\"),V=d(),I=T(M,V),H=T(k,V),Y=i(null!=L?L:[]),X=Y[0],z=Y[1],j=o((function(){return R(n.filter((function(e){return-1===X.indexOf(e.id)})),a,c,f,v)}),[n,X,a,c,f,v]),D=j.xScale,q=j.yScale,J=j.series,K=o((function(){var e=n.map((function(e){return{id:e.id,label:e.id,color:O(e)}})),o=e.map((function(e){return Q({},J.find((function(o){return o.id===e.id})),{color:e.color})})).filter((function(e){return Boolean(e.id)}));return{legendData:e.map((function(e){return Q({},e,{hidden:!o.find((function(o){return o.id===e.id}))})})).reverse(),series:o}}),[n,J,O]),N=K.legendData,U=K.series,Z=t((function(e){z((function(o){return o.indexOf(e)>-1?o.filter((function(o){return o!==e})):[].concat(o,[e])}))}),[]),$=function(e){var i=e.series,t=e.getPointColor,n=e.getPointBorderColor,r=e.formatX,a=e.formatY;return o((function(){return i.reduce((function(e,o){return[].concat(e,o.data.filter((function(e){return null!==e.position.x&&null!==e.position.y})).map((function(i,l){var s={id:o.id+\".\"+l,index:e.length+l,serieId:o.id,serieColor:o.color,x:i.position.x,y:i.position.y};return s.color=t(o),s.borderColor=n(s),s.data=Q({},i.data,{xFormatted:r(i.data.x),yFormatted:a(i.data.y)}),s})))}),[])}),[i,t,n,r,a])}({series:U,getPointColor:I,getPointBorderColor:H,formatX:P,formatY:F}),ee=te({componentId:G,enableSlices:W,points:$,width:f,height:v});return{legendData:N,toggleSerie:Z,lineGenerator:oe({curve:y}),areaGenerator:ie({curve:y,yScale:q,areaBaselineValue:b}),getColor:O,series:U,xScale:D,yScale:q,slices:ee,points:$}},ae=function(e){var o=e.areaBlendMode,i=e.areaOpacity,t=e.color,n=e.fill,r=e.path,a=h(),l=a.animate,s=a.config,d=f(r),c=j({color:t,config:s,immediate:!l});return X(D.path,{d:d,fill:n||c.color,fillOpacity:i,strokeWidth:0,style:{mixBlendMode:o}})},le=e((function(e){var o=e.areaGenerator,i=e.areaOpacity,t=e.areaBlendMode,n=e.lines.slice(0).reverse();return X(\"g\",{children:n.map((function(e){return X(ae,Q({path:o(e.data.map((function(e){return e.position})))},Q({areaOpacity:i,areaBlendMode:t},e)),e.id)}))})})),se=e((function(e){var i=e.lineGenerator,t=e.points,n=e.color,r=e.thickness,a=o((function(){return i(t)}),[i,t]),l=f(a);return X(D.path,{d:l,fill:\"none\",strokeWidth:r,stroke:n})})),de=e((function(e){var o=e.lines,i=e.lineGenerator,t=e.lineWidth;return o.slice(0).reverse().map((function(e){var o=e.id,n=e.data,r=e.color;return X(se,{id:o,points:n.map((function(e){return e.position})),lineGenerator:i,color:r,thickness:t},o)}))})),ce=e((function(e){var o=e.slice,i=e.slices,r=e.axis,a=e.debug,l=e.tooltip,s=e.isCurrent,d=e.setCurrent,c=e.onMouseEnter,u=e.onMouseMove,h=e.onMouseLeave,f=e.onClick,v=e.onTouchStart,p=e.onTouchMove,m=e.onTouchEnd,g=V(),y=g.showTooltipFromEvent,x=g.hideTooltip,b=t((function(e){y(n(l,{slice:o,axis:r}),e,\"right\"),d(o),c&&c(o,e)}),[y,l,o,r,d,c]),S=t((function(e){y(n(l,{slice:o,axis:r}),e,\"right\"),u&&u(o,e)}),[y,l,o,r,u]),M=t((function(e){x(),d(null),h&&h(o,e)}),[x,d,h,o]),C=t((function(e){f&&f(o,e)}),[o,f]),w=t((function(e){y(n(l,{slice:o,axis:r}),e,\"right\"),d(o),v&&v(o,e)}),[r,v,d,y,o,l]),T=t((function(e){var t=e.touches[0],a=document.elementFromPoint(t.clientX,t.clientY),s=null==a?void 0:a.getAttribute(\"data-ref\");if(s){var c=i.find((function(e){return e.id===s}));c&&(y(n(l,{slice:c,axis:r}),e,\"right\"),d(c))}p&&p(o,e)}),[r,p,d,y,o,i,l]),k=t((function(e){x(),d(null),m&&m(o,e)}),[x,d,m,o]);return X(\"rect\",{x:o.x0,y:o.y0,width:o.width,height:o.height,stroke:\"red\",strokeWidth:a?1:0,strokeOpacity:.75,fill:\"red\",fillOpacity:s&&a?.35:0,onMouseEnter:b,onMouseMove:S,onMouseLeave:M,onClick:C,onTouchStart:w,onTouchMove:T,onTouchEnd:k,\"data-ref\":o.id})})),ue=e((function(e){var o=e.slices,i=e.axis,t=e.debug,n=e.height,r=e.tooltip,a=e.current,l=e.setCurrent,s=e.onMouseEnter,d=e.onMouseMove,c=e.onMouseLeave,u=e.onClick,h=e.onTouchStart,f=e.onTouchMove,v=e.onTouchEnd;return o.map((function(e){return X(ce,{slice:e,slices:o,axis:i,debug:t,height:n,tooltip:r,setCurrent:l,isCurrent:null!==a&&a.id===e.id,onMouseEnter:s,onMouseMove:d,onMouseLeave:c,onClick:u,onTouchStart:h,onTouchMove:f,onTouchEnd:v},e.id)}))})),he=e((function(e){var o=e.points,i=e.symbol,t=e.size,n=e.borderWidth,r=e.enableLabel,a=e.label,l=e.labelYOffset,s=d(),c=v(a),u=o.slice(0).reverse().map((function(e){return{id:e.id,x:e.x,y:e.y,datum:e.data,fill:e.color,stroke:e.borderColor,label:r?c(e):null}}));return X(\"g\",{children:u.map((function(e){return X(p,{x:e.x,y:e.y,datum:e.datum,symbol:i,size:t,color:e.fill,borderWidth:n,borderColor:e.stroke,label:e.label,labelYOffset:l,theme:s},e.id)}))})})),fe=e((function(e){var o=e.points,i=e.width,r=e.height,a=e.margin,l=e.setCurrent,s=e.onMouseEnter,d=e.onMouseMove,c=e.onMouseLeave,u=e.onClick,h=e.onTouchStart,f=e.onTouchMove,v=e.onTouchEnd,p=e.tooltip,m=e.debug,g=e.enableTouchCrosshair,y=V(),x=y.showTooltipAt,b=y.hideTooltip,S=t((function(e,o){x(n(p,{point:e}),[e.x+a.left,e.y+a.top],\"top\"),s&&s(e,o)}),[x,p,s,a]),M=t((function(e,o){x(n(p,{point:e}),[e.x+a.left,e.y+a.top],\"top\"),d&&d(e,o)}),[x,p,a.left,a.top,d]),C=t((function(e,o){b(),c&&c(e,o)}),[b,c]),w=t((function(e,o){u&&u(e,o)}),[u]),T=t((function(e,o){x(n(p,{point:e}),[e.x+a.left,e.y+a.top],\"top\"),h&&h(e,o)}),[a.left,a.top,h,x,p]),k=t((function(e,o){x(n(p,{point:e}),[e.x+a.left,e.y+a.top],\"top\"),f&&f(e,o)}),[a.left,a.top,f,x,p]),B=t((function(e,o){b(),v&&v(e,o)}),[v,b]);return X(q,{nodes:o,width:i,height:r,setCurrent:l,onMouseEnter:S,onMouseMove:M,onMouseLeave:C,onClick:w,onTouchStart:T,onTouchMove:k,onTouchEnd:B,enableTouchCrosshair:g,debug:m})})),ve=m((function(e){var o=e.data,t=e.xScale,n=void 0===t?{type:\"point\"}:t,a=e.xFormat,l=e.yScale,s=void 0===l?{type:\"linear\",min:0,max:\"auto\"}:l,c=e.yFormat,u=e.layers,h=void 0===u?[\"grid\",\"markers\",\"axes\",\"areas\",\"crosshair\",\"lines\",\"points\",\"slices\",\"mesh\",\"legends\"]:u,f=e.curve,v=void 0===f?\"linear\":f,p=e.areaBaselineValue,m=void 0===p?0:p,S=e.colors,M=void 0===S?{scheme:\"nivo\"}:S,C=e.margin,w=e.width,W=e.height,E=e.axisTop,G=e.axisRight,P=e.axisBottom,F=void 0===P?{}:P,O=e.axisLeft,V=void 0===O?{}:O,H=e.enableGridX,Y=void 0===H||H,R=e.enableGridY,A=void 0===R||R,z=e.gridXValues,j=e.gridYValues,D=e.lineWidth,q=void 0===D?2:D,J=e.enableArea,K=void 0!==J&&J,N=e.areaOpacity,$=void 0===N?.2:N,_=e.areaBlendMode,ee=void 0===_?\"normal\":_,oe=e.enablePoints,ie=void 0===oe||oe,te=e.pointSymbol,ne=e.pointSize,ae=void 0===ne?6:ne,se=e.pointColor,ce=void 0===se?{from:\"color\"}:se,ve=e.pointBorderWidth,pe=void 0===ve?0:ve,me=e.pointBorderColor,ge=void 0===me?{theme:\"background\"}:me,ye=e.enablePointLabel,xe=void 0!==ye&&ye,be=e.pointLabel,Se=void 0===be?\"data.yFormatted\":be,Me=e.pointLabelYOffset,Ce=e.defs,we=void 0===Ce?[]:Ce,Te=e.fill,ke=void 0===Te?[]:Te,Be=e.markers,We=e.legends,Ee=void 0===We?[]:We,Le=e.isInteractive,Ge=void 0===Le||Le,Pe=e.useMesh,Fe=void 0!==Pe&&Pe,Oe=e.debugMesh,Ve=void 0!==Oe&&Oe,Ie=e.onMouseEnter,He=e.onMouseMove,Ye=e.onMouseLeave,Re=e.onClick,Ae=e.onTouchStart,Xe=e.onTouchMove,ze=e.onTouchEnd,je=e.tooltip,De=void 0===je?U:je,qe=e.enableSlices,Je=void 0!==qe&&qe,Ke=e.debugSlices,Ne=void 0!==Ke&&Ke,Qe=e.sliceTooltip,Ue=void 0===Qe?Z:Qe,Ze=e.enableCrosshair,$e=void 0===Ze||Ze,_e=e.crosshairType,eo=void 0===_e?\"bottom-left\":_e,oo=e.enableTouchCrosshair,io=void 0!==oo&&oo,to=e.role,no=void 0===to?\"img\":to,ro=e.initialHiddenIds,ao=void 0===ro?[]:ro,lo=g(w,W,C),so=lo.margin,co=lo.innerWidth,uo=lo.innerHeight,ho=lo.outerWidth,fo=lo.outerHeight,vo=re({data:o,xScale:n,xFormat:a,yScale:s,yFormat:c,width:co,height:uo,colors:M,curve:v,areaBaselineValue:m,pointColor:ce,pointBorderColor:ge,enableSlices:Je,initialHiddenIds:ao}),po=vo.legendData,mo=vo.toggleSerie,go=vo.lineGenerator,yo=vo.areaGenerator,xo=vo.series,bo=vo.xScale,So=vo.yScale,Mo=vo.slices,Co=vo.points,wo=d(),To=T(ce,wo),ko=T(ge,wo),Bo=i(null),Wo=Bo[0],Eo=Bo[1],Lo=i(null),Go=Lo[0],Po=Lo[1],Fo={grid:X(k,{theme:wo,width:co,height:uo,xScale:Y?bo:null,yScale:A?So:null,xValues:z,yValues:j},\"grid\"),markers:X(y,{markers:Be,width:co,height:uo,xScale:bo,yScale:So,theme:wo},\"markers\"),axes:X(B,{xScale:bo,yScale:So,width:co,height:uo,theme:wo,top:E,right:G,bottom:F,left:V},\"axes\"),areas:null,lines:X(de,{lines:xo,lineGenerator:go,lineWidth:q},\"lines\"),slices:null,points:null,crosshair:null,mesh:null,legends:Ee.map((function(e,o){return X(L,Q({},e,{containerWidth:co,containerHeight:uo,data:e.data||po,theme:wo,toggleSerie:e.toggleSerie?mo:void 0}),\"legend.\"+o)}))},Oo=x(we,xo,ke);return K&&(Fo.areas=X(le,{areaGenerator:yo,areaOpacity:$,areaBlendMode:ee,lines:xo},\"areas\")),Ge&&!1!==Je&&(Fo.slices=X(ue,{slices:Mo,axis:Je,debug:Ne,height:uo,tooltip:Ue,current:Go,setCurrent:Po,onMouseEnter:Ie,onMouseMove:He,onMouseLeave:Ye,onClick:Re,onTouchStart:Ae,onTouchMove:Xe,onTouchEnd:ze},\"slices\")),ie&&(Fo.points=X(he,{points:Co,symbol:te,size:ae,color:To,borderWidth:pe,borderColor:ko,enableLabel:xe,label:Se,labelYOffset:Me},\"points\")),Ge&&$e&&(null!==Wo&&(Fo.crosshair=X(I,{width:co,height:uo,x:Wo.x,y:Wo.y,type:eo},\"crosshair\")),null!==Go&&(Fo.crosshair=X(I,{width:co,height:uo,x:Go.x,y:Go.y,type:Je},\"crosshair\"))),Ge&&Fe&&!1===Je&&(Fo.mesh=X(fe,{points:Co,width:co,height:uo,margin:so,current:Wo,setCurrent:Eo,onMouseEnter:Ie,onMouseMove:He,onMouseLeave:Ye,onClick:Re,onTouchStart:Ae,onTouchMove:Xe,onTouchEnd:ze,tooltip:De,enableTouchCrosshair:io,debug:Ve},\"mesh\")),X(b,{defs:Oo,width:ho,height:fo,margin:so,role:no,children:h.map((function(o,i){return\"function\"==typeof o?X(r,{children:o(Q({},e,{innerWidth:co,innerHeight:uo,series:xo,slices:Mo,points:Co,xScale:bo,yScale:So,lineGenerator:go,areaGenerator:yo,currentPoint:Wo,setCurrentPoint:Eo,currentSlice:Go,setCurrentSlice:Po}))},i):Fo[o]}))})})),pe=function(e){return X(S,{children:function(o){var i=o.width,t=o.height;return X(ve,Q({width:i,height:t},e))}})},me=m((function(e){var o=l(null),r=e.width,a=e.height,c=e.margin,u=e.pixelRatio,h=void 0===u?\"undefined\"!=typeof window&&window.devicePixelRatio||1:u,f=e.data,v=e.xScale,p=void 0===v?{type:\"point\"}:v,m=e.xFormat,y=e.yScale,x=void 0===y?{type:\"linear\",min:0,max:\"auto\"}:y,b=e.yFormat,S=e.curve,w=void 0===S?\"linear\":S,T=e.layers,k=void 0===T?[\"grid\",\"markers\",\"axes\",\"areas\",\"crosshair\",\"lines\",\"points\",\"slices\",\"mesh\",\"legends\"]:T,B=e.colors,L=void 0===B?{scheme:\"nivo\"}:B,P=e.lineWidth,F=void 0===P?2:P,O=e.enableArea,I=void 0!==O&&O,H=e.areaBaselineValue,Y=void 0===H?0:H,R=e.areaOpacity,A=void 0===R?.2:R,z=e.enablePoints,j=void 0===z||z,D=e.pointSize,q=void 0===D?6:D,Z=e.pointColor,$=void 0===Z?{from:\"color\"}:Z,_=e.pointBorderWidth,ee=void 0===_?0:_,oe=e.pointBorderColor,ie=void 0===oe?{theme:\"background\"}:oe,te=e.enableGridX,ne=void 0===te||te,ae=e.gridXValues,le=e.enableGridY,se=void 0===le||le,de=e.gridYValues,ce=e.axisTop,ue=e.axisRight,he=e.axisBottom,fe=void 0===he?{}:he,ve=e.axisLeft,pe=void 0===ve?{}:ve,me=e.legends,ge=void 0===me?[]:me,ye=e.isInteractive,xe=void 0===ye||ye,be=e.debugMesh,Se=void 0!==be&&be,Me=e.onMouseLeave,Ce=e.onClick,we=e.tooltip,Te=void 0===we?U:we,ke=e.canvasRef,Be=g(r,a,c),We=Be.margin,Ee=Be.innerWidth,Le=Be.innerHeight,Ge=Be.outerWidth,Pe=Be.outerHeight,Fe=d(),Oe=i(null),Ve=Oe[0],Ie=Oe[1],He=re({data:f,xScale:p,xFormat:m,yScale:x,yFormat:b,width:Ee,height:Le,colors:L,curve:w,areaBaselineValue:Y,pointColor:$,pointBorderColor:ie}),Ye=He.lineGenerator,Re=He.areaGenerator,Ae=He.series,Xe=He.xScale,ze=He.yScale,je=He.points,De=J({points:je,width:Ee,height:Le,debug:Se}),qe=De.delaunay,Je=De.voronoi;s((function(){ke&&(ke.current=o.current),o.current.width=Ge*h,o.current.height=Pe*h;var e=o.current.getContext(\"2d\");e.scale(h,h),e.fillStyle=Fe.background,e.fillRect(0,0,Ge,Pe),e.translate(We.left,We.top),k.forEach((function(o){if(\"function\"==typeof o&&o({ctx:e,innerWidth:Ee,innerHeight:Le,series:Ae,points:je,xScale:Xe,yScale:ze,lineWidth:F,lineGenerator:Ye,areaGenerator:Re,currentPoint:Ve,setCurrentPoint:Ie}),\"grid\"===o&&Fe.grid.line.strokeWidth>0&&(e.lineWidth=Fe.grid.line.strokeWidth,e.strokeStyle=Fe.grid.line.stroke,ne&&W(e,{width:Ee,height:Le,scale:Xe,axis:\"x\",values:ae}),se&&W(e,{width:Ee,height:Le,scale:ze,axis:\"y\",values:de})),\"axes\"===o&&E(e,{xScale:Xe,yScale:ze,width:Ee,height:Le,top:ce,right:ue,bottom:fe,left:pe,theme:Fe}),\"areas\"===o&&!0===I){e.save(),e.globalAlpha=A,Re.context(e);for(var i=Ae.length-1;i>=0;i--)e.fillStyle=Ae[i].color,e.beginPath(),Re(Ae[i].data.map((function(e){return e.position}))),e.fill();e.restore()}if(\"lines\"===o&&(Ye.context(e),Ae.forEach((function(o){e.strokeStyle=o.color,e.lineWidth=F,e.beginPath(),Ye(o.data.map((function(e){return e.position}))),e.stroke()}))),\"points\"===o&&!0===j&&q>0&&je.forEach((function(o){e.fillStyle=o.color,e.beginPath(),e.arc(o.x,o.y,q/2,0,2*Math.PI),e.fill(),ee>0&&(e.strokeStyle=o.borderColor,e.lineWidth=ee,e.stroke())})),\"mesh\"===o&&!0===Se&&(K(e,Je),Ve&&N(e,Je,Ve.index)),\"legends\"===o){var t=Ae.map((function(e){return{id:e.id,label:e.id,color:e.color}})).reverse();ge.forEach((function(o){G(e,Q({},o,{data:o.data||t,containerWidth:Ee,containerHeight:Le,theme:Fe}))}))}}))}),[o,Ge,Pe,k,Fe,Ye,Ae,Xe,ze,ne,ae,se,de,ce,ue,fe,pe,ge,je,j,q,Ve]);var Ke=t((function(e){var i=M(o.current,e),t=i[0],n=i[1];if(!C(We.left,We.top,Ee,Le,t,n))return null;var r=qe.find(t-We.left,n-We.top);return je[r]}),[o,We,Ee,Le,qe]),Ne=V(),Qe=Ne.showTooltipFromEvent,Ue=Ne.hideTooltip,Ze=t((function(e){var o=Ke(e);Ie(o),o?Qe(n(Te,{point:o}),e):Ue()}),[Ke,Ie,Qe,Ue,Te]),$e=t((function(e){Ue(),Ie(null),Ve&&Me&&Me(Ve,e)}),[Ue,Ie,Me]),_e=t((function(e){if(Ce){var o=Ke(e);o&&Ce(o,e)}}),[Ke,Ce]);return X(\"canvas\",{ref:o,width:Ge*h,height:Pe*h,style:{width:Ge,height:Pe,cursor:xe?\"auto\":\"normal\"},onMouseEnter:xe?Ze:void 0,onMouseMove:xe?Ze:void 0,onMouseLeave:xe?$e:void 0,onClick:xe?_e:void 0})})),ge=a((function(e,o){return X(me,Q({},e,{canvasRef:o}))})),ye=a((function(e,o){return X(S,{children:function(i){var t=i.width,n=i.height;return X(ge,Q({width:t,height:n},e,{ref:o}))}})}));export{ne as LINE_UNIQUE_ID_PREFIX,ve as Line,ge as LineCanvas,ee as LineCanvasDefaultProps,_ as LineDefaultProps,pe as ResponsiveLine,ye as ResponsiveLineCanvas,ie as useAreaGenerator,re as useLine,oe as useLineGenerator,te as useSlices};\n//# sourceMappingURL=nivo-line.es.js.map\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(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",null],"names":["f","u","e","t","n","o","i","a","c","p","l","type","props","key","ref","__k","__","__b","__e","__d","undefined","__c","constructor","__v","__i","__u","__source","__self","defaultProps","r","vnode","Array","isArray","length","clsx","arguments","globalThis","window","global","self","deepmerge","exports","isMergeableObject","val","Object","prototype","toString","call","emptyTarget","cloneIfNecessary","value","optionsArgument","clone","defaultArrayMerge","target","source","destination","slice","forEach","indexOf","push","mergeObject","keys","array","arrayMerge","all","Error","reduce","prev","next","factory","merge","module","namespaces$1","default","svg","name","uri","xlink","namespaces","svg$1","xlink$1","defaultAttrs","wrapInSvgString","content","attributes","attrsRendered","attrs","map","attr","replace","join","objectToAttrsString","defaultConfig$1","style","Sprite","config","this","symbols","add","symbol","existing","find","id","remove","splice","destroy","filter","s","has","stringify","SpriteSymbol","viewBox","prop","parse","hasImportNode","document","importNode","doc","DOMParser","parseFromString","documentElement","BrowserSpriteSymbol","isMounted","node","createFromExistingNode","getAttribute","outerHTML","unmount","super","mount","mountTarget","querySelector","render","appendChild","childNodes","parentNode","removeChild","defaultConfig","autoConfigure","mountTo","syncUrlsWithBaseTag","listenLocationChangeEvent","locationChangeEvent","locationChangeAngularEmitter","usagesToUpdate","moveGradientsOutsideSymbol","arrayFrom","arrayLike","browser","test","navigator","userAgent","getUrlWithoutFragment","url","location","href","split","eventName","angular","run","$rootScope","$on","newUrl","oldUrl","data","event","createEvent","initCustomEvent","dispatchEvent","selector","querySelectorAll","insertBefore","xLinkNS","xLinkAttrName","specialUrlCharsPattern","encoder","match","charCodeAt","toUpperCase","attList","attSelector","updateUrls","references","startsWith","replaceWith","startsWithEncoded","replaceWithEncoded","nodes","matcher","acc","matched","concat","selectAttributes","localName","RegExp","setAttributeNS","updateReferences","Events","spriteNodeId","spriteGlobalVarName","loadSprite","getElementById","sprite","attach","body","cfg","emitter","create","on","handler","off","emit","evt","_emitter","_autoConfigure","baseUrl","getElementsByTagName","handleLocationChange","_handleLocationChange","bind","addEventListener","spriteNode","symbolNode","updatedNodes","textContent","evalStylesIEWorkaround","detail","isNewSymbol","removeEventListener","prepend","mountNode","usages","listener","fns","hack","domContentLoaded","loaded","doScroll","readyState","shift","fn","setTimeout","allureIcons","arrowsChevronDown","github","lineAlertsAlertCircle","lineAlertsNotificationBox","lineArrowsChevronDown","lineArrowsChevronDownDouble","lineArrowsChevronRight","lineArrowsChevronUp","lineArrowsChevronUpDouble","lineArrowsCornerDownRight","lineArrowsExpand3","lineArrowsRefreshCcw1","lineArrowsSortLineAsc","lineArrowsSortLineDesc","lineArrowsSwitchVertical1","lineChartsBarChartSquare","lineDevBug2","lineDevCodeSquare","lineDevDataflow3","lineFilesClipboardCheck","lineFilesFile2","lineFilesFileAttachment2","lineFilesFolder","lineGeneralCheck","lineGeneralChecklist3","lineGeneralCopy3","lineGeneralDownloadCloud","lineGeneralEqual","lineGeneralEye","lineGeneralHomeLine","lineGeneralLink1","lineGeneralLinkExternal","lineGeneralSearchMd","lineGeneralSettings1","lineGeneralXClose","lineGeneralZap","lineHelpersFlag","lineHelpersPlayCircle","lineIconBomb2","lineImagesImage","lineLayoutsColumn2","lineLayoutsLayoutTop","lineSecurityKey","lineShapesDotCircle","lineShapesMoon","lineShapesSun","lineTimeClockStopwatch","reportLogo","solidAlertCircle","solidCheckCircle","solidHelpCircle","solidMinusCircle","solidXCircle","spinner","view","viewOff","SvgIcon","size","inline","className","_jsx","styles","icon","children","xlinkHref","Spinner","role","spinnerIcon","Text","tag","Tag","bold","rest","Code","Heading","BaseBtn","text","iconSize","onClick","isPending","action","fullWidth","isDisabled","isIconButton","isDropdownButton","isActive","focusable","isButtonDisabled","tabIndex","button","buttonIcon","danger","positive","pending","active","disabled","_jsxs","contentIcon","leadingIcon","dropdownIcon","Button","IconButton","DropdownButton","isExpanded","min","Math","max","oppositeSideMap","left","right","bottom","top","oppositeAlignmentMap","start","end","clamp","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","includes","getAlignmentAxis","getOppositeAlignmentPlacement","alignment","getOppositePlacement","side","rectToClientRect","rect","x","y","width","height","computeCoordsFromPlacement","_ref","rtl","reference","floating","sideAxis","alignmentAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","async","detectOverflow","state","options","_await$platform$isEle","platform","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","padding","paddingObject","expandPaddingObject","getPaddingObject","element","clippingClientRect","getClippingRect","isElement","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","round","floor","createCoords","v","hasWindow","getNodeName","isNode","nodeName","toLowerCase","getWindow","_node$ownerDocument","ownerDocument","defaultView","Node","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflow","overflowX","overflowY","display","getComputedStyle","isTableElement","isTopLayer","some","matches","isContainingBlock","elementOrCss","webkit","isWebKit","css","containerType","backdropFilter","willChange","contain","CSS","supports","isLastTraversableNode","getNodeScroll","scrollLeft","scrollTop","scrollX","scrollY","getParentNode","result","assignedSlot","host","getNearestOverflowAncestor","getOverflowAncestors","list","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","visualViewport","parent","getPrototypeOf","getCssDimensions","parseFloat","hasOffset","offsetWidth","offsetHeight","shouldFallback","$","unwrapElement","domElement","getBoundingClientRect","Number","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","leftScroll","getHTMLOffset","scroll","ignoreScrollbarX","htmlRect","getClientRectFromClippingAncestor","clippingAncestor","html","clientWidth","clientHeight","visualViewportBased","getViewportRect","scrollWidth","scrollHeight","direction","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","position","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","htmlOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","svgOffsetParent","currentNode","getContainingBlock","topLayer","clippingAncestors","cache","cachedResult","get","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","set","getClippingElementAncestors","_c","firstClippingAncestor","clippingRect","accRect","getElementRects","getOffsetParentFn","getDimensionsFn","getDimensions","floatingDimensions","getClientRects","from","isRTL","rectsAreEqual","b","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","passive","cleanupIo","onMove","timeoutId","io","root","cleanup","_io","clearTimeout","disconnect","refresh","skip","threshold","elementRectForRootMargin","rootMargin","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset","_middlewareData$offse","_middlewareData$arrow","middlewareData","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","convertValueToCoords","arrow","alignmentOffset","checkMainAxis","checkCrossAxis","limiter","detectOverflowOptions","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","enabled","flip","_middlewareData$flip","initialPlacement","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","initialSideAxis","isBasePlacement","oppositePlacement","getExpandedPlacements","hasFallbackAxisSideDirection","isStart","lr","rl","tb","bt","getSideList","getOppositeAxisPlacements","placements","overflows","overflowsData","sides","mainAlignmentSide","getAlignmentSides","every","_middlewareData$flip2","_overflowsData$filter","nextIndex","index","nextPlacement","reset","resetPlacement","d","sort","_overflowsData$filter2","currentSideAxis","computePosition","Map","mergedOptions","platformWithCache","middleware","validMiddleware","Boolean","statefulPlacement","resetCount","nextX","nextY","computePosition$1","Tooltip","TooltipWrapper","tooltipText","tooltipTextAfterClick","tooltipComponent","triggerMode","autoHideDelay","isTriggerActive","tooltipRef","useRef","triggerRef","isVisible","setIsVisible","useState","currentText","setCurrentText","hideTimer","useEffect","updatePosition","current","then","assign","tooltipContent","onMouseEnter","onMouseLeave","Loadable","transformData","renderLoader","renderError","err","renderData","loading","error","PageLoader","useDebouncedCallback","cb","timeout","cbRef","useCallback","timer","args","debounce","SearchBox","placeholder","onChange","changeDebounce","localValue","setLocalValue","onChangeDebounced","showClear","searchIcon","onInput","newValue","autocomplete","closeIcon","preventDefault","stopPropagation","MenuContext","createContext","Menu","menuTrigger","menuTriggerWrapper","MenuTriggerWrapper","isInitialOpened","isOpened","setIsOpened","menuRef","handleEscape","handleClickOutside","contains","Provider","_Fragment","menu","Section","section","Item","context","useContext","useMenuContext","rightSlot","ariaLabel","closeMenuOnClick","isInteractive","hasLeadingIcon","menuListItem","menuItem","interactive","ItemWithCheckmark","isChecked","itemProps","checkmarkIcon","check","loadReportData","Promise","resolve","waitForReady","allureReportDataReady","reject","allureReportData","fetchReportAttachment","path","contentType","dataKey","baseEl","head","URL","liveReloadHash","localStorage","getItem","searchParams","pathname","search","hash","reportDataUrl","fetch","fetchFromUrl","ext","blobAttachment","response","blob","attachmentType","Prism","_self","lang","uniqueId","plainTextGrammar","_","manual","disableWorkerMessageHandler","util","encode","tokens","Token","alias","objId","obj","defineProperty","deepClone","visited","hasOwnProperty","getLanguage","m","exec","parentElement","setLanguage","language","classList","currentScript","src","stack","scripts","defaultActivation","no","languages","plain","plaintext","txt","extend","redef","inside","before","insert","grammar","ret","token","newToken","old","DFS","callback","property","propertyType","plugins","highlightAll","highlightAllUnder","container","env","hooks","apply","highlightElement","code","insertHighlightedCode","highlightedCode","innerHTML","hasAttribute","setAttribute","Worker","worker","filename","onmessage","postMessage","JSON","immediateClose","highlight","tokenize","tokenList","LinkedList","addAfter","matchGrammar","tail","toArray","callbacks","matchedStr","matchPattern","pattern","pos","lookbehind","lastIndex","lookbehindLength","startNode","startPos","rematch","patterns","j","cause","patternObj","greedy","flags","reach","str","removeCount","to","k","matchStr","after","removeFrom","removeRange","nestedRematch","newNode","count","classes","aliases","message","close","script","highlightAutomaticallyCallback","defer","WorkerGlobalScope","markup","comment","prolog","doctype","string","punctuation","cdata","namespace","entity","tagName","includedCdataInside","def","attrName","mathml","xml","ssml","atom","rss","atrule","rule","keyword","function","important","addInlined","addAttribute","clike","boolean","number","operator","javascript","regex","parameter","constant","hashbang","interpolation","js","msMatchesSelector","webkitMatchesSelector","EXTENSIONS","py","rb","ps1","psm1","sh","bat","h","tex","STATUS_ATTR","STATUS_LOADING","STATUS_LOADED","SELECTOR","pre","createElement","extension","autoloader","loadLanguages","success","xhr","XMLHttpRequest","open","onreadystatechange","status","responseText","statusText","send","loadFile","range","comma","parseRange","lines","String","fileHighlight","logged","console","warn","AttachmentCode","attachment","item","link","AttachmentImage","isValidImage","setIsValidImage","img","Image","onload","onerror","alt","originalFileName","AttachmentVideo","controls","loop","muted","HtmlPreview","dangerouslySetInnerHTML","__html","componentsByAttachmentType","image","json","table","video","previewComponentsByAttachmentType","Attachment","previewable","setAttachment","setLoaded","attachmentComponent","CurrentComponent","CurrentPreviewComponent","createObjectURL","fetchAttachment","fetchData","AttachmentEmpty","CodeViewer","ModalThumb","changeThumb","isActiveThumb","cx","styles$7_active","Gallery","attachments","filteredAttachments","Modal","isModalOpen","preview","component","closeModal","translations","title","tooltipPreview","tooltipDownload","openInNewTabButton","isImageAttachment","isHtmlAttachment","isAttachment","attachmentName","modalName","downloadData","fileName","linkUrl","download","click","revokeObjectURL","downloadAttachment","openAttachmentInNewTab","statusesList","unsuccessfulStatuses","Set","successfulStatuses","includedInSuccessRate","filterByStatus","statuses","times","suffix","accessor","duration","icons","failed","broken","passed","skipped","unknown","TreeItemIcon","classNameIcon","statusClass","TreeItem","groupOrder","marked","navigateTo","formattedDuration","res","formatDuration","order","ArrowButton","buttonSize","TreeHeader","categoryTitle","toggleTree","statistic","statsStore","treeFiltersStore","statusFilter","stats","total","logOffset","log","progress","treeHeaderBar","flexGrow","Tree","tree","collapsedTrees","routeId","isEarlyCollapsed","nodeId","haveFailedSteps","setIsOpen","trees","leaves","treeContent","subTree","leaf","Counter","truncateCount","displayedCount","counter","Toggle","label","checked","onToggle","Link","getColorFromStatus","SuccessRatePieChart","slices","percentage","transform","fill","Label","process","NODE_ENV","reactIsModule","Symbol","for","g","q","w","z","$$typeof","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextConsumer","ForwardRef","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","require$$0","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","object","$$typeofType","ContextProvider","Memo","hasWarnedAboutDeprecatedIsAsyncMode","reactIs_development","isPortal","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","objectAssign","test1","getOwnPropertyNames","test2","fromCharCode","order2","test3","letter","shouldUseNative","TypeError","toObject","ReactPropTypesSecret_1","Function","printWarning","ReactPropTypesSecret","loggedTypeFailures","require$$1","checkPropTypes","typeSpecs","values","componentName","getStack","typeSpecName","ex","resetWarningCache","checkPropTypes_1","ReactIs","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","bigint","bool","func","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","getPropType","elementType","instanceOf","expectedClass","expectedClassName","objectOf","propType","oneOf","expectedValues","is","valuesString","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","iteratorFn","maybeIterable","getIteratorFn","step","done","entry","isSymbol","Date","PropTypes","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","updateQueue","makeQueue","raf","schedule","writeQueue","write","onStartQueue","onStart","onFrameQueue","onFrame","onFinishQueue","onFinish","timeouts","ms","time","now","cancel","findIndex","pendingCount","findTimeout","delete","sync","batchedUpdates","throttle","lastArgs","queuedFn","throttled","nativeRaf","use","impl","performance","catch","advance","ts","queue","prevTs","eachSafely","flush","arg","each","__defProp","globals_exports","noop","enumerable","__export","colors","createStringInterpolator","skipAnimation","willAdvance","arr","fun","num","und","isEqual","eachProp","ctx","items","clear","flushCalls","isSSR","globals","startQueue","currentFrame","prevFrame","priority","idle","animation","raf2","flushStartQueue","startSafely","prevIndex","startUnsafely","other","dt","nextFrame","NUMBER","PERCENTAGE","parts","rgb","rgba","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","hslToRgb","parse255","int","parseInt","parse360","parse1","parsePercentage","colorToRgba","input","int32Color","color","normalizeColor","createInterpolator","output","extrapolate","outputRange","inputRange","extrapolateLeft","extrapolateRight","easing","range2","findRange","inputMin","inputMax","outputMin","outputMax","Infinity","interpolate","c1","c2","c3","c4","PI","c5","bounceOut","n1","d1","easings","linear","easeInQuad","easeOutQuad","easeInOutQuad","pow","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","sin","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","sqrt","easeOutCirc","easeInOutCirc","easeInBack","easeOutBack","easeInOutBack","easeInElastic","easeOutElastic","easeInOutElastic","easeInBounce","easeOutBounce","easeInOutBounce","steps","steps2","progress2","expanded","ceil","$get","$observers","hasFluidValue","getFluidValue","getFluidObservers","callFluidObservers","observers","observer2","eventObserved","callFluidObserver","FluidValue","setFluidGetter","setHidden","addFluidObserver","observerAdded","removeFluidObserver","observerRemoved","namedColorRegex","writable","configurable","numberRegex","colorRegex","unitRegex","rgbaRegex","cssVariableRegex","variableToRgba","fallback","parseCSSVariable","getPropertyValue","trim","value2","rgbaRound","p1","p2","p3","p4","createStringInterpolator2","keyframes","outputRanges","interpolators","output2","missingUnit","prefix","once","called","warnInterpolate","warnDirectCall","isAnimatedString","useIsomorphicLayoutEffect","useLayoutEffect","useForceUpdate","useRef2","useIsMounted","random","useOnce","effect","useEffect3","emptyDeps","usePrev","prevRef","useRef4","useEffect4","$node","getAnimated","owner","setAnimated","defineHidden","getPayload","Animated","payload","AnimatedValue","_value","durationProgress","lastPosition","getValue","setValue","elapsedTime","lastVelocity","v0","AnimatedString","_string","_toString","is2","goal","TreeContext","dependencies","AnimatedObject","animated","_makePayload","_addToPayload","AnimatedArray","makeAnimated","getAnimatedType","is3","isAnimatedString2","withAnimated","Component","hasInstance","is4","isReactComponent","forwardRef","givenProps","givenRef","instanceRef","updateRef","deps","createAnimatedStyle","getAnimatedState","forceUpdate","instance","applyAnimatedValues","observer","PropsObserver","observerRef","each2","dep","usedProps","getComponentProps","React","getDisplayName","is5","displayName","callProp","matchProp","resolveProp","getDefaultProp","noopTransform","getDefaultProps","DEFAULT_PROPS","defaults2","RESERVED_PROPS","pause","reverse","immediate","delay","onProps","onPause","onResume","onRest","onResolve","trail","expires","initial","enter","leave","onDestroyed","callId","parentId","inferTo","to2","forward","getForwardProps","out","computeGoal","G","hasProps","isAsyncTo","detachRefs","ctrl","replaceRef","tension","friction","gentle","wobbly","stiff","slow","molasses","defaults","mass","damping","AnimationConfig","velocity","sanitizeConfig","config2","decay","isTensionConfig","frequency","emptyArray","Animation","changed","toValues","fromValues","scheduleProps","actions","paused","resumeQueue","resume","G2","delayed","pauseQueue","cancelId","getCombinedResult","results","cancelled","getCancelledResult","getNoopResult","getFinishedResult","finished","runAsync","asyncTo","prevTo","promise","prevPromise","asyncId","preventBail","bail","bailPromise","bailIfEnded","bailSignal","bailResult","animate","arg1","arg2","BailSignal","skipAnimationSignal","SkipAnimationSignal","G3","stopAsync","props2","eachProp2","result2","animating","stop","isFrameValue","FrameValue","nextId","FluidValue2","_priority","_onPriorityChange","G4","toJSON","_attach","_detach","_onChange","$P","hasAnimated","isAnimating","isPaused","setActiveBit","IS_ANIMATING","setPausedBit","SpringValue","_state","_pendingCalls","_lastCallId","_lastToId","_memoizedDuration","getFluidValue2","getAnimated2","node2","isDelayed","anim","toArray2","elapsed","precision","abs","exp","restVelocity","bounceFactor","bounce","canBounce","isGrowing","isMoving","isBouncing","numSteps","isNaN","currVal","finalVal","_stop","raf3","_focus","_set","_update","finish","_onStart","_start","_prepareNode","isLoop","mergeActiveFn","sendEvent","isFrozen","checkFinished","_resume","_merge","nextProps","createLoopUpdate","hasToProp","hasFromProp","prevFrom","hasFromChanged","hasToChanged","hasAsyncTo","newConfig","mergeConfig","isAnimatable","nodeType","goalType","started","hasValueChanged","ACTIVE_EVENTS","oldNode","G5","frameLoop2","callFluidObservers2","loopRet","overrides","createUpdate","findDefined","declareUpdate","update2","eachProp3","BATCHED_EVENTS","nextId2","Controller","flush3","springs","_lastAsyncId","_active","_changed","_started","_events","_onFrame","_flush","spring","_item","is6","toArray3","prepareKeys","flushUpdateQueue","each3","eachProp4","flush2","onStart2","onChange2","onRest2","raf4","flushUpdate","flushCalls2","promises","getSprings","prepareSprings","createSpring","setSprings","addFluidObserver2","SpringContext","inherited","getResult","inputs","useState2","committed","useRef3","prevCache","useCache","areInputsEqual","useEffect2","useMemoOne","init","_context","Consumer","makeContext","SpringRef","SpringRef2","each4","is7","_getProps","useSpring","isFn","is9","propsFn","is8","useMemo","layoutId","ctrls","updates2","springs2","updates","prevLength","declareUpdates","startIndex","endIndex","each5","useContext2","prevContext","hasContext","useIsomorphicLayoutEffect2","useSprings","useTransition","is11","exitBeforeEnter","propsRef","propsConfig","useMemo2","toArray4","transitions","usedTransitions","prevTransitions","useIsomorphicLayoutEffect4","useOnce3","each7","expired","expirationId","reused","t2","phase","nextKey","getKeys","keyIndex","useForceUpdate2","changes","exitingTransitions","forceChange","prevPhase","propsDelay","isLeave","transitions2","t3","expiry","expiryMs","useContext3","usePrev2","ind","renderTransitions","React2","elem","Interpolation","calc","_get","getAnimatedType2","setAnimated2","_dt","isEqual2","getAnimated3","checkIdle","becomeIdle","is14","getFluidValue3","toArray5","each10","getPayload2","G6","raf5","frameLoop3","hasFluidValue2","addFluidObserver3","removeFluidObserver2","highest","isIdle","callFluidObservers3","Globals","isCustomPropRE","dangerousStyleValue","isUnitlessNumber","attributeCache","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prefixes","charAt","substring","prefixKey","domTransforms","pxTransforms","degTransforms","addUnit","unit","isValueIdentity","AnimatedStyle","transforms","xyz","x2","y2","z2","deg","FluidTransform","identity","unstable_batchedUpdates","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","components","hostConfig","createHost","isFilterElement","names","setProperty","pointerEvents","anchor","T","C","E","P","N","O","V","tooltip","wrapper","div","background","format","enableChip","renderContent","basic","chip","borderCollapse","rows","tableCell","x0","x1","y0","y1","crosshair","line","showTooltipAt","showTooltipFromEvent","hideTooltip","F","M","touches","clientX","clientY","eq_1","eq","_assocIndexOf","listCacheClear","_listCacheClear","__data__","listCacheDelete","assocIndexOf","_listCacheDelete","pop","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","freeGlobal","_freeGlobal","freeSelf","_root","_Symbol","getRawTag","objectProto","nativeObjectToString","symToStringTag","toStringTag","_getRawTag","isOwn","unmasked","objectToString","_objectToString","_baseGetTag","isObject_1","baseGetTag","isObject","isFunction_1","uid","coreJsData","_coreJsData","maskSrcKey","IE_PROTO","_isMasked","funcToString","_toSource","baseIsNative","isFunction","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","_baseIsNative","_getValue","_getNative","getNative","_Map","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","hashGet","_hashGet","hashHas","_hashHas","hashSet","_hashSet","Hash","_Hash","isKeyable","_isKeyable","_getMapData","mapCacheClear","_mapCacheClear","mapCacheDelete","getMapData","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","_mapCacheSet","MapCache","_MapCache","stackClear","_stackClear","stackDelete","_stackDelete","stackGet","_stackGet","stackHas","_stackHas","stackSet","_stackSet","pairs","LARGE_ARRAY_SIZE","require$$5","Stack","_Stack","_defineProperty","_baseAssignValue","baseAssignValue","_assignMergeValue","createBaseFor","_createBaseFor","fromRight","iteratee","keysFunc","iterable","baseFor","_baseFor","Uint8Array","_Uint8Array","cloneArrayBuffer","_cloneArrayBuffer","arrayBuffer","byteLength","_cloneTypedArray","typedArray","isDeep","buffer","byteOffset","_overArg","getPrototype","overArg","_getPrototype","_isPrototype","Ctor","baseCreate","objectCreate","proto","_baseCreate","isPrototype","_initCloneObject","isObjectLike_1","baseIsArguments","isObjectLike","_baseIsArguments","isArguments","isArguments_1","isArray_1","isLength_1","isLength","isArrayLike_1","isArrayLike","isArrayLikeObject_1","stubFalse","stubFalse_1","freeExports","freeModule","Buffer","isBuffer","objectCtorString","isPlainObject_1","_baseUnary","freeProcess","nodeUtil","types","require","binding","baseIsTypedArray","typedArrayTags","_baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","isTypedArray_1","_safeGet","_assignValue","objValue","reIsUint","_isIndex","baseTimes","_baseTimes","isIndex","_arrayLikeKeys","isArr","isArg","isBuff","isType","skipIndexes","nativeKeysIn","_nativeKeysIn","_baseKeysIn","isProto","arrayLikeKeys","baseKeysIn","keysIn_1","copyObject","assignValue","_copyObject","customizer","isNew","keysIn","toPlainObject_1","assignMergeValue","cloneBuffer","allocUnsafe","copy","cloneTypedArray","copyArray","_copyArray","initCloneObject","require$$6","isArrayLikeObject","require$$7","require$$8","require$$9","require$$10","isPlainObject","require$$11","require$$12","safeGet","require$$13","toPlainObject","require$$14","_baseMergeDeep","srcIndex","mergeFunc","srcValue","stacked","isCommon","isTyped","identity_1","_apply","thisArg","nativeMax","_overRest","otherArgs","constant_1","_baseSetToString","baseSetToString","shortOut","nativeNow","_shortOut","lastCalled","stamp","remaining","setToString","_setToString","overRest","_baseRest","_isIterateeCall","baseMerge","baseMergeDeep","_baseMerge","createAssigner","baseRest","isIterateeCall","_createAssigner","assigner","sources","guard","merge_1","isSymbol_1","reIsDeepProp","reIsPlainProp","_isKey","memoize","resolver","memoized","Cache","memoize_1","_memoizeCapped","_arrayMap","baseToString","arrayMap","symbolProto","symbolToString","_baseToString","toString_1","isKey","stringToPath","memoizeCapped","rePropName","reEscapeChar","quote","subString","_stringToPath","_castPath","_toKey","castPath","toKey","_baseGet","baseGet","get_1","defaultValue","_baseSet","nested","baseSet","set_1","define","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","NaN","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","channels","displayable","formatHex8","formatHsl","radians","degrees","B","D","ED","EB","BC_DA","cubehelix","Cubehelix","bl","atan2","cubehelixConvert","cosh","sinh","constant$1","gamma","nogamma","exponential","rgbGamma","colorRgb","spline","rgbBasis","v1","v2","v3","t1","basis","numberArray","genericArray","nb","na","date$1","setTime","interpolateNumber","reA","reB","_$3","am","bm","bs","bi","one","zero","date","ArrayBuffer","isView","DataView","isNumberArray","valueOf","interpolateRound","hue","cubehelixGamma","colorCubehelix","cubehelixLong","isString_1","last_1","ascending","descending","bisector","compare1","compare2","delta","lo","hi","mid","center","bisectRight","InternMap","keyof","defineProperties","_intern","_key","intern_get","intern_set","intern_delete","e10","e5","e2","tickSpec","power","log10","factor","i1","i2","inc","ticks","tickIncrement","tickStep","initRange","domain","implicit","ordinal","band","bandwidth","ordinalRange","r0","r1","paddingInner","paddingOuter","align","rescale","sequence","rangeRound","pointish","point","normalize","bimap","d0","polymap","bisect","transformer","untransform","piecewise","interpolateValue","clamper","invert","continuous","formatDecimalParts","toExponential","coefficient","exponent$1","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","sign","formatRounded$1","exponent","formatTypes$1","toFixed","toLocaleString","toPrecision","formatRounded","X","identity$1","locale","formatPrefix","formatLocale$3","grouping","thousands","group","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","i0","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","interval","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","base","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlog","symlogish","formatLocale","t0","timeInterval","floori","offseti","field","previous","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","S","L","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","I","Y","utcFormats","parses","parseSpecifier","newParse","utcParse","defaultLocale","r$1","n$1","t$1","u$2","a$1","c$2","ramp$1","scheme","interpolateRgbBasis","ramp","ue$1","interpolateCubehelixLong","warm","cool","pi_1_3","pi_2_3","Z$1","magma","inferno","plasma","setCacheAdd","_setCacheAdd","setCacheHas","_setCacheHas","SetCache","_SetCache","baseFindIndex","_baseFindIndex","predicate","fromIndex","baseIsNaN","_baseIsNaN","strictIndexOf","_strictIndexOf","_baseIndexOf","baseIndexOf","_arrayIncludes","_arrayIncludesWith","comparator","_cacheHas","baseDifference","arrayIncludes","arrayIncludesWith","cacheHas","_baseDifference","valuesLength","outer","computed","valuesIndex","without","without_1","pi","tau","epsilon","tauEpsilon","append","strings","Path$1","digits","_x0","_y0","_x1","_y1","_append","appendRound","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","dx","dy","cw","da","withPath","RangeError","Path","Linear","sr","H$2","defined","curve","curveLinear","defined0","lineStart","lineEnd","pointX","pointY","that","Basis","BasisClosed","BasisOpen","Bundle","beta","_basis","_beta","areaStart","_line","areaEnd","_point","_x2","_x3","_x4","_y2","_y3","_y4","_x","_y","tr","custom","bundle","_k","Cardinal","nr","cardinal","CardinalClosed","_x5","_y5","ir","CardinalOpen","or","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","x23","y23","catmullRom","CatmullRomClosed","ar","CatmullRomOpen","dr","LinearClosed","slope3","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","Step","_t","_t0","px","formatLocale$1","newInterval","weekday","sunday","monday","tuesday","wednesday","thursday","friday","saturday","timeParse","baseHasIn","_baseHasIn","hasPath","_hasPath","hasFunc","hasIn_1","basePickBy","_basePickBy","paths","hasIn","_basePick","_arrayPush","arrayPush","isFlattenable","spreadableSymbol","isConcatSpreadable","_isFlattenable","_baseFlatten","baseFlatten","depth","isStrict","flatten","flatten_1","_flatRest","basePick","pick","flatRest","pick_1","arraySome","_arraySome","_equalArrays","bitmask","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","_setToArray","equalArrays","mapToArray","_mapToArray","setToArray","symbolValueOf","_equalByTag","convert","arrayFilter","_arrayFilter","resIndex","stubArray","stubArray_1","nativeGetSymbols","getSymbols","_getSymbols","nativeKeys","_nativeKeys","_baseKeys","baseKeys","keys_1","baseGetAllKeys","_baseGetAllKeys","symbolsFunc","_getAllKeys","_Set","_DataView","_Promise","WeakMap","_WeakMap","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_getTag","equalByTag","equalObjects","getAllKeys","_equalObjects","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","argsTag","arrayTag","objectTag","_baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqualDeep","_baseIsEqual","baseIsEqual","isEqual_1","Pr","fontFamily","fontSize","outlineWidth","outlineColor","outlineOpacity","stroke","legend","grid","legends","hidden","labels","markers","lineColor","lineStrokeWidth","dots","borderRadius","boxShadow","whiteSpace","alignItems","marginRight","tableCellValue","annotations","outline","jr","Sr","setPrototypeOf","__proto__","Br","Gr","Ir","Lr","Yr","Ar","Er","motionConfig","propTypes","Ur","Fr","R","Xr","nivo","BrBG","PRGn","PiYG","PuOr","RdBu","RdGy","RdYlBu","RdYlGn","spectral","blues","greens","greys","oranges","purples","reds","BuGn","K","BuPu","GnBu","J","OrRd","PuBuGn","PuBu","PuRd","ee","RdPu","YlGnBu","te","YlGn","ne","YlOrBr","ie","YlOrRd","oe","Nr","rt","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed","monotoneX","monotoneY","natural","stepAfter","stepBefore","tt","endsWith","Ze","lt","he","wt","margin","innerWidth","innerHeight","outerWidth","outerHeight","kt","contentRect","Ot","Wr","Cr","xt","qt","Ct","Wt","theme","Rt","zt","Tt","Mt","Pt","condition","jt","St","renderWrapper","It","Yt","Dt","stopColor","gradientTransform","Et","linearGradient","Ut","Ft","stagger","patternUnits","cy","Ht","rn","middle","baseline","canvas","nn","spacing","rotation","lineWidth","strokeLinecap","an","dn","un","patternDots","patternLines","patternSquares","cn","pn","defs","hn","gn","ariaLabelledBy","ariaDescribedBy","isFocusable","xmlns","bn","borderWidth","borderColor","mn","yn","datum","labelTextAnchor","labelYOffset","textAnchor","vn","_n","lineStyle","textStyle","legendNode","legendPosition","legendOffsetX","legendOffsetY","legendOrientation","offsetX","offsetY","orientation","dominantBaseline","wn","kn","xScale","yScale","Rn","xn","On","Sn","getBBox","Bn","Gn","In","colorKey","targetKey","Qe","zr","Mr","Tr","Ln","qe","Ce","Re","category10","accent","dark2","paired","pastel1","pastel2","set1","set2","set3","tableau10","Ve","Pe","brown_blueGreen","purpleRed_green","pink_yellowGreen","purple_orange","red_blue","red_grey","red_yellow_blue","red_yellow_green","Te","Ue","De","blue_green","blue_purple","green_blue","orange_red","purple_blue_green","purple_blue","purple_red","red_purple","yellow_green_blue","yellow_green","yellow_orange_brown","yellow_orange_red","Me","$e","turbo","viridis","cividis","cubehelixDefault","ue","ae","le","ce","se","fe","pe","de","me","ge","ye","be","Be","Le","rainbow","sinebow","We","je","ke","modifiers","Ge","Ae","Xe","we","Oe","fr","Se","He","Je","Ke","noop_1","createSet","_createSet","_baseUniq","seenIndex","baseUniq","uniq_1","_isStrictComparable","_matchesStrictComparable","baseIsMatch","_baseIsMatch","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","getMatchData","isStrictComparable","_getMatchData","matchesStrictComparable","_baseMatches","baseProperty","_baseProperty","basePropertyDeep","_basePropertyDeep","property_1","baseMatches","baseMatchesProperty","_baseMatchesProperty","_baseIteratee","baseIteratee","uniqBy_1","baseForOwn","_baseForOwn","baseEach","_createBaseEach","eachFunc","collection","createBaseEach","_baseEach","compareAscending","_compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","_compareMultiple","orders","objCriteria","criteria","othCriteria","ordersLength","baseMap","_baseMap","baseSortBy","_baseSortBy","comparer","compareMultiple","_baseOrderBy","iteratees","baseOrderBy","sortBy","sortBy_1","baseIsDate","_baseIsDate","nodeIsDate","isDate","isDate_1","setMilliseconds","setSeconds","setMinutes","useUTC","minStacked","maxStacked","tn","utcWeek","utcSecond","timeWeek","timeSecond","getTime","en","sn","ln","ticksPosition","tickValues","tickSize","tickPadding","tickRotation","truncateTickAt","engine","lineX","lineY","textX","textY","dir","textAlign","textBaseline","animatedProps","cursor","textTransform","strokeLinejoin","renderTick","legendOffset","ariaHidden","et","it","nt","lineX2","lineY2","at","ot","tickIndex","rotate","xValues","yValues","save","translate","font","lineCap","strokeStyle","beginPath","lineJoin","strokeText","fillStyle","fillText","restore","itemsSpacing","itemCount","itemWidth","itemHeight","translateX","translateY","containerWidth","containerHeight","justify","symbolSize","symbolSpacing","symbolX","symbolY","labelX","labelY","labelAnchor","labelAlignment","circle","diamond","square","triangle","textColor","symbolShape","symbolBorderWidth","symbolBorderColor","toggleSerie","effects","ct","st","ht","itemOpacity","itemBackground","itemTextColor","userSelect","itemDirection","fillRect","idCounter","uniqueId_1","splitter","sum","elen","flen","Qnew","hh","bvirt","enow","fnow","eindex","findex","hindex","vec","Float64Array","C1","C2","orient2d","ax","ay","bx","by","detleft","detright","det","detsum","acxtail","acytail","bcxtail","bcytail","ahi","alo","bhi","blo","_i","_j","_0","u3","acx","bcx","acy","bcy","estimate","errbound","C1len","C2len","Dlen","orient2dadapt","EPSILON","EDGE_STACK","Uint32Array","Delaunator","points","getX","defaultGetX","getY","defaultGetY","maxTriangles","_triangles","_halfedges","Int32Array","_hashSize","_hullPrev","_hullNext","_hullTri","_hullHash","_ids","_dists","hullPrev","hullNext","hullTri","hullHash","minX","minY","maxX","maxY","minDist","dist","i0x","i0y","i1x","i1y","minRadius","circumradius","i2x","i2y","quicksort","hull","subarray","triangles","halfedges","ey","cl","circumcenter","_cx","_cy","_hullStart","hullSize","_hashKey","trianglesLen","_addTriangle","xp","yp","_legalize","pseudoAngle","b0","al","p0","pr","pl","inCircle","hbl","_link","br","fx","fy","bp","cp","ids","dists","temp","tempDist","swap","tmp","Polygon","Voronoi","delaunay","xmin","ymin","xmax","ymax","_circumcenters","vectors","_init","circumcenters","x3","y3","ab","inedges","ti","tj","xi","yi","xj","yj","_renderSegment","_project","renderBounds","renderCell","_clip","cellPolygons","cell","cellPolygon","polygon","c0","_regioncode","_clipSegment","_step","neighbors","ci","cj","ai","li","aj","lj","_cell","e0","_simplify","_clipInfinite","_clipFinite","e1","sx0","sy0","sx1","sy1","_edgecode","_edge","vx0","vy0","vxn","vyn","unshift","vx","vy","jitter","Delaunay","flatArray","flatIterable","_delaunator","_hullIndex","collinear","bounds","hypot","hullIndex","voronoi","dc","renderHull","renderPoints","hullPolygon","renderTriangle","trianglePolygons","trianglePolygon","getNodePosition","debug","elementRef","setCurrent","detectionRadius","onMouseMove","onTouchStart","onTouchMove","onTouchEnd","enableTouchCrosshair","tooltipPosition","tooltipAnchor","handleMouseEnter","handleMouseMove","handleMouseLeave","handleClick","handleTouchStart","handleTouchMove","handleTouchEnd","xFormatted","yFormatted","serieColor","serieId","layers","axisBottom","axisLeft","enableGridX","enableGridY","enablePoints","pointSize","pointColor","pointBorderWidth","pointBorderColor","enablePointLabel","pointLabel","enableArea","areaBaselineValue","areaOpacity","areaBlendMode","enableSlices","debugSlices","sliceTooltip","debugMesh","enableCrosshair","crosshairType","useMesh","initialHiddenIds","pixelRatio","devicePixelRatio","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","xFormat","yFormat","enableSlicesTooltip","series","legendData","getPointColor","getPointBorderColor","formatX","formatY","componentId","lineGenerator","areaGenerator","getColor","mixBlendMode","thickness","isCurrent","elementFromPoint","enableLabel","ve","axisTop","axisRight","gridXValues","gridYValues","pointSymbol","xe","pointLabelYOffset","Ee","Fe","Ie","Ye","ze","Ne","_e","eo","oo","ro","ao","so","co","uo","ho","fo","vo","po","mo","go","yo","xo","bo","So","Mo","Co","wo","To","ko","Bo","Wo","Eo","Lo","Go","Po","Fo","axes","areas","mesh","Oo","currentPoint","setCurrentPoint","currentSlice","setCurrentSlice","canvasRef","getContext","globalAlpha","defaultTrendChartLegendConfig","defaultAxisBottomConfig","defaultAxisLeftConfig","defaultTrendChartConfig","TrendChart","rootArialLabel","restProps","ResponsiveLine"],"mappings":"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KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAEA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,SAUgC,CAChC1iB,oBAvWF,SAA6BD,EAAUtiD,GACrC,IAAKsiD,EAAS0L,WAAa1L,EAASlsB,aAClC,OAAO,EAET,MAAM8uC,EAAwC,WAAtB5iB,EAASpoC,UAAyBooC,EAAS16C,YAA+C,WAAjC06C,EAAS16C,WAAWsS,UAC/F/H,UACJA,EAASjN,MACTA,EAAKqN,SACLA,EAAQ+J,UACRA,EAASD,WACTA,EAAUjW,QACVA,KACG3B,GACDzE,EACEssC,EAAStqC,OAAOsqC,OAAO7nC,GACvB0gE,EAAQnjE,OAAOkB,KAAKuB,GAAYG,KACnCZ,GAASkhE,GAAmB5iB,EAASnsB,aAAanyB,GAAQA,EAAO6zD,GAAe7zD,KAAU6zD,GAAe7zD,GAAQA,EAAKc,QACrH,YAECtF,GAAM,IAAMA,EAAE2a,wBAGF3Z,IAAb+R,IACF+vC,EAASj1C,YAAckF,GAEzB,IAAK,MAAMvO,KAAQkB,EACjB,GAAIA,EAAMquB,eAAevvB,GAAO,CAC9B,MAAM1B,EAAQq1D,GAAoB3zD,EAAMkB,EAAMlB,IAC1C0zD,GAAehvD,KAAK1E,GACtBs+C,EAASp9C,MAAMkgE,YAAYphE,EAAM1B,GAEjCggD,EAASp9C,MAAMlB,GAAQ1B,CAE/B,CAEE6iE,EAAMriE,SAAQ,CAACkB,EAAMtE,KACnB4i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","x_google_ignoreList":[0,1,63,64,65,66,67,76,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483]}
|