diff --git a/.circleci/config.yml b/.circleci/config.yml index 17854f24d0..4406430e7c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -158,18 +158,18 @@ jobs: pip install --no-cache-dir --upgrade -e .[ci,dev] --progress-bar off - run: command: | - nvm install 18 && nvm use 18 + nvm install 24 && nvm use 24 - run: name: npm prereqs command: | - nvm use 18 + nvm use 24 npm ci cd dash/dash-renderer && npm i && cd ../../ cd components/dash-html-components && npm i && npm run extract && cd ../../ - run: name: ️️🏗️ build dash command: | - nvm use 18 + nvm use 24 . venv/Scripts/activate npm run private::build.jupyterlab && npm run private::build.renderer cd components/dash-html-components && npm run build diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f5b2045edc..61598276a7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,3 +1,3 @@ # These owners will be the default owners for everything in # the repo. Unless a later match takes precedence -* @T4rk1n @ndrezn @gvwilson @emilykl +* @T4rk1n @ndrezn @camdecoster @KoolADE85 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..ad62dcef38 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,70 @@ +version: 2 +updates: + # Root package dependencies + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + groups: + npm-dependencies: + patterns: + - "*" + ignore: + # Ignore @plotly packages + - dependency-name: "@plotly/*" + + # Dash renderer + - package-ecosystem: "npm" + directory: "/dash/dash-renderer" + schedule: + interval: "weekly" + day: "monday" + groups: + npm-dependencies: + patterns: + - "*" + + # Components - dash-core-components + - package-ecosystem: "npm" + directory: "/components/dash-core-components" + schedule: + interval: "weekly" + day: "monday" + groups: + npm-dependencies: + patterns: + - "*" + + # Components - dash-html-components + - package-ecosystem: "npm" + directory: "/components/dash-html-components" + schedule: + interval: "weekly" + day: "monday" + groups: + npm-dependencies: + patterns: + - "*" + + # Components - dash-table + - package-ecosystem: "npm" + directory: "/components/dash-table" + schedule: + interval: "weekly" + day: "monday" + groups: + npm-dependencies: + patterns: + - "*" + + # Python dependencies + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + groups: + pip-dependencies: + patterns: + - "*" diff --git a/@plotly/dash-generator-test-component-typescript/package-lock.json b/@plotly/dash-generator-test-component-typescript/package-lock.json index 5b3da17fe6..8caea2e72c 100644 --- a/@plotly/dash-generator-test-component-typescript/package-lock.json +++ b/@plotly/dash-generator-test-component-typescript/package-lock.json @@ -23,7 +23,7 @@ "ts-jest": "^29.0.3", "ts-loader": "^9.4.1", "typescript": "^4.8.4", - "webpack": "^5.76.1", + "webpack": "^5.105.0", "webpack-cli": "^4.10.0" }, "peerDependencies": { @@ -2486,9 +2486,9 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -2496,23 +2496,19 @@ } }, "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { @@ -2611,9 +2607,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true }, "node_modules/@types/graceful-fs": { @@ -2660,9 +2656,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/node": { @@ -2916,9 +2912,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2927,6 +2923,18 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -3295,6 +3303,15 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", + "dev": true, + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -3327,9 +3344,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -3346,10 +3363,11 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -3504,9 +3522,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001715", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", - "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==", + "version": "1.0.30001768", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001768.tgz", + "integrity": "sha512-qY3aDRZC5nWPgHUgIB84WL+nySuo19wk0VJpp/XI9T34lrvkyhRvNVOFJOp2kxClQhiFBu+TaUSudf6oa3vkSA==", "dev": true, "funding": [ { @@ -3768,9 +3786,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.141", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.141.tgz", - "integrity": "sha512-qS+qH9oqVYc1ooubTiB9l904WVyM6qNYxtOEEGReoZXw3xlqeYdFr5GclNzbkAufWgwWLEPoDi3d9MoRwwIjGw==", + "version": "1.5.286", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", + "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", "dev": true }, "node_modules/emittery": { @@ -3801,13 +3819,13 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", + "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.0" }, "engines": { "node": ">=10.13.0" @@ -3872,9 +3890,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", "dev": true }, "node_modules/es-to-primitive": { @@ -4061,9 +4079,9 @@ "dev": true }, "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "dev": true, "funding": [ { @@ -6644,12 +6662,16 @@ } }, "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true, "engines": { "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/loader-utils": { @@ -6854,9 +6876,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true }, "node_modules/normalize-package-data": { @@ -7919,22 +7941,26 @@ } }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true, "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -7946,9 +7972,9 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.14", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", - "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -8014,9 +8040,9 @@ "dev": true }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -8325,9 +8351,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -8397,9 +8423,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -8410,34 +8436,36 @@ } }, "node_modules/webpack": { - "version": "5.99.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.6.tgz", - "integrity": "sha512-TJOLrJ6oeccsGWPl7ujCYuc0pIq2cNsuD6GZDma8i5o5Npvcco/z+NKvZSFsP0/x6SShVb0+X2JK/JHUjKY9dQ==", + "version": "5.105.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.0.tgz", + "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.19.0", + "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", + "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^4.3.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" @@ -8525,9 +8553,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true, "engines": { "node": ">=10.13.0" @@ -8568,9 +8596,9 @@ "dev": true }, "node_modules/webpack/node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", @@ -10486,9 +10514,9 @@ "dev": true }, "@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.5", @@ -10496,22 +10524,21 @@ }, "dependencies": { "@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } } } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true }, "@jridgewell/trace-mapping": { @@ -10610,9 +10637,9 @@ } }, "@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true }, "@types/graceful-fs": { @@ -10659,9 +10686,9 @@ } }, "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "@types/node": { @@ -10902,11 +10929,18 @@ "dev": true }, "acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true }, + "acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "requires": {} + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -11185,6 +11219,12 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "baseline-browser-mapping": { + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", + "dev": true + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -11211,15 +11251,16 @@ } }, "browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" } }, "bs-logger": { @@ -11328,9 +11369,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001715", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", - "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==", + "version": "1.0.30001768", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001768.tgz", + "integrity": "sha512-qY3aDRZC5nWPgHUgIB84WL+nySuo19wk0VJpp/XI9T34lrvkyhRvNVOFJOp2kxClQhiFBu+TaUSudf6oa3vkSA==", "dev": true }, "chalk": { @@ -11529,9 +11570,9 @@ } }, "electron-to-chromium": { - "version": "1.5.141", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.141.tgz", - "integrity": "sha512-qS+qH9oqVYc1ooubTiB9l904WVyM6qNYxtOEEGReoZXw3xlqeYdFr5GclNzbkAufWgwWLEPoDi3d9MoRwwIjGw==", + "version": "1.5.286", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", + "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", "dev": true }, "emittery": { @@ -11553,13 +11594,13 @@ "dev": true }, "enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", + "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", "dev": true, "requires": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.0" } }, "envinfo": { @@ -11609,9 +11650,9 @@ } }, "es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", "dev": true }, "es-to-primitive": { @@ -11748,9 +11789,9 @@ "dev": true }, "fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "dev": true }, "fastest-levenshtein": { @@ -13633,9 +13674,9 @@ } }, "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true }, "loader-utils": { @@ -13801,9 +13842,9 @@ "dev": true }, "node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true }, "normalize-package-data": { @@ -14610,27 +14651,27 @@ "dev": true }, "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true }, "terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" } }, "terser-webpack-plugin": { - "version": "5.3.14", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", - "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.25", @@ -14668,9 +14709,9 @@ "dev": true }, "schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", @@ -14871,9 +14912,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "requires": { "escalade": "^3.2.0", @@ -14920,9 +14961,9 @@ } }, "watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -14930,34 +14971,36 @@ } }, "webpack": { - "version": "5.99.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.6.tgz", - "integrity": "sha512-TJOLrJ6oeccsGWPl7ujCYuc0pIq2cNsuD6GZDma8i5o5Npvcco/z+NKvZSFsP0/x6SShVb0+X2JK/JHUjKY9dQ==", + "version": "5.105.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.0.tgz", + "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.19.0", + "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", + "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^4.3.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.3" }, "dependencies": { "ajv": { @@ -14988,9 +15031,9 @@ "dev": true }, "schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", @@ -15040,9 +15083,9 @@ } }, "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true }, "which": { diff --git a/@plotly/dash-generator-test-component-typescript/package.json b/@plotly/dash-generator-test-component-typescript/package.json index 4d74126f3e..7e46d91bee 100644 --- a/@plotly/dash-generator-test-component-typescript/package.json +++ b/@plotly/dash-generator-test-component-typescript/package.json @@ -31,7 +31,7 @@ "ts-jest": "^29.0.3", "ts-loader": "^9.4.1", "typescript": "^4.8.4", - "webpack": "^5.76.1", + "webpack": "^5.105.0", "webpack-cli": "^4.10.0" }, "peerDependencies": { diff --git a/@plotly/dash-jupyterlab/yarn.lock b/@plotly/dash-jupyterlab/yarn.lock index 55c00fad45..513f0bfff8 100644 --- a/@plotly/dash-jupyterlab/yarn.lock +++ b/@plotly/dash-jupyterlab/yarn.lock @@ -1327,9 +1327,9 @@ lodash.mergewith@^4.6.1: integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + version "4.17.23" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" + integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d45971535..4436531fe4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,21 @@ All notable changes to `dash` will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/). +## [4.1.0] - 2026-03-23 + +## Added +- [#3637](https://github.com/plotly/dash/pull/3637) Added `debounce` prop to `Dropdown`. + +## Fixed +- [#3629](https://github.com/plotly/dash/pull/3629) Fix date pickers not showing date when initially rendered in a hidden container. +- [#3660][(](https://github.com/plotly/dash/pull/3660)) Allow same date to be selected for both start and end in DatePickerRange components +- [#3600][(](https://github.com/plotly/dash/pull/3600)) DatePicker support for the Moment.js `Y` year token +- [#3627][(](https://github.com/plotly/dash/pull/3627)) Make dropdowns searchable wheen focused, without requiring to open them first +- [#3656][(](https://github.com/plotly/dash/pull/3656)) Improved dropdown performance for large collections of options +- [#3643][(](https://github.com/plotly/dash/pull/3643)) Fix multiselect dropdown with components as labels +- [#3609][(](https://github.com/plotly/dash/pull/3609)) Add backward compat alias for _Wildcard + + ## [4.0.0] - 2026-02-03 ## Added diff --git a/components/dash-core-components/package-lock.json b/components/dash-core-components/package-lock.json index c55972d3aa..6496a64287 100644 --- a/components/dash-core-components/package-lock.json +++ b/components/dash-core-components/package-lock.json @@ -1,12 +1,12 @@ { "name": "dash-core-components", - "version": "4.0.0", + "version": "4.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dash-core-components", - "version": "4.0.0", + "version": "4.1.0", "license": "MIT", "dependencies": { "@fortawesome/fontawesome-svg-core": "1.2.36", @@ -35,7 +35,7 @@ "react-fast-compare": "^3.2.2", "react-input-autosize": "^3.0.0", "react-markdown": "^4.3.1", - "react-virtualized-select": "^3.1.3", + "react-window": "^1.8.11", "remark-math": "^3.0.1", "uniqid": "^5.4.0" }, @@ -59,6 +59,7 @@ "@types/react": "^16.14.8", "@types/react-dom": "^16.9.13", "@types/react-input-autosize": "^2.2.4", + "@types/react-window": "^1.8.8", "@types/uniqid": "^5.3.4", "@typescript-eslint/eslint-plugin": "^5.59.7", "@typescript-eslint/parser": "^5.59.7", @@ -4949,6 +4950,16 @@ "@types/react": "*" } }, + "node_modules/@types/react-window": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.8.tgz", + "integrity": "sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/scheduler": { "version": "0.16.8", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", @@ -6135,20 +6146,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -6659,11 +6656,6 @@ "dev": true, "license": "MIT" }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", @@ -6695,14 +6687,6 @@ "node": ">=6" } }, - "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "engines": { - "node": ">=6" - } - }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -7130,6 +7114,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, "license": "MIT" }, "node_modules/d3-format": { @@ -7363,15 +7348,6 @@ "dev": true, "license": "MIT" }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -12593,6 +12569,12 @@ "unist-util-visit-parents": "1.1.2" } }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" + }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -14054,11 +14036,6 @@ "node": ">=0.4.0" } }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, "node_modules/react-markdown": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-4.3.1.tgz", @@ -14124,32 +14101,6 @@ } } }, - "node_modules/react-select": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-1.3.0.tgz", - "integrity": "sha512-g/QAU1HZrzSfxkwMAo/wzi6/ezdWye302RGZevsATec07hI/iSxcpB1hejFIp7V63DJ8mwuign6KmB3VjdlinQ==", - "dependencies": { - "classnames": "^2.2.4", - "prop-types": "^15.5.8", - "react-input-autosize": "^2.1.2" - }, - "peerDependencies": { - "react": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0", - "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0" - } - }, - "node_modules/react-select/node_modules/react-input-autosize": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.2.tgz", - "integrity": "sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==", - "license": "MIT", - "dependencies": { - "prop-types": "^15.5.8" - }, - "peerDependencies": { - "react": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0" - } - }, "node_modules/react-style-singleton": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", @@ -14172,36 +14123,21 @@ } } }, - "node_modules/react-virtualized": { - "version": "9.22.5", - "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.5.tgz", - "integrity": "sha512-YqQMRzlVANBv1L/7r63OHa2b0ZsAaDp1UhVNEdUaXI8A5u6hTpA5NYtUueLH2rFuY/27mTGIBl7ZhqFKzw18YQ==", + "node_modules/react-window": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.11.tgz", + "integrity": "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.2", - "clsx": "^1.0.4", - "dom-helpers": "^5.1.3", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-lifecycles-compat": "^3.0.4" + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0", - "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-virtualized-select": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/react-virtualized-select/-/react-virtualized-select-3.1.3.tgz", - "integrity": "sha512-u6j/EfynCB9s4Lz5GGZhNUCZHvFQdtLZws7W/Tcd/v03l19OjpQs3eYjK82iYS0FgD2+lDIBpqS8LpD/hjqDRQ==", - "dependencies": { - "babel-runtime": "^6.11.6", - "prop-types": "^15.5.8", - "react-select": "^1.0.0-rc.2", - "react-virtualized": "^9.0.0" + "engines": { + "node": ">8.0.0" }, "peerDependencies": { - "react": "^15.3.0 || ^16.0.0-alpha", - "react-dom": "^15.3.0 || ^16.0.0-alpha" + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/read-pkg": { diff --git a/components/dash-core-components/package.json b/components/dash-core-components/package.json index 79a35daaac..ac9d88c80c 100644 --- a/components/dash-core-components/package.json +++ b/components/dash-core-components/package.json @@ -1,6 +1,6 @@ { "name": "dash-core-components", - "version": "4.0.0", + "version": "4.1.0", "description": "Core component suite for Dash", "repository": { "type": "git", @@ -47,12 +47,12 @@ "@radix-ui/react-tooltip": "^1.2.8", "base64-js": "^1.5.1", "d3-format": "^1.4.5", + "date-fns": "^4.1.0", "fast-isnumeric": "^1.1.4", "file-saver": "^2.0.5", "highlight.js": "^11.8.0", "js-search": "^2.0.1", "mathjax": "^3.2.2", - "date-fns": "^4.1.0", "node-polyfill-webpack-plugin": "^2.0.1", "prop-types": "^15.8.1", "ramda": "^0.30.1", @@ -62,7 +62,7 @@ "react-fast-compare": "^3.2.2", "react-input-autosize": "^3.0.0", "react-markdown": "^4.3.1", - "react-virtualized-select": "^3.1.3", + "react-window": "^1.8.11", "remark-math": "^3.0.1", "uniqid": "^5.4.0" }, @@ -86,6 +86,7 @@ "@types/react": "^16.14.8", "@types/react-dom": "^16.9.13", "@types/react-input-autosize": "^2.2.4", + "@types/react-window": "^1.8.8", "@types/uniqid": "^5.3.4", "@typescript-eslint/eslint-plugin": "^5.59.7", "@typescript-eslint/parser": "^5.59.7", diff --git a/components/dash-core-components/src/components/Checklist.tsx b/components/dash-core-components/src/components/Checklist.tsx index f7b6481adc..c1f2a5a526 100644 --- a/components/dash-core-components/src/components/Checklist.tsx +++ b/components/dash-core-components/src/components/Checklist.tsx @@ -30,7 +30,7 @@ export default function Checklist({ inline = false, }: ChecklistProps) { const sanitizedOptions = useMemo(() => { - return sanitizeOptions(options); + return sanitizeOptions(options).options; }, [options]); const stylingProps = { diff --git a/components/dash-core-components/src/components/RadioItems.tsx b/components/dash-core-components/src/components/RadioItems.tsx index 093108073b..e4e575543f 100644 --- a/components/dash-core-components/src/components/RadioItems.tsx +++ b/components/dash-core-components/src/components/RadioItems.tsx @@ -31,7 +31,7 @@ export default function RadioItems({ inline = false, }: RadioItemsProps) { const sanitizedOptions = useMemo(() => { - return sanitizeOptions(options); + return sanitizeOptions(options).options; }, [options]); const stylingProps = { diff --git a/components/dash-core-components/src/components/css/datepickers.css b/components/dash-core-components/src/components/css/datepickers.css index 45f89ecc01..3ba6842ce5 100644 --- a/components/dash-core-components/src/components/css/datepickers.css +++ b/components/dash-core-components/src/components/css/datepickers.css @@ -298,3 +298,8 @@ width: 20px; height: 20px; } + +.dash-datepicker-calendar-padding { + pointer-events: none; + background: transparent; +} diff --git a/components/dash-core-components/src/components/css/dropdown.css b/components/dash-core-components/src/components/css/dropdown.css index a224163d37..5667b85060 100644 --- a/components/dash-core-components/src/components/css/dropdown.css +++ b/components/dash-core-components/src/components/css/dropdown.css @@ -218,6 +218,18 @@ overflow-y: auto; } +.dash-dropdown-content:has(.dash-options-list-virtualized) { + overflow-y: hidden; + display: flex; + flex-direction: column; +} + +.dash-dropdown-options:has(.dash-options-list-virtualized) { + overflow-y: visible; + flex: 1; + min-height: 0; +} + .dash-dropdown-option { padding: calc(var(--Dash-Spacing) * 2) calc(var(--Dash-Spacing) * 3); box-shadow: 0 -1px 0 0 var(--Dash-Fill-Disabled) inset; diff --git a/components/dash-core-components/src/fragments/DatePickerRange.tsx b/components/dash-core-components/src/fragments/DatePickerRange.tsx index 1730314c8a..11bd7baa74 100644 --- a/components/dash-core-components/src/fragments/DatePickerRange.tsx +++ b/components/dash-core-components/src/fragments/DatePickerRange.tsx @@ -6,7 +6,7 @@ import { CaretDownIcon, Cross1Icon, } from '@radix-ui/react-icons'; -import {addDays, subDays} from 'date-fns'; +import {addDays, subDays, differenceInCalendarDays} from 'date-fns'; import AutosizeInput from 'react-input-autosize'; import uuid from 'uniqid'; @@ -20,6 +20,7 @@ import { strAsDate, } from '../utils/calendar/helpers'; import {captureCSSForPortal} from '../utils/calendar/cssVariables'; +import ResizeDetector from '../utils/ResizeDetector'; import '../components/css/datepickers.css'; const DatePickerRange = ({ @@ -104,7 +105,10 @@ const DatePickerRange = ({ const containerRef = useRef(null); const startInputRef = useRef(null); const endInputRef = useRef(null); + const startAutosizeRef = useRef(null); + const endAutosizeRef = useRef(null); const calendarRef = useRef(null); + const isNewRangeRef = useRef(false); const hasPortal = with_portal || with_full_screen_portal; // Capture CSS variables for portal mode @@ -128,6 +132,19 @@ const DatePickerRange = ({ setEndInputValue(formatDate(internalEndDate, display_format)); }, [internalEndDate, display_format]); + const handleResize = useCallback(() => { + startAutosizeRef.current?.updateInputWidth?.(); + endAutosizeRef.current?.updateInputWidth?.(); + }, []); + + useEffect(() => { + startAutosizeRef.current?.updateInputWidth?.(); + }, [startInputValue]); + + useEffect(() => { + endAutosizeRef.current?.updateInputWidth?.(); + }, [endInputValue]); + useEffect(() => { // Controls when setProps is called. Basically, whenever internal state // diverges from props (i.e., user interaction) @@ -145,11 +162,17 @@ const DatePickerRange = ({ end_date: dateAsStr(internalEndDate), }); } else if (!internalStartDate && !internalEndDate) { - // Both dates cleared - send undefined for both + // Both dates cleared - send both setProps({ start_date: dateAsStr(internalStartDate), end_date: dateAsStr(internalEndDate), }); + } else if (endChanged && !internalEndDate) { + // End date was cleared (user started a new range). + setProps({ + start_date: dateAsStr(internalStartDate) ?? null, + end_date: null, + }); } else if (updatemode === 'singledate' && internalStartDate) { // Only start changed - send just that one setProps({start_date: dateAsStr(internalStartDate)}); @@ -295,6 +318,22 @@ const DatePickerRange = ({ setInternalStartDate(start); setInternalEndDate(undefined); } else { + // Skip the mouseUp from the same click that started this range + if (isNewRangeRef.current && isSameDay(start, end)) { + isNewRangeRef.current = false; + return; + } + isNewRangeRef.current = !!(start && !end); + + if (start && end && minimum_nights) { + const numNights = Math.abs( + differenceInCalendarDays(end, start) + ); + if (numNights < minimum_nights) { + return; + } + } + // Normalize dates: ensure start <= end if (start && end && start > end) { setInternalStartDate(end); @@ -309,155 +348,168 @@ const DatePickerRange = ({ } } }, - [internalStartDate, internalEndDate, stay_open_on_select] + [ + internalStartDate, + internalEndDate, + stay_open_on_select, + minimum_nights, + ] ); return ( -
- - -
{ - e.preventDefault(); - if (!isCalendarOpen && !disabled) { - setIsCalendarOpen(true); - } - }} - > - { - startInputRef.current = node; - }} - type="text" - id={start_date_id || accessibleId} - inputClassName="dash-datepicker-input dash-datepicker-start-date" - value={startInputValue} - onChange={e => setStartInputValue(e.target?.value)} - onKeyDown={handleStartInputKeyDown} - onFocus={() => { - if (isCalendarOpen) { - sendStartInputAsDate(); + +
+ + +
{ + e.preventDefault(); + if (!isCalendarOpen && !disabled) { + setIsCalendarOpen(true); } }} - placeholder={start_date_placeholder_text} - disabled={disabled} - dir={direction} - aria-label={start_date_placeholder_text} - /> - - { - endInputRef.current = node; - }} - type="text" - id={end_date_id || accessibleId + '-end-date'} - inputClassName="dash-datepicker-input dash-datepicker-end-date" - value={endInputValue} - onChange={e => setEndInputValue(e.target?.value)} - onKeyDown={handleEndInputKeyDown} - onFocus={() => { - if (isCalendarOpen) { - sendEndInputAsDate(); + > + { + startInputRef.current = node; + }} + type="text" + id={start_date_id || accessibleId} + inputClassName="dash-datepicker-input dash-datepicker-start-date" + value={startInputValue} + onChange={e => + setStartInputValue(e.target?.value) } - }} - placeholder={end_date_placeholder_text} - disabled={disabled} - dir={direction} - aria-label={end_date_placeholder_text} - /> - {clearable && !disabled && ( - - - - )} - -
-
- - - e.preventDefault() - : undefined - } - onOpenAutoFocus={e => e.preventDefault()} - onCloseAutoFocus={e => { - e.preventDefault(); - // Only focus if focus is not already on one of the inputs - const inputs: (Element | null)[] = [ - startInputRef.current, - endInputRef.current, - ]; - if (inputs.includes(document.activeElement)) { - return; + onKeyDown={handleStartInputKeyDown} + onFocus={() => { + if (isCalendarOpen) { + sendStartInputAsDate(); + } + }} + placeholder={start_date_placeholder_text} + disabled={disabled} + dir={direction} + aria-label={start_date_placeholder_text} + /> + + { + endInputRef.current = node; + }} + type="text" + id={end_date_id || accessibleId + '-end-date'} + inputClassName="dash-datepicker-input dash-datepicker-end-date" + value={endInputValue} + onChange={e => + setEndInputValue(e.target?.value) + } + onKeyDown={handleEndInputKeyDown} + onFocus={() => { + if (isCalendarOpen) { + sendEndInputAsDate(); + } + }} + placeholder={end_date_placeholder_text} + disabled={disabled} + dir={direction} + aria-label={end_date_placeholder_text} + /> + {clearable && !disabled && ( + + + + )} + +
+ + + + e.preventDefault() + : undefined } + onOpenAutoFocus={e => e.preventDefault()} + onCloseAutoFocus={e => { + e.preventDefault(); + // Only focus if focus is not already on one of the inputs + const inputs: (Element | null)[] = [ + startInputRef.current, + endInputRef.current, + ]; + if (inputs.includes(document.activeElement)) { + return; + } - // Keeps focus on the component when the calendar closes - if (!startInputValue) { - startInputRef.current?.focus(); - } else { - endInputRef.current?.focus(); - } - }} - > - {with_full_screen_portal && ( - - )} - - - - -
+ // Keeps focus on the component when the calendar closes + if (!startInputValue) { + startInputRef.current?.focus(); + } else { + endInputRef.current?.focus(); + } + }} + > + {with_full_screen_portal && ( + + )} + + + +
+
+ ); }; diff --git a/components/dash-core-components/src/fragments/DatePickerSingle.tsx b/components/dash-core-components/src/fragments/DatePickerSingle.tsx index 392ba17b6b..527e654b0d 100644 --- a/components/dash-core-components/src/fragments/DatePickerSingle.tsx +++ b/components/dash-core-components/src/fragments/DatePickerSingle.tsx @@ -14,6 +14,7 @@ import { strAsDate, } from '../utils/calendar/helpers'; import {captureCSSForPortal} from '../utils/calendar/cssVariables'; +import ResizeDetector from '../utils/ResizeDetector'; import '../components/css/datepickers.css'; const DatePickerSingle = ({ @@ -63,6 +64,7 @@ const DatePickerSingle = ({ const containerRef = useRef(null); const inputRef = useRef(null); + const autosizeRef = useRef(null); const calendarRef = useRef(null); const hasPortal = with_portal || with_full_screen_portal; @@ -87,6 +89,14 @@ const DatePickerSingle = ({ } }, [internalDate]); + const handleResize = useCallback(() => { + autosizeRef.current?.updateInputWidth?.(); + }, []); + + useEffect(() => { + autosizeRef.current?.updateInputWidth?.(); + }, [inputValue]); + const parseUserInput = useCallback( (focusCalendar = false) => { if (inputValue === '') { @@ -157,123 +167,128 @@ const DatePickerSingle = ({ } return ( -
- - -
{ - e.preventDefault(); - if (!isCalendarOpen && !disabled) { - setIsCalendarOpen(true); - } - }} - > - { - inputRef.current = node; + +
+ + +
{ + e.preventDefault(); + if (!isCalendarOpen && !disabled) { + setIsCalendarOpen(true); + } }} - type="text" - id={accessibleId} - inputClassName="dash-datepicker-input dash-datepicker-end-date" - value={inputValue} - onChange={e => setInputValue(e.target?.value)} - onKeyDown={handleInputKeyDown} - placeholder={placeholder} - disabled={disabled} - dir={direction} - aria-label={placeholder} - /> - {clearable && !disabled && !!date && ( - - - - )} + > + { + inputRef.current = node; + }} + type="text" + id={accessibleId} + inputClassName="dash-datepicker-input dash-datepicker-end-date" + value={inputValue} + onChange={e => setInputValue(e.target?.value)} + onKeyDown={handleInputKeyDown} + placeholder={placeholder} + disabled={disabled} + dir={direction} + aria-label={placeholder} + /> + {clearable && !disabled && !!date && ( + + + + )} - -
-
+ +
+ - - e.preventDefault() - : undefined - } - onOpenAutoFocus={e => e.preventDefault()} - onCloseAutoFocus={e => { - e.preventDefault(); - // Only focus if focus is not already on the input - if (document.activeElement !== inputRef.current) { - inputRef.current?.focus(); - } - }} + - {with_full_screen_portal && ( - - )} - { - if (!selection) { - return; - } - setInternalDate(selection); - if (!stay_open_on_select) { - setIsCalendarOpen(false); + e.preventDefault() + : undefined + } + onOpenAutoFocus={e => e.preventDefault()} + onCloseAutoFocus={e => { + e.preventDefault(); + // Only focus if focus is not already on the input + if ( + document.activeElement !== inputRef.current + ) { + inputRef.current?.focus(); } }} - /> - - - -
+ > + {with_full_screen_portal && ( + + )} + { + if (!selection) { + return; + } + setInternalDate(selection); + if (!stay_open_on_select) { + setIsCalendarOpen(false); + } + }} + /> + + +
+
+ ); }; diff --git a/components/dash-core-components/src/fragments/Dropdown.tsx b/components/dash-core-components/src/fragments/Dropdown.tsx index 8338d03689..3fedfc473a 100644 --- a/components/dash-core-components/src/fragments/Dropdown.tsx +++ b/components/dash-core-components/src/fragments/Dropdown.tsx @@ -1,4 +1,4 @@ -import {isNil, without, isEmpty} from 'ramda'; +import {isNil, without, append, isEmpty} from 'ramda'; import React, { useState, useCallback, @@ -7,7 +7,7 @@ import React, { useRef, MouseEvent, } from 'react'; -import {createFilteredOptions} from '../utils/dropdownSearch'; +import {sanitizeDropdownOptions, filterOptions} from '../utils/dropdownSearch'; import { CaretDownIcon, MagnifyingGlassIcon, @@ -18,7 +18,11 @@ import '../components/css/dropdown.css'; import isEqual from 'react-fast-compare'; import {DetailedOption, DropdownProps, OptionValue} from '../types'; -import {OptionsList, OptionLabel} from '../utils/optionRendering'; +import { + OptionsList, + OptionsListHandle, + OptionLabel, +} from '../utils/optionRendering'; import uuid from 'uniqid'; const Dropdown = (props: DropdownProps) => { @@ -27,6 +31,7 @@ const Dropdown = (props: DropdownProps) => { className, closeOnSelect, clearable, + debounce, disabled, labels, maxHeight, @@ -42,44 +47,74 @@ const Dropdown = (props: DropdownProps) => { const [optionsCheck, setOptionsCheck] = useState(); const [isOpen, setIsOpen] = useState(false); const [displayOptions, setDisplayOptions] = useState([]); + const [val, setVal] = useState(value); const persistentOptions = useRef([]); const dropdownContainerRef = useRef(null); const dropdownContentRef = useRef( document.createElement('div') ); const searchInputRef = useRef(null); + const optionsListRef = useRef(null); + const focusedIndexRef = useRef(-1); + const pendingSearchRef = useRef(''); const ctx = window.dash_component_api.useDashContext(); const loading = ctx.useLoading(); + // Sync val when external value prop changes + useEffect(() => { + if (!isEqual(value, val)) { + setVal(value); + } + }, [value]); + if (!persistentOptions || !isEqual(options, persistentOptions.current)) { persistentOptions.current = options; } - const {sanitizedOptions, filteredOptions} = useMemo( + const sanitized = useMemo( + () => sanitizeDropdownOptions(persistentOptions.current), + [persistentOptions.current] + ); + const sanitizedOptions = sanitized.options; + + const filteredOptions = useMemo( () => - createFilteredOptions( - persistentOptions.current, - !!searchable, - search_value - ), - [persistentOptions.current, searchable, search_value] + searchable + ? filterOptions(sanitized, search_value) + : sanitizedOptions, + [sanitized, searchable, search_value] ); const sanitizedValues: OptionValue[] = useMemo(() => { - if (value instanceof Array) { - return value; + if (val instanceof Array) { + return val; } - if (isNil(value)) { + if (isNil(val)) { return []; } - return [value]; - }, [value]); + return [val]; + }, [val]); + + const handleSetProps = useCallback( + (newValue: DropdownProps['value']) => { + if (debounce && isOpen) { + // local only + setVal(newValue); + } else { + setVal(newValue); + setProps({value: newValue}); + } + }, + [debounce, isOpen, setProps] + ); const updateSelection = useCallback( (selection: OptionValue[]) => { if (closeOnSelect !== false) { setIsOpen(false); + setProps({search_value: undefined}); + pendingSearchRef.current = ''; } if (multi) { @@ -87,30 +122,28 @@ const Dropdown = (props: DropdownProps) => { if (selection.length === 0) { // Empty selection: only allow if clearable is true if (clearable) { - setProps({value: []}); + handleSetProps([]); } // If clearable is false and trying to set empty, do nothing // return; } else { - // Non-empty selection: always allowed in multi-select - setProps({value: selection}); + handleSetProps(selection); } } else { // For single-select, take the first value or null if (selection.length === 0) { // Empty selection: only allow if clearable is true if (clearable) { - setProps({value: null}); + handleSetProps(null); } // If clearable is false and trying to set empty, do nothing // return; } else { - // Take the first value for single-select - setProps({value: selection[selection.length - 1]}); + handleSetProps(selection[selection.length - 1]); } } }, - [multi, clearable, closeOnSelect] + [multi, clearable, closeOnSelect, handleSetProps] ); const onInputChange = useCallback( @@ -134,16 +167,16 @@ const Dropdown = (props: DropdownProps) => { !isNil(value) && !isEmpty(value) ) { - const values = sanitizedOptions.map(option => option.value); + const {valueSet} = sanitized; if (Array.isArray(value)) { if (multi) { - const invalids = value.filter(v => !values.includes(v)); + const invalids = value.filter(v => !valueSet.has(v)); if (invalids.length) { setProps({value: without(invalids, value)}); } } } else { - if (!values.includes(value)) { + if (!valueSet.has(value)) { setProps({value: null}); } } @@ -179,8 +212,8 @@ const Dropdown = (props: DropdownProps) => { const handleClear = useCallback(() => { const finalValue: DropdownProps['value'] = multi ? [] : null; - setProps({value: finalValue}); - }, [multi]); + handleSetProps(finalValue); + }, [multi, handleSetProps]); const handleSelectAll = useCallback(() => { if (multi) { @@ -189,12 +222,12 @@ const Dropdown = (props: DropdownProps) => { .filter(option => !sanitizedValues.includes(option.value)) .map(option => option.value) ); - setProps({value: allValues}); + handleSetProps(allValues); } if (closeOnSelect) { setIsOpen(false); } - }, [multi, displayOptions, sanitizedValues, closeOnSelect]); + }, [multi, displayOptions, sanitizedValues, closeOnSelect, handleSetProps]); const handleDeselectAll = useCallback(() => { if (multi) { @@ -203,12 +236,12 @@ const Dropdown = (props: DropdownProps) => { displayOption => displayOption.value === option ); }); - setProps({value: withDeselected}); + handleSetProps(withDeselected); } if (closeOnSelect) { setIsOpen(false); } - }, [multi, displayOptions, sanitizedValues, closeOnSelect]); + }, [multi, displayOptions, sanitizedValues, closeOnSelect, handleSetProps]); // Sort options when popover opens - selected options first // Update display options when filtered options or selection changes @@ -235,134 +268,137 @@ const Dropdown = (props: DropdownProps) => { } }, [filteredOptions, isOpen]); - // Focus first selected item or search input when dropdown opens + // Focus first selected item or search input when dropdown opens. + // Depends on displayOptions so it fires after OptionsList is mounted. useEffect(() => { - if (!isOpen || search_value) { + if (!isOpen || pendingSearchRef.current || !displayOptions.length) { + return; + } + + // Don't steal focus from the search input during search-driven + // re-renders (displayOptions changes while the user is typing). + if (document.activeElement === searchInputRef.current) { return; } - // waiting for the DOM to be ready after the dropdown renders requestAnimationFrame(() => { - // Try to focus the first selected item (for single-select) if (!multi) { const selectedValue = sanitizedValues[0]; if (selectedValue) { - const selectedElement = - dropdownContentRef.current.querySelector( - `.dash-options-list-option-checkbox[value="${selectedValue}"]` - ); - - if (selectedElement instanceof HTMLElement) { - selectedElement.focus(); + const selectedIndex = displayOptions.findIndex( + o => o.value === selectedValue + ); + if (selectedIndex >= 0) { + focusedIndexRef.current = selectedIndex; + optionsListRef.current?.focusItem(selectedIndex); return; } } } - // Fallback: focus search input if available and no selected item was focused - if (searchable && searchInputRef.current) { - searchInputRef.current.focus(); + if (searchable) { + searchInputRef.current?.focus(); + } else { + focusedIndexRef.current = 0; + optionsListRef.current?.focusItem(0); } }); }, [isOpen, multi, displayOptions]); - // Handle keyboard navigation in popover - const handleKeyDown = useCallback((e: React.KeyboardEvent) => { - const relevantKeys = [ - 'ArrowDown', - 'ArrowUp', - 'PageDown', - 'PageUp', - 'Home', - 'End', - ]; - if (!relevantKeys.includes(e.key)) { - return; - } - - // Don't interfere with the event if the user is using Home/End keys on the search input - if ( - ['Home', 'End'].includes(e.key) && - document.activeElement === searchInputRef.current - ) { - return; - } + // Handle keyboard navigation in popover. + // Index -1 = search input, 0..N-1 = option index in displayOptions. + const handleKeyDown = useCallback( + (e: React.KeyboardEvent) => { + const relevantKeys = [ + 'ArrowDown', + 'ArrowUp', + 'PageDown', + 'PageUp', + 'Home', + 'End', + ]; + if (!relevantKeys.includes(e.key)) { + return; + } - const focusableElements = e.currentTarget.querySelectorAll( - 'input[type="search"], input:not([disabled])' - ) as NodeListOf; + if ( + ['Home', 'End'].includes(e.key) && + document.activeElement === searchInputRef.current + ) { + return; + } - // Don't interfere with the event if there aren't any options that the user can interact with - if (focusableElements.length === 0) { - return; - } + if (displayOptions.length === 0) { + return; + } - e.preventDefault(); + e.preventDefault(); + + const hasSearch = !!searchable; + const current = focusedIndexRef.current; + const maxIndex = displayOptions.length - 1; + const minIndex = hasSearch ? -1 : 0; + let nextIndex: number; + + switch (e.key) { + case 'ArrowDown': + nextIndex = current < maxIndex ? current + 1 : minIndex; + break; + case 'ArrowUp': + nextIndex = current > minIndex ? current - 1 : maxIndex; + break; + case 'PageDown': + nextIndex = Math.min(current + 10, maxIndex); + break; + case 'PageUp': + nextIndex = Math.max(current - 10, minIndex); + break; + case 'Home': + nextIndex = minIndex; + break; + case 'End': + nextIndex = maxIndex; + break; + default: + return; + } - const currentIndex = Array.from(focusableElements).indexOf( - document.activeElement as HTMLElement - ); - let nextIndex = -1; - - switch (e.key) { - case 'ArrowDown': - nextIndex = - currentIndex < focusableElements.length - 1 - ? currentIndex + 1 - : 0; - break; - - case 'ArrowUp': - nextIndex = - currentIndex > 0 - ? currentIndex - 1 - : focusableElements.length - 1; - - break; - case 'PageDown': - nextIndex = Math.min( - currentIndex + 10, - focusableElements.length - 1 - ); - break; - case 'PageUp': - nextIndex = Math.max(currentIndex - 10, 0); - break; - case 'Home': - nextIndex = 0; - break; - case 'End': - nextIndex = focusableElements.length - 1; - break; - default: - break; - } + focusedIndexRef.current = nextIndex; - if (nextIndex > -1) { - focusableElements[nextIndex].focus(); - if (nextIndex === 0) { - // first element is a sticky search bar, so if we are focusing - // on that, also move the scroll to the top + if (nextIndex === -1) { + searchInputRef.current?.focus(); dropdownContentRef.current?.scrollTo({top: 0}); } else { - focusableElements[nextIndex].scrollIntoView({ - behavior: 'auto', - block: 'nearest', - }); + optionsListRef.current?.focusItem(nextIndex); } - } - }, []); + }, + [displayOptions.length, searchable] + ); - // Handle popover open/close const handleOpenChange = useCallback( (open: boolean) => { setIsOpen(open); + focusedIndexRef.current = -1; if (!open) { - setProps({search_value: undefined}); + pendingSearchRef.current = ''; + const updates: Partial = {}; + + if (!isNil(search_value)) { + updates.search_value = undefined; + } + + // Commit debounced value on close only + if (debounce && !isEqual(value, val)) { + updates.value = val; + } + + if (Object.keys(updates).length > 0) { + setProps(updates); + } } }, - [filteredOptions, sanitizedValues] + [debounce, value, val, search_value, setProps] ); const accessibleId = id ?? uuid(); @@ -392,6 +428,14 @@ const Dropdown = (props: DropdownProps) => { ) { handleClear(); } + if (e.key.length === 1 && searchable) { + pendingSearchRef.current += e.key; + setProps({search_value: pendingSearchRef.current}); + setIsOpen(true); + requestAnimationFrame(() => + searchInputRef.current?.focus() + ); + } }} className={`dash-dropdown ${className ?? ''}`} aria-labelledby={`${accessibleId}-value-count ${accessibleId}-value`} @@ -475,6 +519,31 @@ const Dropdown = (props: DropdownProps) => { value={search_value || ''} autoComplete="off" onChange={e => onInputChange(e.target.value)} + onKeyUp={e => { + if ( + !search_value || + e.key !== 'Enter' || + !displayOptions.length + ) { + return; + } + const firstVal = displayOptions[0].value; + const isSelected = + sanitizedValues.includes(firstVal); + let newSelection; + if (isSelected) { + newSelection = without( + [firstVal], + sanitizedValues + ); + } else { + newSelection = append( + firstVal, + sanitizedValues + ); + } + updateSelection(newSelection); + }} ref={searchInputRef} /> {search_value && ( @@ -512,17 +581,19 @@ const Dropdown = (props: DropdownProps) => { {isOpen && !!displayOptions.length && ( <> )} diff --git a/components/dash-core-components/src/types.ts b/components/dash-core-components/src/types.ts index 0948d474cf..8311259f3c 100644 --- a/components/dash-core-components/src/types.ts +++ b/components/dash-core-components/src/types.ts @@ -741,6 +741,11 @@ export interface DropdownProps extends BaseDccProps { clear_selection?: string; no_options_found?: string; }; + /** + * If True, changes to input values will be sent back to the Dash server only when dropdown menu closes. + * Use with `closeOnSelect=False` + */ + debounce?: boolean; } export interface ChecklistProps extends BaseDccProps { diff --git a/components/dash-core-components/src/utils/calendar/Calendar.tsx b/components/dash-core-components/src/utils/calendar/Calendar.tsx index d35590da29..367ff1daeb 100644 --- a/components/dash-core-components/src/utils/calendar/Calendar.tsx +++ b/components/dash-core-components/src/utils/calendar/Calendar.tsx @@ -188,9 +188,7 @@ const CalendarComponent = ({ // Complete the selection with an end date if (selectionStart && !selectionEnd) { // Incomplete selection exists (range picker mid-selection) - if (!isSameDay(selectionStart, date)) { - onSelectionChange(selectionStart, date); - } + onSelectionChange(selectionStart, date); } else { // Complete selection exists or a single date was chosen onSelectionChange(date, date); diff --git a/components/dash-core-components/src/utils/calendar/helpers.ts b/components/dash-core-components/src/utils/calendar/helpers.ts index 82b085eb70..7fb7ea89d9 100644 --- a/components/dash-core-components/src/utils/calendar/helpers.ts +++ b/components/dash-core-components/src/utils/calendar/helpers.ts @@ -35,6 +35,7 @@ function convertFormatTokens(momentFormat: string): string { .replace(/Do/g, 'do') // Ordinal day: 1st, 2nd, 3rd .replace(/YYYY/g, 'yyyy') // 4-digit year .replace(/YY/g, 'yy') // 2-digit year + .replace(/Y/g, 'y') // Year (numeric, variable length) .replace(/DD/g, 'dd') // Day of month with leading zero .replace(/D/g, 'd') // Day of month .replace(/X/g, 't'); // Unix timestamp (seconds) diff --git a/components/dash-core-components/src/utils/dropdownSearch.ts b/components/dash-core-components/src/utils/dropdownSearch.ts index b2d5ed285a..41ad649bd3 100644 --- a/components/dash-core-components/src/utils/dropdownSearch.ts +++ b/components/dash-core-components/src/utils/dropdownSearch.ts @@ -5,7 +5,7 @@ import { UnorderedSearchIndex, } from 'js-search'; import {sanitizeOptions} from './optionTypes'; -import {DetailedOption, DropdownProps} from '../types'; +import {DetailedOption, DropdownProps, OptionValue} from '../types'; // Custom tokenizer, see https://github.com/bvaughn/js-search/issues/43 // Split on spaces @@ -19,38 +19,34 @@ const TOKENIZER = { }, }; -interface FilteredOptionsResult { - sanitizedOptions: DetailedOption[]; - filteredOptions: DetailedOption[]; +export interface SanitizedOptions { + options: DetailedOption[]; + indexes: string[]; + valueSet: Set; } -/** - * Creates filtered dropdown options using js-search with the exact same behavior - * as react-select-fast-filter-options - */ -export function createFilteredOptions( - options: DropdownProps['options'], - searchable: boolean, - searchValue?: string -): FilteredOptionsResult { - // Sanitize and prepare options - let sanitized = sanitizeOptions(options); +// Single-pass sanitization via sanitizeOptions, plus detection of +// search/element labels for indexing. +export function sanitizeDropdownOptions( + options: DropdownProps['options'] +): SanitizedOptions { + const {options: sanitized, valueSet} = sanitizeOptions(options); const indexes = ['value']; let hasElement = false, hasSearch = false; - sanitized = Array.isArray(sanitized) - ? sanitized.map(option => { - if (option.search) { - hasSearch = true; - } - if (React.isValidElement(option.label)) { - hasElement = true; - } - return option; - }) - : sanitized; + for (const option of sanitized) { + if (option.search) { + hasSearch = true; + } + if (React.isValidElement(option.label)) { + hasElement = true; + } + if (hasSearch && hasElement) { + break; + } + } if (!hasElement) { indexes.push('label'); @@ -59,34 +55,29 @@ export function createFilteredOptions( indexes.push('search'); } - // If not searchable or no search value, return all sanitized options - if (!searchable || !searchValue) { - return { - sanitizedOptions: sanitized || [], - filteredOptions: sanitized || [], - }; + return {options: sanitized, indexes, valueSet}; +} + +export function filterOptions( + options: SanitizedOptions, + searchValue?: string +): DetailedOption[] { + if (!searchValue) { + return options.options; } - // Create js-search instance exactly like react-select-fast-filter-options - const search = new Search('value'); // valueKey defaults to 'value' + const search = new Search('value'); search.searchIndex = new UnorderedSearchIndex(); search.indexStrategy = new AllSubstringsIndexStrategy(); search.tokenizer = TOKENIZER; - // Add indexes - indexes.forEach(index => { + options.indexes.forEach(index => { search.addIndex(index); }); - // Add documents - if (sanitized && sanitized.length > 0) { - search.addDocuments(sanitized); + if (options.options.length > 0) { + search.addDocuments(options.options); } - const filtered = search.search(searchValue) as DetailedOption[]; - - return { - sanitizedOptions: sanitized || [], - filteredOptions: filtered || [], - }; + return (search.search(searchValue) as DetailedOption[]) || []; } diff --git a/components/dash-core-components/src/utils/optionRendering.tsx b/components/dash-core-components/src/utils/optionRendering.tsx index 014f42e6b8..0715107bb5 100644 --- a/components/dash-core-components/src/utils/optionRendering.tsx +++ b/components/dash-core-components/src/utils/optionRendering.tsx @@ -1,8 +1,20 @@ -import React from 'react'; +import React, { + forwardRef, + memo, + useCallback, + useImperativeHandle, + useLayoutEffect, + useMemo, + useRef, + useState, +} from 'react'; import {append, includes, without} from 'ramda'; +import {VariableSizeList, ListChildComponentProps} from 'react-window'; import {DetailedOption, OptionValue} from 'src/types'; import '../components/css/optionslist.css'; +const DEFAULT_ITEM_HEIGHT = 35; + interface StylingProps { id?: string; className?: string; @@ -37,7 +49,7 @@ export const OptionLabel: React.FC = ({ ))} @@ -91,6 +103,7 @@ export const Option: React.FC = ({ role="option" aria-selected={isSelected} style={optionStyle} + data-option-index={index} > = ({ ); }; -interface OptionsListProps extends StylingProps { +interface RowData { options: DetailedOption[]; selected: OptionValue[]; - onSelectionChange: (selected: OptionValue[]) => void; + onChange: (option: DetailedOption) => void; + passThruProps: StylingProps; + setOptionHeight: (index: number, height: number) => void; } -export const OptionsList: React.FC = ({ - options, - selected, - onSelectionChange, - id, - className, - style, - ...passThruProps -}) => { - const classNames = ['dash-options-list', className].filter(Boolean); +const Row = memo(({index, style, data}: ListChildComponentProps) => { + const {options, selected, onChange, passThruProps, setOptionHeight} = data; + const option = options[index]; + const isSelected = includes(option.value, selected); + + const measureRef = useCallback( + (el: HTMLDivElement | null) => { + if (!el) { + return; + } + // Synchronous measurement for string labels. + const immediateHeight = el.getBoundingClientRect().height; + if (immediateHeight > 0) { + setOptionHeight(index, immediateHeight); + } + + // ResizeObserver catches async Dash component labels + // that render after the initial commit. + const observer = new ResizeObserver(([entry]) => { + const height = + entry.borderBoxSize?.[0]?.blockSize ?? + entry.contentRect.height; + if (height > 0) { + setOptionHeight(index, height); + } + }); + observer.observe(el); + }, + [index, setOptionHeight] + ); + return ( -
- {options.map((option, i) => { - const isSelected = includes(option.value, selected); - return ( -
\n );\n};\n\nexport default GraphSpinner;\n","import React from 'react';\nimport DebugTitle from './DebugTitle';\nimport {SpinnerProps} from '../types';\n\nconst CubeSpinner = ({\n status,\n color,\n fullscreen,\n debug,\n className,\n style,\n}: SpinnerProps) => {\n let debugTitle;\n if (debug && status) {\n debugTitle = status.map((s, i) => );\n }\n let spinnerClass = fullscreen ? 'dash-spinner-container' : '';\n if (className) {\n spinnerClass += ` ${className}`;\n }\n /* eslint-disable no-magic-numbers */\n return (\n
\n {debugTitle}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default CubeSpinner;\n","import React from 'react';\nimport DebugTitle from './DebugTitle';\nimport {SpinnerProps} from '../types';\n\n/**\n * Spinner created by Tobias Ahlin, https://github.com/tobiasahlin/SpinKit\n */\nconst CircleSpinner = ({\n status,\n color,\n fullscreen,\n debug,\n className,\n style,\n}: SpinnerProps) => {\n let debugTitle;\n if (debug && status) {\n debugTitle = status.map((s, i) => );\n }\n let spinnerClass = fullscreen ? 'dash-spinner-container' : '';\n if (className) {\n spinnerClass += ` ${className}`;\n }\n return (\n
\n {debugTitle}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default CircleSpinner;\n","import React from 'react';\nimport DebugTitle from './DebugTitle';\nimport {SpinnerProps} from '../types';\n\n/**\n * Spinner created by Tobias Ahlin, https://github.com/tobiasahlin/SpinKit\n */\nconst DotSpinner = ({\n status,\n color,\n fullscreen,\n debug,\n className,\n style,\n}: SpinnerProps) => {\n let debugTitle;\n if (debug && status) {\n debugTitle = status.map((s, i) => );\n }\n let spinnerClass = fullscreen ? 'dash-spinner-container' : '';\n if (className) {\n spinnerClass += ` ${className}`;\n }\n return (\n
\n {debugTitle}\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default DotSpinner;\n","import React from 'react';\nimport DebugTitle from './DebugTitle';\nimport {SpinnerProps} from '../types';\n\n/**\n * Spinner created by Tobias Ahlin, https://github.com/tobiasahlin/SpinKit\n */\nconst DefaultSpinner = ({\n status,\n color,\n fullscreen,\n debug,\n className,\n style,\n}: SpinnerProps) => {\n let debugTitle;\n if (debug && status) {\n debugTitle = status.map((s, i) => );\n }\n let spinnerClass = fullscreen ? 'dash-spinner-container' : '';\n if (className) {\n spinnerClass += ` ${className}`;\n }\n return (\n
\n {debugTitle}\n
\n
\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default DefaultSpinner;\n","import {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {type} from 'ramda';\n\nimport {History} from '@plotly/dash-component-plugins';\n\n/**\n * Update and track the current window.location object through the window.history state.\n * Use in conjunction with the `dash_core_components.Link` component to make apps with multiple pages.\n */\nexport default class Location extends Component {\n constructor(props) {\n super(props);\n this.updateLocation = this.updateLocation.bind(this);\n this.onLocationChange = this.onLocationChange.bind(this);\n }\n\n updateLocation(props) {\n const {hash, href, pathname, refresh, search, setProps} = props;\n\n // Keep track of props relating to window.location that may need to be updated via setProps\n const propsToSet = {};\n\n /**\n * Check if the field exists in props. If the prop with \"fieldName\" is not defined,\n * then it was not set by the user and needs to be equal to the value in window.location.\n * This only happens on page load (since props will no longer be undefined after componentDidMount).\n *\n * @param {string} fieldName\n * The name of the prop in window.location and in the component's prop\n *\n * @returns {boolean}\n * Returns true if the prop with fieldName is different and the window state needs to be updated\n */\n const checkExistsUpdateWindowLocation = fieldName => {\n const propVal = props[fieldName];\n\n if (\n (type(propVal) === 'Undefined' || propVal === null) &&\n type(window.location[fieldName]) !== 'Undefined'\n ) {\n // propVal is undefined or null, but window.location has this fieldName defined\n propsToSet[fieldName] = window.location[fieldName];\n } else if (propVal !== window.location[fieldName]) {\n // Prop has changed?\n if (refresh === true) {\n // Refresh the page?\n window.location[fieldName] = propVal;\n } else if (this.props[fieldName] !== propVal) {\n // If this prop has changed, need to setProps\n propsToSet[fieldName] = propVal;\n // This (`${fieldName}`: propVal) needs to be pushed in the window.history\n return true;\n }\n }\n // This (`${fieldName}`: propVal) DOES NOT need to be pushed in the window.history\n return false;\n };\n\n // Check if the prop value needs to be updated (note that this mutates propsToSet)\n const pathnameUpdated = checkExistsUpdateWindowLocation('pathname');\n const hrefUpdated = checkExistsUpdateWindowLocation('href');\n const hashUpdated = checkExistsUpdateWindowLocation('hash');\n const searchUpdated = checkExistsUpdateWindowLocation('search');\n\n // propsToSet has been updated -- batch update to Dash\n if (Object.keys(propsToSet).length > 0) {\n setProps(propsToSet);\n }\n\n // Special case -- overrides everything!\n if (hrefUpdated) {\n window.history.pushState({}, '', href);\n if (refresh === 'callback-nav') {\n window.dispatchEvent(new CustomEvent('_dashprivate_pushstate'));\n }\n } else if (pathnameUpdated || hashUpdated || searchUpdated) {\n // Otherwise, we can mash everything together\n const searchVal = type(search) !== 'Undefined' ? search : '';\n const hashVal = type(hash) !== 'Undefined' ? hash : '';\n window.history.pushState(\n {},\n '',\n `${pathname}${searchVal}${hashVal}`\n );\n if (refresh === 'callback-nav') {\n window.dispatchEvent(new CustomEvent('_dashprivate_pushstate'));\n }\n }\n }\n\n onLocationChange() {\n const {setProps} = this.props;\n const propsToChange = {};\n\n if (this.props.pathname !== window.location.pathname) {\n propsToChange.pathname = window.location.pathname;\n }\n if (this.props.href !== window.location.href) {\n propsToChange.href = window.location.href;\n }\n if (this.props.hash !== window.location.hash) {\n propsToChange.hash = window.location.hash;\n }\n if (this.props.search !== window.location.search) {\n propsToChange.search = window.location.search;\n }\n\n setProps(propsToChange);\n\n History.dispatchChangeEvent();\n }\n\n componentDidMount() {\n window.addEventListener('popstate', this.onLocationChange);\n\n window.addEventListener(\n '_dashprivate_pushstate',\n this.onLocationChange\n );\n this.updateLocation(this.props);\n }\n\n componentWillUnmount() {\n window.removeEventListener('popstate', this.onLocationChange);\n window.removeEventListener(\n '_dashprivate_pushstate',\n this.onLocationChange\n );\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.updateLocation(nextProps);\n }\n\n render() {\n return null;\n }\n}\n\nLocation.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string.isRequired,\n\n /** pathname in window.location - e.g., \"/my/full/pathname\" */\n pathname: PropTypes.string,\n /** search in window.location - e.g., \"?myargument=1\" */\n search: PropTypes.string,\n /** hash in window.location - e.g., \"#myhash\" */\n hash: PropTypes.string,\n /** href in window.location - e.g., \"/my/full/pathname?myargument=1#myhash\" */\n href: PropTypes.string,\n\n /**\n * Use `True` to navigate outside the Dash app or to manually refresh a page.\n * Use `False` if the same callback that updates the Location component is also\n * updating the page content - typically used in multi-page apps that do not use Pages.\n * Use 'callback-nav' if you are updating the URL in a callback, or a different\n * callback will respond to the new Location with updated content. This is\n * typical with multi-page apps that use Pages. This will allow for\n * navigating to a new page without refreshing the page.\n */\n refresh: PropTypes.oneOfType([\n PropTypes.oneOf(['callback-nav']),\n PropTypes.bool,\n ]),\n\n /**\n * Dash-assigned callback that gets fired when the value changes.\n */\n setProps: PropTypes.func,\n};\n\nLocation.defaultProps = {\n refresh: true,\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./radioitems.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./radioitems.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {useMemo} from 'react';\nimport {RadioItemsProps, PersistedProps, PersistenceTypes} from '../types';\nimport './css/radioitems.css';\n\nimport {sanitizeOptions} from '../utils/optionTypes';\nimport LoadingElement from '../utils/_LoadingElement';\nimport {OptionsList} from '../utils/optionRendering';\nimport {isNil} from 'ramda';\n\n/**\n * RadioItems is a component that encapsulates several radio item inputs.\n * The values and labels of the RadioItems is specified in the `options`\n * property and the seleced item is specified with the `value` property.\n * Each radio item is rendered as an input with a surrounding label.\n */\nexport default function RadioItems({\n className,\n id,\n style,\n setProps,\n value,\n inputStyle = {},\n inputClassName = '',\n labelStyle = {},\n labelClassName = '',\n options = [],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n inline = false,\n}: RadioItemsProps) {\n const sanitizedOptions = useMemo(() => {\n return sanitizeOptions(options);\n }, [options]);\n\n const stylingProps = {\n id,\n className: 'dash-radioitems ' + (className ?? ''),\n style,\n optionClassName: inline ? 'dash-radioitems-inline' : undefined,\n inputStyle,\n inputClassName,\n labelStyle,\n labelClassName,\n };\n\n return (\n \n {loadingProps => (\n {\n if (selection.length) {\n setProps({value: selection[selection.length - 1]});\n }\n }}\n {...stylingProps}\n />\n )}\n \n );\n}\n\nRadioItems.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n","export default () =>\n import(/* webpackChunkName: \"slider\" */ '../../fragments/RangeSlider');\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./sliders.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./sliders.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {lazy, Suspense} from 'react';\nimport {PersistedProps, PersistenceTypes, RangeSliderProps} from '../types';\nimport rangeSlider from '../utils/LazyLoader/rangeSlider';\n\nimport './css/sliders.css';\n\nconst RealRangeSlider = lazy(rangeSlider);\n\n/**\n * A double slider with two handles.\n * Used for specifying a range of numerical values.\n */\nexport default function RangeSlider({\n updatemode = 'mouseup',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n // eslint-disable-next-line no-magic-numbers\n verticalHeight = 400,\n step = undefined,\n allow_direct_input = true,\n ...props\n}: RangeSliderProps) {\n // Some considerations for the default value of `step`:\n // If the range consists of integers, default to a value of `1`\n // Otherwise, leave it undefined\n if (\n typeof step === 'undefined' &&\n Number.isInteger(props.min) &&\n Number.isInteger(props.max)\n ) {\n step = 1;\n }\n\n return (\n \n \n \n );\n}\n\nRangeSlider.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n","import {omit} from 'ramda';\nimport React, {lazy, Suspense, useCallback, useMemo} from 'react';\nimport {\n PersistedProps,\n PersistenceTypes,\n RangeSliderProps,\n SliderProps,\n} from '../types';\nimport rangeSlider from '../utils/LazyLoader/rangeSlider';\nimport './css/sliders.css';\n\nconst RealSlider = lazy(rangeSlider);\n\n/**\n * A slider component with a single handle.\n */\nexport default function Slider({\n updatemode = 'mouseup',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n // eslint-disable-next-line no-magic-numbers\n verticalHeight = 400,\n step = undefined,\n allow_direct_input = true,\n setProps,\n value,\n drag_value,\n ...props\n}: SliderProps) {\n // This is actually a wrapper around a RangeSlider.\n // We'll modify key `Slider` props to be compatible with a Range Slider.\n\n // Some considerations for the default value of `step`:\n // If the range consists of integers, default to a value of `1`\n // Otherwise, leave it undefined\n if (\n typeof step === 'undefined' &&\n Number.isInteger(props.min) &&\n Number.isInteger(props.max)\n ) {\n step = 1;\n }\n\n const mappedValue: RangeSliderProps['value'] = useMemo(() => {\n return typeof value === 'number' ? [value] : value;\n }, [value]);\n\n const mappedDragValue: RangeSliderProps['drag_value'] = useMemo(() => {\n return typeof drag_value === 'number' ? [drag_value] : drag_value;\n }, [drag_value]);\n\n const mappedSetProps: RangeSliderProps['setProps'] = useCallback(\n newProps => {\n const {value, drag_value} = newProps;\n const mappedProps: Partial = omit(\n ['value', 'drag_value', 'setProps'],\n newProps\n );\n if ('value' in newProps) {\n mappedProps.value = value ? value[0] : value;\n }\n if ('drag_value' in newProps) {\n mappedProps.drag_value = drag_value\n ? drag_value[0]\n : drag_value;\n }\n\n setProps(mappedProps);\n },\n [setProps]\n );\n\n return (\n \n \n \n );\n}\n\nSlider.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n","import {equals, isNil} from 'ramda';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Abstraction for the memory storage_type to work the same way as local/session\n *\n * Each memory Store component get it's own MemStore.\n */\nclass MemStore {\n constructor() {\n this._data = {};\n this._modified = -1;\n }\n\n getItem(key) {\n return this._data[key];\n }\n\n setItem(key, value) {\n this._data[key] = value;\n this.setModified(key);\n }\n\n removeItem(key) {\n delete this._data[key];\n this.setModified(key);\n }\n\n // noinspection JSUnusedLocalSymbols\n setModified(_) {\n this._modified = Date.now();\n }\n\n // noinspection JSUnusedLocalSymbols\n getModified(_) {\n return this._modified;\n }\n}\n\n/**\n * Abstraction for local/session storage_type.\n *\n * Single instances for localStorage, sessionStorage\n */\nclass WebStore {\n constructor(storage) {\n this._storage = storage;\n }\n\n getItem(key) {\n try {\n return JSON.parse(this._storage.getItem(key));\n } catch (e) {\n // in case we somehow got a non-JSON value in storage,\n // just ignore it.\n return null;\n }\n }\n\n setItem(key, value) {\n this._storage.setItem(key, JSON.stringify(value));\n this.setModified(key);\n }\n\n removeItem(key) {\n this._storage.removeItem(key);\n this._storage.removeItem(`${key}-timestamp`);\n }\n\n setModified(key) {\n this._storage.setItem(`${key}-timestamp`, Date.now());\n }\n\n getModified(key) {\n return (\n Number.parseInt(this._storage.getItem(`${key}-timestamp`), 10) || -1\n );\n }\n}\n\n/**\n * Easily keep data on the client side with this component.\n * The data is not inserted in the DOM.\n * Data can be in memory, localStorage or sessionStorage.\n * The data will be kept with the id as key.\n */\nexport default class Store extends React.Component {\n constructor(props) {\n super(props);\n\n if (props.storage_type === 'local') {\n this._backstore = new WebStore(window.localStorage);\n } else if (props.storage_type === 'session') {\n this._backstore = new WebStore(window.sessionStorage);\n } else if (props.storage_type === 'memory') {\n this._backstore = new MemStore();\n }\n\n this.onStorageChange = this.onStorageChange.bind(this);\n }\n\n onStorageChange(e) {\n const {id, setProps} = this.props;\n if (e.key === id && setProps && e.newValue !== e.oldValue) {\n setProps({\n data: JSON.parse(e.newValue),\n modified_timestamp: this._backstore.getModified(id),\n });\n }\n }\n\n UNSAFE_componentWillMount() {\n const {setProps, id, data, storage_type} = this.props;\n if (storage_type !== 'memory') {\n window.addEventListener('storage', this.onStorageChange);\n }\n\n const old = this._backstore.getItem(id);\n if (isNil(old) && !isNil(data)) {\n // Initial data mount\n this._backstore.setItem(id, data);\n setProps({\n modified_timestamp: this._backstore.getModified(id),\n });\n return;\n }\n\n if (!equals(old, data)) {\n setProps({\n data: old,\n modified_timestamp: this._backstore.getModified(id),\n });\n }\n }\n\n componentWillUnmount() {\n if (this.props.storage_type !== 'memory') {\n window.removeEventListener('storage', this.onStorageChange);\n }\n }\n\n componentDidUpdate() {\n const {data, id, clear_data, setProps} = this.props;\n if (clear_data) {\n this._backstore.removeItem(id);\n setProps({\n clear_data: false,\n data: null,\n modified_timestamp: this._backstore.getModified(id),\n });\n return;\n }\n const old = this._backstore.getItem(id);\n // Only set the data if it's not the same data.\n // If the new data is undefined, we got here by overwriting the entire\n // component with a new copy that has no `data` specified - so pull back\n // out the old value.\n // Note: this still allows you to set data to null\n if (!equals(data, old)) {\n if (data === undefined) {\n setProps({data: old});\n } else {\n this._backstore.setItem(id, data);\n setProps({\n modified_timestamp: this._backstore.getModified(id),\n });\n }\n }\n }\n\n render() {\n return null;\n }\n}\n\nStore.defaultProps = {\n storage_type: 'memory',\n clear_data: false,\n modified_timestamp: -1,\n};\n\nStore.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string.isRequired,\n\n /**\n * The type of the web storage.\n *\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n storage_type: PropTypes.oneOf(['local', 'session', 'memory']),\n\n /**\n * The stored data for the id.\n */\n data: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.array,\n PropTypes.number,\n PropTypes.string,\n PropTypes.bool,\n ]),\n\n /**\n * Set to true to remove the data contained in `data_key`.\n */\n clear_data: PropTypes.bool,\n\n /**\n * The last time the storage was modified.\n */\n modified_timestamp: PropTypes.number,\n\n /**\n * Dash-assigned callback that gets fired when the value changes.\n */\n setProps: PropTypes.func,\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./tabs.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./tabs.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport './css/tabs.css';\nimport {TabProps} from '../types';\n\n/**\n * Part of dcc.Tabs - this is the child Tab component used to render a tabbed page.\n * Its children will be set as the content of that tab, which if clicked will become visible.\n */\nfunction Tab({\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n disabled = false,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n disabled_style = {color: 'var(--Dash-Text-Disabled)'},\n}: TabProps) {\n return <>{children};\n}\n\nexport default Tab;\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {has, isNil} from 'ramda';\n\nimport LoadingElement from '../utils/_LoadingElement';\nimport {PersistedProps, PersistenceTypes, TabProps, TabsProps} from '../types';\nimport './css/tabs.css';\nimport {DashComponent} from '@dash-renderer/types';\n\ninterface EnhancedTabProps extends TabProps {\n selected: boolean;\n componentPath?: (string | number)[];\n}\n\n// EnhancedTab is defined here instead of in Tab.tsx because if exported there,\n// it will mess up the Python imports and metadata.json\nconst EnhancedTab = ({\n id,\n label,\n selected,\n className,\n style,\n selected_className,\n selected_style,\n setProps: selectHandler,\n value,\n disabled = false,\n disabled_style = {color: 'var(--Dash-Text-Disabled)'},\n disabled_className,\n componentPath,\n}: EnhancedTabProps) => {\n const ExternalWrapper = window.dash_component_api.ExternalWrapper;\n const ctx = window.dash_component_api.useDashContext();\n componentPath = componentPath ?? ctx.componentPath;\n // We use the raw path here since it's up one level from\n // the tabs child.\n const isLoading = ctx.useLoading({rawPath: componentPath});\n const tabStyle = useMemo(() => {\n return {\n ...style,\n ...(disabled ? disabled_style : {}),\n ...(selected ? selected_style : {}),\n };\n }, [style, disabled, disabled_style, selected, selected_style]);\n\n const tabClassNames = useMemo(() => {\n let names = 'tab';\n if (disabled) {\n names += ' tab--disabled';\n if (disabled_className) {\n names += ` ${disabled_className}`;\n }\n }\n if (selected) {\n names += ' tab--selected';\n if (selected_className) {\n names += ` ${selected_className}`;\n }\n }\n if (className) {\n names += ` ${className}`;\n }\n return names;\n }, [className, disabled, disabled_className, selected, selected_className]);\n\n let labelDisplay;\n if (typeof label === 'object') {\n labelDisplay = (\n \n );\n } else {\n labelDisplay = {label};\n }\n\n return (\n {\n if (!disabled) {\n selectHandler({value});\n }\n }}\n >\n {labelDisplay}\n
\n );\n};\n\n/**\n * A Dash component that lets you render pages with tabs - the Tabs component's children\n * can be dcc.Tab components, which can hold a label that will be displayed as a tab, and can in turn hold\n * children components that will be that tab's content.\n */\nfunction Tabs({\n // eslint-disable-next-line no-magic-numbers\n mobile_breakpoint = 800,\n colors = {\n border: 'var(--Dash-Stroke-Weak)',\n primary: 'var(--Dash-Fill-Interactive-Strong)',\n background: 'var(--Dash-Fill-Interactive-Weak)',\n },\n vertical = false,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n children,\n ...props\n}: TabsProps) {\n const initializedRef = useRef(false);\n const [isAboveBreakpoint, setIsAboveBreakpoint] = useState(false);\n\n const parseChildrenToArray = useCallback((): DashComponent[] => {\n if (!children) {\n return [];\n }\n if (children instanceof Array) {\n return children;\n }\n return [children];\n }, [children]);\n\n const valueOrDefault = (): string | undefined => {\n if (has('value', props)) {\n return props.value;\n }\n const children = parseChildrenToArray();\n if (children && children.length && children[0].props.componentPath) {\n const firstChildren: TabProps = window.dash_component_api.getLayout(\n [...children[0].props.componentPath, 'props']\n );\n return firstChildren.value ?? 'tab-1';\n }\n return 'tab-1';\n };\n\n // Initialize value on mount if not set\n useEffect(() => {\n if (!initializedRef.current && !has('value', props)) {\n props.setProps({\n value: `${valueOrDefault()}`,\n });\n initializedRef.current = true;\n }\n }, []);\n\n // Setup matchMedia for responsive breakpoint\n useEffect(() => {\n const mediaQuery = window.matchMedia(\n `(min-width: ${mobile_breakpoint}px)`\n );\n\n // Set initial value\n setIsAboveBreakpoint(mediaQuery.matches);\n\n // Listen for changes\n const handler = (e: MediaQueryListEvent) =>\n setIsAboveBreakpoint(e.matches);\n mediaQuery.addEventListener('change', handler);\n\n return () => mediaQuery.removeEventListener('change', handler);\n }, [mobile_breakpoint]);\n\n let EnhancedTabs: JSX.Element[];\n let selectedTab;\n\n const value = valueOrDefault();\n\n if (children) {\n const children = parseChildrenToArray();\n\n EnhancedTabs = children.map((child, index) => {\n // TODO: handle components that are not dcc.Tab components (throw error)\n // enhance Tab components coming from Dash (as dcc.Tab) with methods needed for handling logic\n let childProps: Omit;\n\n if (React.isValidElement(child) && child.props.componentPath) {\n childProps = window.dash_component_api.getLayout([\n ...child.props.componentPath,\n 'props',\n ]);\n } else {\n // In case the selected tab is a string.\n childProps = {};\n }\n\n if (!childProps.value) {\n childProps = {...childProps, value: `tab-${index + 1}`};\n }\n\n // check if this child/Tab is currently selected\n if (childProps.value === value) {\n selectedTab = child;\n }\n\n const style = childProps.style ?? {};\n if (typeof childProps.width === 'number') {\n style.width = `${childProps.width}px`;\n style.flex = '0 0 auto';\n } else if (typeof childProps.width === 'string') {\n style.width = childProps.width;\n style.flex = '0 0 auto';\n }\n\n return (\n \n );\n });\n }\n\n const selectedTabContent = !isNil(selectedTab) ? selectedTab : '';\n\n const tabContainerClassNames = useMemo(() => {\n let names = 'tab-container';\n if (vertical) {\n names += ` tab-container--vert`;\n }\n if (props.className) {\n names += ` ${props.className}`;\n }\n return names;\n }, [vertical, props.className]);\n\n const tabContentClassNames = useMemo(() => {\n let names = 'tab-content';\n if (vertical) {\n names += ` tab-content--vert`;\n }\n if (props.content_className) {\n names += ` ${props.content_className}`;\n }\n return names;\n }, [vertical, props.content_className]);\n\n const tabParentClassNames = useMemo(() => {\n let names = 'tab-parent';\n if (vertical) {\n names += ` tab-parent--vert`;\n }\n if (isAboveBreakpoint) {\n names += ' tab-parent--above-breakpoint';\n }\n if (props.parent_className) {\n names += ` ${props.parent_className}`;\n }\n return names;\n }, [vertical, isAboveBreakpoint, props.parent_className]);\n\n // Set CSS variables for dynamic styling\n const cssVars = {\n '--tabs-border': colors.border,\n '--tabs-primary': colors.primary,\n '--tabs-background': colors.background,\n } as const;\n\n return (\n \n {loadingProps => (\n \n \n {EnhancedTabs}\n
\n \n {selectedTabContent || ''}\n
\n
\n )}\n \n );\n}\n\nTabs.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n\nTabs.dashChildrenUpdate = true;\n\nexport default Tabs;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./textarea.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./textarea.css\";\n export default content && content.locals ? content.locals : undefined;\n","/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport {pick} from 'ramda';\nimport {PersistedProps, PersistenceTypes, TextAreaProps} from '../types';\nimport './css/textarea.css';\n\nconst textAreaProps = [\n 'id',\n 'cols',\n 'rows',\n 'minLength',\n 'maxLength',\n 'contentEditable',\n 'tabIndex',\n 'form',\n 'name',\n 'placeholder',\n 'wrap',\n 'accessKey',\n 'contextMenu',\n 'dir',\n 'draggable',\n 'lang',\n 'spellCheck',\n 'style',\n 'title',\n] as const;\n\n/**\n * A basic HTML textarea for entering multiline text.\n *\n */\nconst Textarea = ({\n setProps,\n n_blur = 0,\n n_blur_timestamp = -1,\n n_clicks = 0,\n n_clicks_timestamp = -1,\n ...props\n}: TextAreaProps) => {\n const ctx = window.dash_component_api.useDashContext();\n const isLoading = ctx.useLoading();\n\n return (\n
\n
\n \n );\n};\n\nexport default Tooltip;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./dcc.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./dcc.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","$defineProperty","$SyntaxError","$TypeError","gopd","module","exports","obj","property","value","arguments","length","nonEnumerable","nonWritable","nonConfigurable","loose","desc","configurable","enumerable","writable","Function","prototype","call","Math","round","undefined","$Object","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","abs","floor","max","min","pow","sign","$Function","getEvalledConstructor","expressionSyntax","e","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","get","gOPDthrows","hasSymbols","$ObjectGPO","$ReflectGPO","$apply","$call","needsEval","TypedArray","Uint8Array","INTRINSICS","__proto__","AggregateError","Array","ArrayBuffer","Symbol","iterator","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Number","parseFloat","parseInt","Promise","Proxy","Reflect","RegExp","Set","SharedArrayBuffer","String","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","error","errorProto","doEval","name","fn","gen","LEGACY_ALIASES","bind","hasOwn","$concat","concat","$spliceApply","splice","$replace","replace","$strSlice","slice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","allowMissing","alias","intrinsicName","parts","string","first","last","result","match","number","quote","subString","stringToPath","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","i","isOwn","part","___CSS_LOADER_EXPORT___","push","id","setFunctionLength","callBindBasic","applyBind","originalFunction","func","adjustedLength","apply","getOwnPropertyDescriptors","Object","keys","descriptors","getOwnPropertyDescriptor","formatRegExp","format","f","isString","objects","inspect","join","args","len","str","x","stringify","_","isNull","isObject","deprecate","msg","process","noDeprecation","this","warned","throwDeprecation","Error","traceDeprecation","console","trace","debugs","debugEnvRegex","env","NODE_DEBUG","debugEnv","toUpperCase","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","isFunction","constructor","ret","primitive","simple","isNumber","formatPrimitive","visibleKeys","array","hash","forEach","val","idx","arrayToHash","getOwnPropertyNames","isError","indexOf","formatError","isRegExp","toString","isDate","output","base","braces","isArray","toUTCString","l","hasOwnProperty","formatProperty","key","formatArray","map","pop","reduce","prev","cur","reduceToSingleString","set","split","line","ar","arg","re","objectToString","d","o","pad","n","debuglog","test","pid","types","isNullOrUndefined","isSymbol","isNativeError","isPrimitive","isBuffer","months","prop","log","time","getHours","getMinutes","getSeconds","getDate","getMonth","inherits","origin","add","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","cb","newReason","promisify","original","TypeError","defineProperty","promiseResolve","promiseReject","promise","resolve","reject","err","setPrototypeOf","getPrototypeOf","defineProperties","custom","callbackify","callbackified","maybeCb","self","then","nextTick","rej","options","element","document","createElement","setAttributes","attributes","insert","hasPropertyDescriptors","hasArrayLengthDefineBug","getWeek","date","_date","toDate","in","diff","startOfWeek","_ref","_ref2","_ref3","_options$firstWeekCon","_options$locale","_defaultOptions$local","defaultOptions","getDefaultOptions","firstWeekContainsDate","locale","year","getWeekYear","firstWeek","constructFrom","setFullYear","setHours","startOfWeekYear","millisecondsInWeek","dateLongFormatter","pattern","formatLong","width","timeLongFormatter","longFormatters","p","P","dateTimeLongFormatter","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","_isObject","_dispatchable","methodNames","transducerCreator","_isArray","_isTransformer","transducer","_has","toStr","isArgs","callee","css","styleElement","styleSheet","cssText","firstChild","removeChild","appendChild","createTextNode","copy","fill","readUInt8","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMilliseconds","setUTCFullYear","origKeys","keysShim","originalKeys","shim","keysWorksWithArguments","object","EvalError","type","getOwnPropertySymbols","sym","symObj","syms","propertyIsEnumerable","descriptor","item","content","cssMapping","btoa","base64","unescape","data","sourceMapping","includes","_curry2","pred","filterable","filter","window","isNil","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","context","formattingValues","defaultFormattingWidth","values","argumentCallback","localize","ordinalNumber","dirtyNumber","_options","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","predicate","findIndex","findKey","valueCallback","rest","parsePattern","parseResult","any","index","enUS","code","formatDistance","token","count","tokenValue","addSuffix","comparison","formatRelative","_baseDate","weekStartsOn","init","xf","RealUpload","lazy","upload","Upload","Component","render","React","Suspense","fallback","props","propTypes","PropTypes","contents","filename","last_modified","children","accept","disabled","disable_click","max_size","min_size","multiple","enable_folder_selection","className","className_active","className_reject","className_disabled","style_active","style_reject","style_disabled","setProps","defaultProps","borderStyle","borderColor","backgroundColor","opacity","additionalProps","dash_component_api","useDashContext","useLoading","actualApply","f2","a","b","_b","_a","_slicedToArray","arr","_arrayWithHoles","r","t","u","next","done","return","_iterableToArrayLimit","minLen","_arrayLikeToArray","from","_unsupportedIterableToArray","_nonIterableRest","arr2","_typeof","regexFlagsSupported","flags","arrayFromSet","arrayFromMap","objectIs","is","objectGetOwnPropertySymbols","numberIsNaN","uncurryThis","_require$types","isAnyArrayBuffer","isArrayBufferView","isMap","isSet","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","charCodeAt","getOwnNonIndexProperties","compare","y","innerDeepEqual","val1","val2","strict","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","getTime","source","message","byteLength","buffer","byteOffset","areSimilarTypedArrays","offset","areSimilarFloatArrays","_keys","_keys2","size","valueOf","isEqualBoxedPrimitive","getEnumerables","k","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","position","val2MemoA","val2MemoB","areEq","memo","aValues","has","setMightHaveLoosePrim","bValues","_i","_val","setHasEqualElement","setEquiv","aEntries","_aEntries$i","item1","item2","mapMightHaveLoosePrim","bEntries","_i2","_bEntries$_i","_key","mapHasEqualEntry","mapEquiv","keysA","_key2","objEquiv","delete","setValues","findLooseMatchingPrimitives","prim","altValue","curB","key1","key2","isDeepEqual","isDeepStrictEqual","define","getPolyfill","polyfill","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","contains","list","nIdx","ks","checkArgsLength","el","set1","set2","len1","len2","_concat","styleTagTransform","parent","querySelector","lastInsertedElement","_lastElementInsertedByStyleLoader","nextSibling","insertBefore","domAPI","insertStyleElement","locals","OptionLabel","label","title","ExternalWrapper","labels","component","componentPath","displayLabel","Option","option","isSelected","onChange","optionClassName","optionStyle","_ref2$inputType","inputType","inputClassName","inputStyle","labelClassName","labelStyle","classNames","inputClassNames","labelClassNames","role","checked","onKeyUp","readOnly","_extends","OptionsList","selected","onSelectionChange","passThruProps","_objectWithoutProperties","_excluded","newValue","without","append","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","constructFromSymbol","for","isCallable","thisArg","receiver","forEachArray","charAt","forEachString","forEachObject","_isPlaceholder","getISOWeek","startOfISOWeek","getISOWeekYear","fourthOfJanuary","startOfISOWeekYear","parseISO","argument","_options$additionalDi","invalidDate","NaN","additionalDigits","dateStrings","dateString","timeString","patterns","dateTimeDelimiter","timeZoneDelimiter","substr","timezone","splitDateString","parseYearResult","regex","captures","restDateString","century","parseYear","dateRegex","isWeekDate","dayOfYear","parseDateUnit","week","dayOfWeek","_year","validateWeekDate","isoWeekYear","getUTCDay","setUTCDate","getUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseDate","timestamp","timeRegex","hours","parseTimeUnit","minutes","seconds","validateTime","parseTime","tmpDate","getUTCFullYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","timezoneString","timezoneRegex","_hours","validateTimezone","parseTimezone","$isNaN","$actualApply","$reflectApply","sanitizeOptions","isOptionValue","entries","_curry1","f1","reflectGetProto","originalGetProto","getDunderProto","O","_isFunction","ownKeys","_objectSpread","_toPropertyKey","_defineProperties","target","input","toPrimitive","res","hint","_toPrimitive","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","_isNativeReflectConstruct","construct","instance","sham","ERR_INVALID_ARG_TYPE","codes","endsWith","search","this_len","substring","blue","green","red","white","kReadableOperator","deepStrictEqual","strictEqual","strictEqualObject","deepEqual","equal","notDeepStrictEqual","notStrictEqual","notStrictEqualObject","notDeepEqual","notEqual","notIdentical","copyError","inspectValue","compact","maxArrayLength","Infinity","breakLength","showProxy","sorted","getters","AssertionError","_Error","_inspect$custom","subClass","superClass","_inherits","Derived","hasNativeReflectConstruct","Constructor","protoProps","_super","Super","NewTarget","_this","_classCallCheck","operator","stackStartFn","actual","expected","limit","stackTraceLimit","stderr","isTTY","getColorDepth","lastPos","end","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","columns","maxCount","repeat","maxLines","_actualLines","printedLines","skippedMsg","expectedLine","actualLine","divergingLines","createErrDiff","_res","knownOperators","generatedMessage","captureStackTrace","stack","PersistenceTypes","PersistedProps","HTMLInputTypes","CalendarDirection","origSymbol","hasSymbolSham","callBind","implementation","_createClass","staticProps","_require$codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","isPromise","objectAssign","RegExpPrototypeTest","lazyLoadComparison","assert","ok","NO_EXCEPTION_SENTINEL","innerFail","innerOk","argLen","_len","fail","internalMessage","argsLen","emitWarning","warn","errArgs","Comparison","expectedException","compareExceptionKey","isPrototypeOf","getActual","checkIsPromise","catch","waitForActual","promiseFn","resultPromise","expectsError","details","fnType","expectsNoError","internalMatch","regexp","fnName","_len6","_key6","throws","_len2","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","tmp2","shift","tmp1","pos","doesNotMatch","_arrayFromIterator","iter","_includesWith","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","typeA","equals","global","ignoreCase","multiline","sticky","unicode","extendedStackA","extendedStackB","privatePropTypes","_dashprivate_transformConfig","_dashprivate_transformFigure","_dashprivate_onFigureModified","EMPTY_DATA","PlotlyGraph","super","mathjax","_loadMathjax","state","prependData","extendData","clearState","componentDidMount","setState","componentWillUnmount","UNSAFE_componentWillReceiveProps","nextProps","figure","dataKey","ControlledPlotlyGraph","RealPlotlyGraph","asyncDecorator","all","Plotly","timeoutId","src","_dashPlotlyJSURL","async","onload","clearTimeout","onerror","setTimeout","lazyLoadMathJax","extendedClassName","displayName","responsive","clickData","clickAnnotationData","hoverData","clear_on_unhover","selectedData","relayoutData","restyleData","layout","frames","animate","animation_options","config","staticPlot","plotlyServerURL","editable","editSelection","edits","annotationPosition","annotationTail","annotationText","axisTitleText","colorbarPosition","colorbarTitleText","legendPosition","legendText","shapePosition","titleText","autosizable","queueLength","fillFrame","frameMargins","scrollZoom","doubleClick","doubleClickDelay","showTips","showAxisDragHandles","showAxisRangeEntryBoxes","showLink","sendData","linkText","displayModeBar","showSendToCloud","showEditInChartStudio","modeBarButtonsToRemove","modeBarButtonsToAdd","modeBarButtons","toImageButtonOptions","height","scale","displaylogo","watermark","plotGlPixelRatio","topojsonURL","mapboxAccessToken","locales","c","frame","redraw","transition","duration","ease","graphPropTypes","graphDefaultProps","XMLHttpRequest","open","responseType","g","response","send","status","dispatchEvent","MouseEvent","createEvent","initMouseEvent","navigator","userAgent","saveAs","HTMLAnchorElement","h","URL","webkitURL","j","download","rel","href","location","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","body","innerText","HTMLElement","safari","FileReader","onloadend","readAsDataURL","m","toStringTag","__esModule","default","s","isReady","regeneratorRuntime","mark","wrap","stop","_dashprivate_isLazyComponentReady","CustomEvent","addEventListener","removeEventListener","_isArguments","nonce","setAttribute","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","indexByIdentifier","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","api","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_index","startOfDay","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","_message","subject","toLowerCase","RangeError","URIError","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","omit","names","whichTypedArray","availableTypedArrays","callBound","gOPD","$toString","hasToStringTag","globalThis","typedArrays","$slice","$indexOf","cache","typedArray","proto","superProto","tag","found","getter","trySlices","tryTypedArrays","normalizeDates","dates","normalize","find","_includes","inf","_indexOf","cssWithMappingToString","needLayer","modules","dedupe","alreadyImportedModules","_k","_options$weekStartsOn","getDay","setDate","GetIntrinsic","ctor","superCtor","super_","TempCtor","util","now","times","functions","expression","tuple","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","xs","toRemove","convert","fastIsNumeric","isNumeric","isEquivalent","v1","v2","inputProps","Input","_ref$type","text","_ref$inputMode","inputMode","_ref$n_blur","n_blur","_ref$n_submit","n_blur_timestamp","n_submit","_ref$debounce","n_submit_timestamp","debounce","_ref$step","step","_ref$autoComplete","autoComplete","persisted_props","persistence_type","local","useRef","_useState2","useState","setValue","_useState4","pendingEvent","setPendingEvent","inputId","uniqid","valprops","setPropValue","useCallback","current","checkValidity","onEvent","inputValue","valueAsNumber","propValue","onBlur","onKeyPress","setInputValue","debounceEvent","handleStepperClick","direction","currentValue","stepAsNum","decimalPlaces","constrainedValue","roundedValue","toFixed","useEffect","cursorPosition","selectionStart","setSelectionRange","disabledAsBool","pickedInputs","pick","isNumberInput","currentNumericValue","minValue","maxValue","isDecrementDisabled","isIncrementDisabled","LoadingElement","loadingProps","hidden","trim","ref","onClick","dashPersistence","_ref$elementType","elementType","loading","givenProps","hasDescriptors","$floor","functionLengthIsConfigurable","functionLengthIsWritable","hasProtoAccessor","$getPrototypeOf","isStandardArguments","isLegacyArguments","supportsStandardArguments","allBlankCharCodes","isValid","b64","tmp","lens","validLen","getLens","placeHoldersLen","Arr","_byteLength","curByte","revLookup","lookup","_map","functor","_quote","toISOString","_toString","recur","mapPairs","sort","repr","parentNode","removeStyleElement","event","params","bubbles","cancelable","detail","evt","initCustomEvent","Event","Link","_ref$refresh","refresh","cleanUrl","dash_clientside","clean_url","sanitizedUrl","useMemo","_dash_error","metaKey","shiftKey","altKey","ctrlKey","preventDefault","history","pushState","scrollTo","isRequired","loading_state","is_loading","prop_name","component_name","SyntaxError","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","MathJax","GeneratorFunction","fnToStr","isFnRegex","generatorFunc","getGeneratorFunc","_isString","RealDropdown","dropdown","defaultLabels","select_all","deselect_all","selected_count","clear_search","clear_selection","no_options_found","Dropdown","_ref$clearable","clearable","_ref$disabled","_ref$multi","multi","_ref$searchable","searchable","_ref$labels","_ref$optionHeight","optionHeight","_ref$maxHeight","maxHeight","_ref$closeOnSelect","closeOnSelect","objectKeys","toObject","$push","$propIsEnumerable","originalGetSymbols","source1","to","getSymbols","nextKey","defineDataProperty","supportsDescriptors","predicates","differenceInCalendarDays","laterDate","earlierDate","_normalizeDates2","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","getDayOfYear","date_","startOfYear","addLeadingZeros","targetLength","padStart","lightFormatters","signedYear","M","dayPeriodEnumValue","H","S","numberOfDigits","milliseconds","trunc","formatters","G","unit","Y","signedWeekYear","weekYear","R","Q","ceil","q","L","w","I","isoWeek","D","E","localDayOfWeek","isoDayOfWeek","B","K","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","T","delimiter","absOffset","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","_ref4","_options$locale2","_ref5","_ref6","_ref7","_options$locale3","_defaultOptions$local2","defaultLocale","originalDate","firstCharacter","longFormatter","isToken","matched","preprocessor","formatterOptions","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","formatter","_path","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isArguments","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","XFilter","_xfBase","_xfilter","reducer","acc","_arrayReduce","_filter","isArgumentsObject","isGeneratorFunction","isTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","method","assign","letters","lacksProperEnumerationOrder","preventExtensions","thrower","assignHasPendingExceptions","possibleNames","out","concatty","that","bound","arrLike","slicy","boundLength","boundArgs","joiny","Empty","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","thing","determiner","start","inspected","badArrayLike","isCallableMarker","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","strClass","DashMarkdown","RealDashMarkdown","dangerously_allow_html","link_target","dedent","highlight_config","theme","prefix","suffix","$hasOwn","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","mode","ns","def","definition","chunkId","promises","url","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","nc","onScriptComplete","doneFns","head","scriptUrl","importScripts","currentScript","tagName","getCurrentScript","doc_scripts","textContent","jsonpScriptSrc","__jsonpScriptSrc__","isLocal","srcFragments","fileFragments","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","_ref$n_clicks","n_clicks","n_clicks_timestamp","isLoading","Checklist","_ref$inputStyle","_ref$inputClassName","_ref$labelStyle","_ref$labelClassName","_ref$options","_ref$value","_ref$inline","inline","sanitizedOptions","stylingProps","selection","_defineProperty","_arr","_n","_d","_e","_s","_WINDOW","_DOCUMENT","_PERFORMANCE","measure","MutationObserver","performance","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","documentElement","NAMESPACE_IDENTIFIER","DEFAULT_REPLACEMENT_CLASS","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","FontAwesomeConfig","attr","coerce","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","hooks","shims","namespace","doScroll","readyState","listener","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","callback","invokeCallback","subscriber","owner","settled","_state","_data","handleThenable","resolved","fulfill","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","results","remaining","race","meaninglessTransform","rotate","flipX","flipY","nextUniqueId","random","htmlEscape","joinStyles","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","fillBlack","abstract","force","initialValue","thisContext","bindInternal4","defineIcons","icons","_params$skipHooks","skipHooks","normalized","iconName","icon","addPack","build","ligatures","ligature","hasRegular","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","joinAttributes","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","asFoundIcon","vectorData","class","cx","cy","Library","definitions","additions","_pullDefinitions","_normalized$key","ensureCss","_cssInserted","innerHTML","headChildren","childNodes","beforeChild","child","insertCss","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","findIconDefinition","iconLookup","_iconLookup$prefix","library","parse","transformString","parseTransformString","iconDefinition","abstractCreator","_params$transform","_params$symbol","symbol","_params$mask","mask","_params$maskId","maskId","_params$title","_params$titleId","titleId","_params$classes","classes","_params$attributes","_params$styles","_params$icons","main","extra","_params$watchable","watchable","isUploadedIcon","widthClass","attrClass","uploadedIconWidthStyle","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","makeInlineSvgAbstract","container","html","maybeIconDefinition","enumerableOnly","symbols","_objectSpread2","excluded","sourceKeys","sourceSymbolKeys","camelize","chr","_excluded$1","normalizeIconArgs","objectWithKey","FontAwesomeIcon","forwardedRef","iconArgs","maskArgs","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","classList","renderedIcon","_console","extraProps","convertCurry","mixins","attrs","pair","startsWith","_extraProps$style","existingStyle","faCheckCircle","faCopy","Generator","_regeneratorDefine2","v","GeneratorFunctionPrototype","_regenerator","_invoke","asyncGeneratorStep","_asyncToGenerator","_next","_throw","clipboardAPI","clipboard","wait","ms","Clipboard","copyToClipboard","onClickHandler","copySuccess","getTargetText","stringifyId","copied","componentDidUpdate","prevProps","wild","htmlContent","_callee","showCopiedIcon","blobHtml","blobText","_context","ClipboardItem","write","writeText","target_id","getElementById","_this2","_callee2","_context2","_this3","_callee3","_context3","html_content","_this$props","copied_children","button_children","DashContext","ConfirmDialog","_update","displayed","shouldTriggerDisplay","cancel_n_clicks","submit_n_clicks","confirm","submit_n_clicks_timestamp","cancel_n_clicks_timestamp","ConfirmDialogProvider","wrapClick","extract","parsed","storedValue","RealDatePickerRange","datePickerRange","DatePickerRange","_ref$calendar_orienta","calendar_orientation","_ref$is_RTL","is_RTL","_ref$day_size","day_size","_ref$with_portal","with_portal","_ref$with_full_screen","with_full_screen_portal","_ref$first_day_of_wee","first_day_of_week","_ref$number_of_months","number_of_months_shown","_ref$stay_open_on_sel","stay_open_on_select","_ref$reopen_calendar_","reopen_calendar_on_clear","_ref$show_outside_day","show_outside_days","_ref$updatemode","updatemode","_ref$disabled_days","start_date","end_date","disabled_days","persistenceTransforms","transformDate","RealDatePickerSingle","datePickerSingle","DatePickerSingle","_ref$placeholder","placeholder","getValue","Download","toByteArray","blob","Geolocation","success","updatePosition","update_now","geolocation","positionOptions","enableHighAccuracy","high_accuracy","maximumAge","maximum_age","getCurrentPosition","_crd$latitude","_crd$longitude","_crd$accuracy","_crd$altitude","_crd$altitudeAccuracy","_crd$speed","_crd$heading","crd","coords","position_obj","lat","latitude","lon","longitude","accuracy","alt","altitude","alt_accuracy","altitudeAccuracy","speed","heading","local_date","toLocaleString","position_error","show_alert","alert","Interval","intervalId","reportInterval","handleTimer","max_intervals","n_intervals","clearTimer","setInterval","interval","resetTimer","clearInterval","pairs","XAny","_xany","DebugTitle","spinnerComponentOptions","graph","debugTitle","fullscreen","debug","spinnerClass","cube","color","circle","dot","coveringSpinner","visibility","top","display","justifyContent","alignItems","targetComponents","_ref3$display","_ref3$color","parent_className","parent_style","overlay_style","_ref3$show_initially","show_initially","_ref3$type","spinnerType","_ref3$delay_hide","delay_hide","_ref3$delay_show","delay_show","target_components","custom_spinner","useSelector","stringPath","loadingChildren","toPairs","load","showSpinner","setShowSpinner","dismissTimer","showTimer","containerStyle","Spinner","getSpinner","Location","updateLocation","onLocationChange","pathname","propsToSet","checkExistsUpdateWindowLocation","fieldName","propVal","pathnameUpdated","hrefUpdated","hashUpdated","searchUpdated","searchVal","hashVal","propsToChange","History","dispatchChangeEvent","RadioItems","RealRangeSlider","rangeSlider","RangeSlider","_ref$verticalHeight","verticalHeight","_ref$allow_direct_inp","allow_direct_input","isInteger","RealSlider","Slider","drag_value","mappedValue","mappedDragValue","mappedSetProps","newProps","mappedProps","MemStore","_modified","getItem","setItem","setModified","removeItem","getModified","WebStore","storage","_storage","Store","storage_type","_backstore","localStorage","sessionStorage","onStorageChange","oldValue","modified_timestamp","UNSAFE_componentWillMount","_this$props2","old","_this$props3","clear_data","disabled_style","EnhancedTab","selected_className","selected_style","selectHandler","_ref$disabled_style","disabled_className","labelDisplay","rawPath","tabStyle","tabClassNames","Tabs","EnhancedTabs","selectedTab","_ref2$mobile_breakpoi","mobile_breakpoint","_ref2$colors","primary","background","_ref2$vertical","vertical","initializedRef","isAboveBreakpoint","setIsAboveBreakpoint","parseChildrenToArray","valueOrDefault","_firstChildren$value","getLayout","mediaQuery","matchMedia","matches","handler","_childProps$style","childProps","flex","selectedTabContent","tabContainerClassNames","tabContentClassNames","content_className","tabParentClassNames","cssVars","content_style","dashChildrenUpdate","textAreaProps","Textarea","required","autoFocus","_ref$show","show","_ref$targetable","targetable","_ref$direction","_ref$border_color","border_color","_ref$background_color","background_color","_ref$className","_ref$zindex","zindex","_ref$loading_text","loading_text","bbox","show_tooltip","x0","x1","y0","y1","left","pointerEvents"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"dash_core_components.js","mappings":"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","sources":["webpack:///webpack/runtime/create fake namespace object","webpack:///webpack/runtime/load script","webpack:///./node_modules/define-data-property/index.js","webpack:///./node_modules/call-bind-apply-helpers/functionCall.js","webpack:///./node_modules/math-intrinsics/round.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./src/components/css/checklist.css","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///./node_modules/has-property-descriptors/index.js","webpack:///./node_modules/es-define-property/index.js","webpack:///./node_modules/date-fns/startOfWeekYear.js","webpack:///./node_modules/date-fns/getWeek.js","webpack:///./node_modules/date-fns/_lib/format/longFormatters.js","webpack:///./node_modules/ramda/es/internal/_isObject.js","webpack:///./node_modules/ramda/es/internal/_dispatchable.js","webpack:///./node_modules/ramda/es/internal/_isTransformer.js","webpack:///./node_modules/call-bind-apply-helpers/functionApply.js","webpack:///./node_modules/get-proto/Object.getPrototypeOf.js","webpack:///./node_modules/ramda/es/internal/_has.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/date-fns/differenceInCalendarDays.js","webpack:///./node_modules/es-errors/eval.js","webpack:///./node_modules/ramda/es/type.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack:///./src/components/css/sliders.css","webpack:///./node_modules/ramda/es/includes.js","webpack:///./node_modules/math-intrinsics/abs.js","webpack:///./node_modules/ramda/es/reject.js","webpack:///./node_modules/ramda/es/internal/_complement.js","webpack:///external window \"React\"","webpack:///./node_modules/ramda/es/isNil.js","webpack:///./node_modules/date-fns/getWeekYear.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/formatDistance.js","webpack:///./node_modules/date-fns/locale/_lib/buildFormatLongFn.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/formatLong.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/formatRelative.js","webpack:///./node_modules/date-fns/locale/_lib/buildLocalizeFn.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/localize.js","webpack:///./node_modules/date-fns/locale/_lib/buildMatchFn.js","webpack:///./node_modules/date-fns/locale/en-US/_lib/match.js","webpack:///./node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","webpack:///./node_modules/date-fns/locale/en-US.js","webpack:///external window \"ReactDOM\"","webpack:///./node_modules/ramda/es/internal/_xfBase.js","webpack:///./src/utils/LazyLoader/upload.js","webpack:///./src/components/Upload.react.js","webpack:///./node_modules/date-fns/_lib/defaultOptions.js","webpack:///./src/utils/_LoadingElement.tsx","webpack:///./node_modules/call-bind-apply-helpers/applyBind.js","webpack:///./node_modules/ramda/es/internal/_curry2.js","webpack:///./node_modules/assert/build/internal/util/comparisons.js","webpack:///./node_modules/is-nan/shim.js","webpack:///./node_modules/ramda/es/keys.js","webpack:///./node_modules/date-fns/constants.js","webpack:///./node_modules/for-each/index.js","webpack:///./src/components/css/radioitems.css","webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js","webpack:///./node_modules/date-fns/startOfISOWeekYear.js","webpack:///./node_modules/date-fns/getISOWeek.js","webpack:///./node_modules/is-nan/implementation.js","webpack:///./node_modules/date-fns/parseISO.js","webpack:///./node_modules/math-intrinsics/sign.js","webpack:///./node_modules/call-bind-apply-helpers/index.js","webpack:///./node_modules/call-bind-apply-helpers/actualApply.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///../src/timer.js","webpack:///../src/domHelpers.js","webpack:///../src/createGridComponent.js","webpack:///../src/createListComponent.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///../src/VariableSizeList.js","webpack:///./src/components/css/optionslist.css?1ebf","webpack:///./src/utils/optionRendering.tsx","webpack:///./src/utils/optionTypes.ts","webpack:///./node_modules/ramda/es/internal/_curry1.js","webpack:///./node_modules/date-fns/constructFrom.js","webpack:///./node_modules/get-proto/index.js","webpack:///./node_modules/ramda/es/internal/_isFunction.js","webpack:///./node_modules/assert/build/internal/assert/assertion_error.js","webpack:///./src/types.ts","webpack:///./src/components/css/button.css","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/is-nan/index.js","webpack:///./node_modules/assert/build/assert.js","webpack:///./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack:///./node_modules/ramda/es/internal/_includesWith.js","webpack:///./node_modules/ramda/es/internal/_objectIs.js","webpack:///./node_modules/ramda/es/internal/_equals.js","webpack:///./node_modules/ramda/es/internal/_functionName.js","webpack:///./node_modules/ramda/es/equals.js","webpack:///./src/fragments/Graph.privateprops.js","webpack:///./src/components/Graph.react.js","webpack:///./src/utils/LazyLoader/graph.js","webpack:///./src/utils/LazyLoader/plotly.js","webpack:///./node_modules/file-saver/dist/FileSaver.min.js","webpack:///./node_modules/@plotly/dash-component-plugins/dist/index.js","webpack:///./node_modules/math-intrinsics/isNaN.js","webpack:///./node_modules/ramda/es/internal/_isArguments.js","webpack:///./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./node_modules/date-fns/startOfDay.js","webpack:///./node_modules/date-fns/_lib/protectedTokens.js","webpack:///./node_modules/es-errors/uri.js","webpack:///./node_modules/ramda/es/internal/_isArray.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/ramda/es/omit.js","webpack:///./node_modules/is-typed-array/index.js","webpack:///./node_modules/which-typed-array/index.js","webpack:///./node_modules/gopd/index.js","webpack:///./node_modules/math-intrinsics/pow.js","webpack:///./src/components/css/tooltip.css","webpack:///./node_modules/date-fns/startOfISOWeek.js","webpack:///external window \"PropTypes\"","webpack:///./node_modules/date-fns/_lib/normalizeDates.js","webpack:///./node_modules/ramda/es/internal/_includes.js","webpack:///./node_modules/ramda/es/internal/_indexOf.js","webpack:///./node_modules/math-intrinsics/max.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/date-fns/startOfWeek.js","webpack:///./node_modules/gopd/gOPD.js","webpack:///./node_modules/call-bound/index.js","webpack:///./node_modules/object-is/shim.js","webpack:///./node_modules/possible-typed-array-names/index.js","webpack:///./node_modules/is-nan/polyfill.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/console-browserify/index.js","webpack:///./node_modules/ramda/es/internal/_Set.js","webpack:///./node_modules/ramda/es/without.js","webpack:///./src/components/css/input.css?ceae","webpack:///./src/components/Input.tsx","webpack:///./src/utils/LoadingElement.js","webpack:///./node_modules/is-string-blank/index.js","webpack:///./node_modules/set-function-length/index.js","webpack:///./src/components/css/optionslist.css","webpack:///./node_modules/call-bind-apply-helpers/reflectApply.js","webpack:///./src/components/css/dcc.css","webpack:///./node_modules/dunder-proto/get.js","webpack:///./node_modules/is-arguments/index.js","webpack:///./node_modules/date-fns/toDate.js","webpack:///./src/components/css/input.css","webpack:///./node_modules/fast-isnumeric/index.js","webpack:///./node_modules/date-fns/isDate.js","webpack:///./node_modules/date-fns/isValid.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ramda/es/internal/_map.js","webpack:///./node_modules/ramda/es/internal/_quote.js","webpack:///./node_modules/ramda/es/internal/_toISOString.js","webpack:///./node_modules/ramda/es/internal/_toString.js","webpack:///./node_modules/ramda/es/toString.js","webpack:///./node_modules/object-is/index.js","webpack:///./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///./node_modules/ramda/es/concat.js","webpack:///./node_modules/math-intrinsics/min.js","webpack:///./src/components/Link.react.js","webpack:///./node_modules/es-errors/syntax.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/date-fns/getISOWeekYear.js","webpack:///./src/utils/LazyLoader/mathjax.js","webpack:///./node_modules/is-generator-function/index.js","webpack:///./node_modules/ramda/es/internal/_isString.js","webpack:///./src/utils/LazyLoader/dropdown.ts","webpack:///./src/components/Dropdown.tsx","webpack:///./node_modules/ramda/es/append.js","webpack:///./node_modules/ramda/es/internal/_concat.js","webpack:///./src/components/css/tabs.css","webpack:///./node_modules/object.assign/implementation.js","webpack:///./node_modules/define-properties/index.js","webpack:///./node_modules/ramda/es/pick.js","webpack:///./node_modules/get-proto/Reflect.getPrototypeOf.js","webpack:///./node_modules/ramda/es/hasPath.js","webpack:///./node_modules/ramda/es/has.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/ramda/es/internal/_xfilter.js","webpack:///./node_modules/ramda/es/filter.js","webpack:///./node_modules/ramda/es/internal/_arrayReduce.js","webpack:///./node_modules/ramda/es/internal/_filter.js","webpack:///./node_modules/math-intrinsics/floor.js","webpack:///./node_modules/util/support/types.js","webpack:///./node_modules/has-tostringtag/shams.js","webpack:///./node_modules/object.assign/polyfill.js","webpack:///./node_modules/available-typed-arrays/index.js","webpack:///./node_modules/object-is/implementation.js","webpack:///./node_modules/date-fns/getDayOfYear.js","webpack:///./node_modules/date-fns/startOfYear.js","webpack:///./node_modules/date-fns/_lib/addLeadingZeros.js","webpack:///./node_modules/date-fns/_lib/format/lightFormatters.js","webpack:///./node_modules/date-fns/_lib/format/formatters.js","webpack:///./node_modules/date-fns/format.js","webpack:///./node_modules/es-errors/range.js","webpack:///./src/components/css/textarea.css","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/es-errors/index.js","webpack:///./node_modules/object-is/polyfill.js","webpack:///./node_modules/es-errors/ref.js","webpack:///./node_modules/assert/build/internal/errors.js","webpack:///./node_modules/is-callable/index.js","webpack:///./node_modules/es-object-atoms/index.js","webpack:///./src/components/Markdown.react.js","webpack:///./src/utils/LazyLoader/markdown.js","webpack:///./node_modules/es-errors/type.js","webpack:///./node_modules/uniqid/index.js","webpack:///./node_modules/hasown/index.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/compat","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce","webpack:///./src/components/css/button.css?4110","webpack:///./src/components/Button.tsx","webpack:///./src/components/css/checklist.css?4b9a","webpack:///./src/components/Checklist.tsx","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack:///./node_modules/@fortawesome/free-regular-svg-icons/index.es.js","webpack:///./src/components/Clipboard.react.js","webpack:///./src/components/ConfirmDialog.react.js","webpack:///./src/components/ConfirmDialogProvider.react.js","webpack:///./src/utils/LazyLoader/datePickerRange.ts","webpack:///./src/utils/DatePickerPersistence.ts","webpack:///./src/components/DatePickerRange.tsx","webpack:///./src/utils/LazyLoader/datePickerSingle.ts","webpack:///./src/components/DatePickerSingle.tsx","webpack:///./src/components/Download.react.js","webpack:///./src/components/Geolocation.react.js","webpack:///./src/components/Interval.react.js","webpack:///./node_modules/ramda/es/toPairs.js","webpack:///./node_modules/ramda/es/internal/_xany.js","webpack:///./node_modules/ramda/es/internal/_reduced.js","webpack:///./node_modules/ramda/es/any.js","webpack:///./src/fragments/Loading/spinners/DebugTitle.tsx","webpack:///./src/components/Loading.tsx","webpack:///./src/fragments/Loading/spinners/GraphSpinner.tsx","webpack:///./src/fragments/Loading/spinners/CubeSpinner.tsx","webpack:///./src/fragments/Loading/spinners/CircleSpinner.tsx","webpack:///./src/fragments/Loading/spinners/DotSpinner.tsx","webpack:///./src/fragments/Loading/spinners/DefaultSpinner.tsx","webpack:///./src/components/Location.react.js","webpack:///./src/components/css/radioitems.css?af42","webpack:///./src/components/RadioItems.tsx","webpack:///./src/utils/LazyLoader/rangeSlider.ts","webpack:///./src/components/css/sliders.css?9e50","webpack:///./src/components/RangeSlider.tsx","webpack:///./src/components/Slider.tsx","webpack:///./src/components/Store.react.js","webpack:///./src/components/css/tabs.css?ebc8","webpack:///./src/components/Tab.tsx","webpack:///./src/components/Tabs.tsx","webpack:///./src/components/css/textarea.css?4273","webpack:///./src/components/Textarea.tsx","webpack:///./src/components/css/tooltip.css?1c92","webpack:///./src/components/Tooltip.tsx","webpack:///./src/components/css/dcc.css?95b0"],"sourcesContent":["var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"dash_core_components:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".dash-options-list-option.dash-checklist-inline {\\n display: inline-flex;\\n margin-right: calc(var(--Dash-Spacing) * 4);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/css/checklist.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,oBAAoB;IACpB,2CAA2C;AAC/C\",\"sourcesContent\":[\".dash-options-list-option.dash-checklist-inline {\\n display: inline-flex;\\n margin-right: calc(var(--Dash-Spacing) * 4);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer created by [transducerCreator] to return a new transformer\n * (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} transducerCreator transducer factory if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\nexport default function _dispatchable(methodNames, transducerCreator, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var obj = arguments[arguments.length - 1];\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, Array.prototype.slice.call(arguments, 0, -1));\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = transducerCreator.apply(null, Array.prototype.slice.call(arguments, 0, -1));\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig * -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(async () => {}); //=> \"AsyncFunction\"\n * R.type(undefined); //=> \"Undefined\"\n * R.type(BigInt(123)); //=> \"BigInt\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".dash-slider-root {\\n position: relative;\\n z-index: 0;\\n display: flex;\\n align-items: center;\\n user-select: none;\\n touch-action: none;\\n width: 100%;\\n height: 14px;\\n padding: 17px 0 17px 0;\\n box-sizing: border-box;\\n /* Override Radix's default margin/padding behavior */\\n --radix-slider-thumb-width: 16px;\\n}\\n\\n.dash-slider-root.has-marks {\\n padding: 6px 0 28px 0;\\n}\\n\\n.dash-slider-root[data-orientation='vertical'].has-marks {\\n padding-bottom: 0px;\\n}\\n\\n.dash-slider-root[data-orientation='vertical'] {\\n flex-direction: column;\\n width: 20px;\\n height: 100%;\\n}\\n\\n.dash-slider-track {\\n position: relative;\\n flex-grow: 1;\\n border-radius: 9999px;\\n height: 4px;\\n background-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-root[data-orientation='vertical'] .dash-slider-track {\\n width: 4px;\\n height: auto;\\n overflow-y: hidden;\\n}\\n\\n.dash-slider-range {\\n position: absolute;\\n border-radius: 9999px;\\n height: 100%;\\n background-color: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-slider-root[data-orientation='vertical'] .dash-slider-range {\\n width: 100%;\\n height: auto;\\n}\\n\\n.dash-slider-thumb {\\n position: relative;\\n z-index: 1;\\n display: block;\\n width: 16px;\\n height: 16px;\\n background-color: var(--Dash-Fill-Interactive-Strong);\\n border: 2px solid var(--Dash-Fill-Inverse-Strong);\\n border-radius: 50%;\\n box-shadow: 0 1px 3px 0 var(--Dash-Shading-Weak);\\n cursor: pointer;\\n outline: none;\\n transition: all 0.15s ease-in-out;\\n}\\n\\n.dash-slider-thumb:focus,\\n.dash-slider-thumb:hover {\\n transform: scale(1.125); /* Scale to make 16px thumb appear as 18px */\\n box-shadow: 0 4px 6px -1px var(--Dash-Shading-Weak);\\n}\\n\\n.dash-slider-thumb:focus {\\n outline: 2px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-slider-thumb:focus .dash-slider-tooltip,\\n.dash-slider-thumb:hover .dash-slider-tooltip {\\n display: block;\\n}\\n\\n.dash-slider-thumb[data-disabled],\\n.dash-range-slider-input:disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n}\\n\\n.dash-slider-mark {\\n position: absolute;\\n font-size: 12px;\\n line-height: 12px;\\n color: var(--Dash-Text-Strong);\\n white-space: nowrap;\\n pointer-events: none;\\n}\\n\\n.dash-slider-mark-outside-selection {\\n color: var(--Dash-Text-Disabled);\\n}\\n\\n.dash-slider-mark:before {\\n content: '';\\n position: absolute;\\n bottom: 100%;\\n left: 50%;\\n transform: translateX(-50%);\\n background-color: var(--Dash-Fill-Disabled);\\n width: 4px;\\n height: 6px;\\n border-radius: 2px;\\n margin-bottom: 2px;\\n}\\n.dash-slider-mark.with-dots:before {\\n content: initial;\\n}\\n\\n.dash-slider-root[data-orientation='vertical'] .dash-slider-mark:before {\\n content: initial;\\n}\\n\\n.dash-slider-dot {\\n pointer-events: none;\\n position: absolute;\\n width: 8px;\\n height: 8px;\\n border-radius: 50%;\\n background-color: var(--Dash-Fill-Primary-Active);\\n}\\n\\n.dash-slider-dot-outside-selection {\\n background-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-tooltip {\\n display: none;\\n position: absolute;\\n border-radius: var(--Dash-Spacing);\\n padding: calc(var(--Dash-Spacing) * 3);\\n font-size: 12px;\\n line-height: 1;\\n box-shadow: 0 0 8px var(--Dash-Shading-Strong);\\n background-color: var(--Dash-Fill-Inverse-Strong);\\n user-select: none;\\n z-index: 1000;\\n fill: var(--Dash-Fill-Inverse-Strong);\\n}\\n\\n.dash-slider-tooltip.always-visible {\\n display: block;\\n}\\n\\n/* Include property to mimic rc-slider behavior */\\n.dash-slider-root:not([data-included='false']) .dash-slider-range {\\n background-color: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-slider-root[data-included='false'] .dash-slider-range {\\n background-color: transparent;\\n}\\n\\n/* Disabled state */\\n.dash-slider-root[data-disabled] {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.dash-slider-root[data-disabled] .dash-slider-track {\\n background-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-root[data-disabled] .dash-slider-range {\\n background-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-root[data-disabled] .dash-slider-thumb {\\n cursor: not-allowed;\\n border-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-container {\\n display: flex;\\n align-items: center;\\n gap: 16px;\\n width: 100%;\\n container-type: inline-size;\\n}\\n\\n.dash-slider-wrapper {\\n flex: 1;\\n min-width: 0;\\n}\\n\\n.dash-range-slider-inputs {\\n display: flex;\\n flex-direction: column;\\n gap: 4px;\\n min-width: 64px;\\n}\\n\\n.dash-range-slider-min-input {\\n text-align: center;\\n}\\n\\n.dash-range-slider-max-input {\\n order: 1;\\n}\\n\\n.dash-range-slider-input {\\n min-width: 5cqw; /* 5% of container width */\\n max-width: 25cqw; /* 25% of container width */\\n text-align: center;\\n -webkit-appearance: textfield;\\n -moz-appearance: textfield;\\n appearance: textfield;\\n font-family: inherit;\\n font-size: inherit;\\n box-sizing: content-box;\\n height: 30px;\\n}\\n\\n.dash-range-slider-input:only-of-type {\\n max-width: 33cqw;\\n}\\n\\n.dash-range-slider-input::selection,\\n.dash-range-slider-input::-webkit-selection {\\n color: var(--Dash-Fill-Inverse-Strong);\\n background: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-range-slider-input:focus {\\n outline: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n/* Hide the number input spinners */\\n.dash-range-slider-input::-webkit-inner-spin-button,\\n.dash-range-slider-input::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\n/* Hide inputs on small containers using container queries */\\n/* single slider input */\\n@container (max-width: 200px) {\\n .dash-slider-container .dash-range-slider-input:only-of-type {\\n display: none;\\n }\\n}\\n\\n/* range slider inputs */\\n@container (max-width: 300px) {\\n .dash-slider-container .dash-range-slider-min-input,\\n .dash-slider-container .dash-range-slider-max-input {\\n display: none;\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/css/sliders.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".dash-slider-root {\\n position: relative;\\n z-index: 0;\\n display: flex;\\n align-items: center;\\n user-select: none;\\n touch-action: none;\\n width: 100%;\\n height: 14px;\\n padding: 17px 0 17px 0;\\n box-sizing: border-box;\\n /* Override Radix's default margin/padding behavior */\\n --radix-slider-thumb-width: 16px;\\n}\\n\\n.dash-slider-root.has-marks {\\n padding: 6px 0 28px 0;\\n}\\n\\n.dash-slider-root[data-orientation='vertical'].has-marks {\\n padding-bottom: 0px;\\n}\\n\\n.dash-slider-root[data-orientation='vertical'] {\\n flex-direction: column;\\n width: 20px;\\n height: 100%;\\n}\\n\\n.dash-slider-track {\\n position: relative;\\n flex-grow: 1;\\n border-radius: 9999px;\\n height: 4px;\\n background-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-root[data-orientation='vertical'] .dash-slider-track {\\n width: 4px;\\n height: auto;\\n overflow-y: hidden;\\n}\\n\\n.dash-slider-range {\\n position: absolute;\\n border-radius: 9999px;\\n height: 100%;\\n background-color: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-slider-root[data-orientation='vertical'] .dash-slider-range {\\n width: 100%;\\n height: auto;\\n}\\n\\n.dash-slider-thumb {\\n position: relative;\\n z-index: 1;\\n display: block;\\n width: 16px;\\n height: 16px;\\n background-color: var(--Dash-Fill-Interactive-Strong);\\n border: 2px solid var(--Dash-Fill-Inverse-Strong);\\n border-radius: 50%;\\n box-shadow: 0 1px 3px 0 var(--Dash-Shading-Weak);\\n cursor: pointer;\\n outline: none;\\n transition: all 0.15s ease-in-out;\\n}\\n\\n.dash-slider-thumb:focus,\\n.dash-slider-thumb:hover {\\n transform: scale(1.125); /* Scale to make 16px thumb appear as 18px */\\n box-shadow: 0 4px 6px -1px var(--Dash-Shading-Weak);\\n}\\n\\n.dash-slider-thumb:focus {\\n outline: 2px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-slider-thumb:focus .dash-slider-tooltip,\\n.dash-slider-thumb:hover .dash-slider-tooltip {\\n display: block;\\n}\\n\\n.dash-slider-thumb[data-disabled],\\n.dash-range-slider-input:disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n}\\n\\n.dash-slider-mark {\\n position: absolute;\\n font-size: 12px;\\n line-height: 12px;\\n color: var(--Dash-Text-Strong);\\n white-space: nowrap;\\n pointer-events: none;\\n}\\n\\n.dash-slider-mark-outside-selection {\\n color: var(--Dash-Text-Disabled);\\n}\\n\\n.dash-slider-mark:before {\\n content: '';\\n position: absolute;\\n bottom: 100%;\\n left: 50%;\\n transform: translateX(-50%);\\n background-color: var(--Dash-Fill-Disabled);\\n width: 4px;\\n height: 6px;\\n border-radius: 2px;\\n margin-bottom: 2px;\\n}\\n.dash-slider-mark.with-dots:before {\\n content: initial;\\n}\\n\\n.dash-slider-root[data-orientation='vertical'] .dash-slider-mark:before {\\n content: initial;\\n}\\n\\n.dash-slider-dot {\\n pointer-events: none;\\n position: absolute;\\n width: 8px;\\n height: 8px;\\n border-radius: 50%;\\n background-color: var(--Dash-Fill-Primary-Active);\\n}\\n\\n.dash-slider-dot-outside-selection {\\n background-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-tooltip {\\n display: none;\\n position: absolute;\\n border-radius: var(--Dash-Spacing);\\n padding: calc(var(--Dash-Spacing) * 3);\\n font-size: 12px;\\n line-height: 1;\\n box-shadow: 0 0 8px var(--Dash-Shading-Strong);\\n background-color: var(--Dash-Fill-Inverse-Strong);\\n user-select: none;\\n z-index: 1000;\\n fill: var(--Dash-Fill-Inverse-Strong);\\n}\\n\\n.dash-slider-tooltip.always-visible {\\n display: block;\\n}\\n\\n/* Include property to mimic rc-slider behavior */\\n.dash-slider-root:not([data-included='false']) .dash-slider-range {\\n background-color: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-slider-root[data-included='false'] .dash-slider-range {\\n background-color: transparent;\\n}\\n\\n/* Disabled state */\\n.dash-slider-root[data-disabled] {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.dash-slider-root[data-disabled] .dash-slider-track {\\n background-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-root[data-disabled] .dash-slider-range {\\n background-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-root[data-disabled] .dash-slider-thumb {\\n cursor: not-allowed;\\n border-color: var(--Dash-Fill-Disabled);\\n}\\n\\n.dash-slider-container {\\n display: flex;\\n align-items: center;\\n gap: 16px;\\n width: 100%;\\n container-type: inline-size;\\n}\\n\\n.dash-slider-wrapper {\\n flex: 1;\\n min-width: 0;\\n}\\n\\n.dash-range-slider-inputs {\\n display: flex;\\n flex-direction: column;\\n gap: 4px;\\n min-width: 64px;\\n}\\n\\n.dash-range-slider-min-input {\\n text-align: center;\\n}\\n\\n.dash-range-slider-max-input {\\n order: 1;\\n}\\n\\n.dash-range-slider-input {\\n min-width: 5cqw; /* 5% of container width */\\n max-width: 25cqw; /* 25% of container width */\\n text-align: center;\\n -webkit-appearance: textfield;\\n -moz-appearance: textfield;\\n appearance: textfield;\\n font-family: inherit;\\n font-size: inherit;\\n box-sizing: content-box;\\n height: 30px;\\n}\\n\\n.dash-range-slider-input:only-of-type {\\n max-width: 33cqw;\\n}\\n\\n.dash-range-slider-input::selection,\\n.dash-range-slider-input::-webkit-selection {\\n color: var(--Dash-Fill-Inverse-Strong);\\n background: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-range-slider-input:focus {\\n outline: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n/* Hide the number input spinners */\\n.dash-range-slider-input::-webkit-inner-spin-button,\\n.dash-range-slider-input::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\n/* Hide inputs on small containers using container queries */\\n/* single slider input */\\n@container (max-width: 200px) {\\n .dash-slider-container .dash-range-slider-input:only-of-type {\\n display: none;\\n }\\n}\\n\\n/* range slider inputs */\\n@container (max-width: 300px) {\\n .dash-slider-container .dash-range-slider-min-input,\\n .dash-slider-container .dash-range-slider-max-input {\\n display: none;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Also works with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\nvar includes = /*#__PURE__*/_curry2(_includes);\nexport default includes;","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 !== 0;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nvar reject = /*#__PURE__*/_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\nexport default reject;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","module.exports = window[\"React\"];","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\nvar isNil = /*#__PURE__*/_curry1(function isNil(x) {\n return x == null;\n});\nexport default isNil;","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","module.exports = window[\"ReactDOM\"];","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","export default () => import(/* webpackChunkName: \"upload\" */ '../../fragments/Upload.react');\n","import PropTypes from 'prop-types';\nimport React, {Component, lazy, Suspense} from 'react';\nimport upload from '../utils/LazyLoader/upload';\n\nconst RealUpload = lazy(upload);\n\n/**\n * Upload components allow your app to accept user-uploaded files via drag'n'drop\n */\nexport default class Upload extends Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nUpload.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string,\n\n /**\n * The contents of the uploaded file as a binary string\n */\n contents: PropTypes.oneOfType([\n /**\n * If `multiple` is `false`, then the contents will be a string\n */\n PropTypes.string,\n\n /**\n * If `multiple` is `true`, then the contents will be a list of strings\n */\n PropTypes.arrayOf(PropTypes.string),\n ]),\n\n /**\n * The name of the file(s) that was(were) uploaded.\n * Note that this does not include the path of the file\n * (for security reasons).\n */\n filename: PropTypes.oneOfType([\n /**\n * If `multiple` is `false`, then the contents will be a string\n */\n PropTypes.string,\n\n /**\n * If `multiple` is `true`, then the contents will be a list of strings\n */\n PropTypes.arrayOf(PropTypes.string),\n ]),\n\n /**\n * The last modified date of the file that was uploaded in unix time\n * (seconds since 1970).\n */\n last_modified: PropTypes.oneOfType([\n /**\n * If `multiple` is `false`, then the contents will be a number\n */\n PropTypes.number,\n\n /**\n * If `multiple` is `true`, then the contents will be a list of numbers\n */\n PropTypes.arrayOf(PropTypes.number),\n ]),\n\n /**\n * Contents of the upload component\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n\n /**\n * Allow specific types of files.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across\n * platforms. CSV files, for example, are reported as text/plain\n * under macOS but as application/vnd.ms-excel under Windows.\n * In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.string,\n\n /**\n * Enable/disable the upload component entirely\n */\n disabled: PropTypes.bool,\n\n /**\n * Disallow clicking on the component to open the file dialog\n */\n disable_click: PropTypes.bool,\n\n /**\n * Maximum file size in bytes. If `-1`, then infinite\n */\n max_size: PropTypes.number,\n\n /**\n * Minimum file size in bytes\n */\n min_size: PropTypes.number,\n\n /**\n * Allow dropping multiple files.\n * When true, enables folder drag-and-drop support.\n * The folder hierarchy is preserved in filenames (e.g., 'folder/subfolder/file.txt').\n * Note: Folder drag-and-drop is supported in Chrome, Edge, and Opera.\n */\n multiple: PropTypes.bool,\n\n /**\n * Enable folder selection in the file picker dialog.\n * When true with multiple=True, the file picker allows selecting folders instead of files.\n * Note: When folder selection is enabled, individual files cannot be selected via the button.\n * Use separate Upload components if you need both file and folder selection options.\n * Folder selection is supported in Chrome, Edge, and Opera.\n */\n enable_folder_selection: PropTypes.bool,\n\n /**\n * HTML class name of the component\n */\n className: PropTypes.string,\n\n /**\n * HTML class name of the component while active\n */\n className_active: PropTypes.string,\n\n /**\n * HTML class name of the component if rejected\n */\n className_reject: PropTypes.string,\n\n /**\n * HTML class name of the component if disabled\n */\n className_disabled: PropTypes.string,\n\n /**\n * CSS styles to apply\n */\n style: PropTypes.object,\n\n /**\n * CSS styles to apply while active\n */\n style_active: PropTypes.object,\n\n /**\n * CSS styles if rejected\n */\n style_reject: PropTypes.object,\n\n /**\n * CSS styles if disabled\n */\n style_disabled: PropTypes.object,\n\n /**\n * Dash-supplied function for updating props\n */\n setProps: PropTypes.func,\n};\n\nUpload.defaultProps = {\n disabled: false,\n disable_click: false,\n max_size: -1,\n min_size: 0,\n multiple: false,\n enable_folder_selection: false,\n style: {},\n style_active: {\n borderStyle: 'solid',\n borderColor: '#6c6',\n backgroundColor: '#eee',\n },\n style_disabled: {\n opacity: 0.5,\n },\n style_reject: {\n borderStyle: 'solid',\n borderColor: '#c66',\n backgroundColor: '#eee',\n },\n};\n\nexport const propTypes = Upload.propTypes;\nexport const defaultProps = Upload.defaultProps;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import React from 'react';\n\ninterface LoadingElementProps {\n children: (props: Record) => React.ReactElement;\n}\n\n/**\n * The loading element is used to add `data-dash-is-loading` attribute\n * on html elements. This is used to customize CSS when a component is\n * loading.\n *\n * See: https://dash.plotly.com/loading-states#check-loading-states-from-components\n */\nfunction LoadingElement({children}: LoadingElementProps) {\n const ctx = window.dash_component_api.useDashContext();\n const loading = ctx.useLoading();\n\n const additionalProps: Record = {};\n if (loading) {\n additionalProps['data-dash-is-loading'] = true;\n }\n\n return children(additionalProps);\n}\n\nexport default LoadingElement;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar regexFlagsSupported = /a/g.flags !== undefined;\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n // The maximum size for an array is 2 ** 32 -1.\n return key.length === 10 && key >= Math.pow(2, 32);\n}\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n}\n\n// Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3;\n\n// Check if they have the same source and flags\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n}\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n}\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n\n // The pair must have the same number of owned properties.\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n\n // Use memos to handle cycles.\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n return false;\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n case 'object':\n // Only pass in null as object!\n return undefined;\n case 'symbol':\n return false;\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n}\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n }\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n}\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n _key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n if (_typeof(_key) === 'object' && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n}\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (isArray(list)) {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".dash-options-list-option.dash-radioitems-inline {\\n display: inline-flex;\\n margin-right: calc(var(--Dash-Spacing) * 4);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/css/radioitems.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,oBAAoB;IACpB,2CAA2C;AAC/C\",\"sourcesContent\":[\".dash-options-list-option.dash-radioitems-inline {\\n display: inline-flex;\\n margin-right: calc(var(--Dash-Spacing) * 4);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n} from \"./constants.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n const invalidDate = () => constructFrom(options?.in, NaN);\n\n const additionalDigits = options?.additionalDigits ?? 2;\n const dateStrings = splitDateString(argument);\n\n let date;\n if (dateStrings.date) {\n const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(+date)) return invalidDate();\n\n const timestamp = +date;\n let time = 0;\n let offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) return invalidDate();\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) return invalidDate();\n } else {\n const tmpDate = new Date(timestamp + time);\n const result = toDate(0, options?.in);\n result.setFullYear(\n tmpDate.getUTCFullYear(),\n tmpDate.getUTCMonth(),\n tmpDate.getUTCDate(),\n );\n result.setHours(\n tmpDate.getUTCHours(),\n tmpDate.getUTCMinutes(),\n tmpDate.getUTCSeconds(),\n tmpDate.getUTCMilliseconds(),\n );\n return result;\n }\n\n return toDate(timestamp + time + offset, options?.in);\n}\n\nconst patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n const dateStrings = {};\n const array = dateString.split(patterns.dateTimeDelimiter);\n let timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(\n dateStrings.date.length,\n dateString.length,\n );\n }\n }\n\n if (timeString) {\n const token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], \"\");\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n const regex = new RegExp(\n \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n (4 + additionalDigits) +\n \"})|(\\\\d{2}|[+-]\\\\d{\" +\n (2 + additionalDigits) +\n \"})$)\",\n );\n\n const captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return { year: NaN, restDateString: \"\" };\n\n const year = captures[1] ? parseInt(captures[1]) : null;\n const century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length),\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n\n const captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n\n const isWeekDate = !!captures[4];\n const dayOfYear = parseDateUnit(captures[1]);\n const month = parseDateUnit(captures[2]) - 1;\n const day = parseDateUnit(captures[3]);\n const week = parseDateUnit(captures[4]);\n const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n const date = new Date(0);\n if (\n !validateDate(year, month, day) ||\n !validateDayOfYearDate(year, dayOfYear)\n ) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n const captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n const hours = parseTimeUnit(captures[1]);\n const minutes = parseTimeUnit(captures[2]);\n const seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return (\n hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n );\n}\n\nfunction parseTimeUnit(value) {\n return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === \"Z\") return 0;\n\n const captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n\n const sign = captures[1] === \"+\" ? -1 : 1;\n const hours = parseInt(captures[2]);\n const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n return (\n month >= 0 &&\n month <= 11 &&\n date >= 1 &&\n date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return (\n seconds >= 0 &&\n seconds < 60 &&\n minutes >= 0 &&\n minutes < 60 &&\n hours >= 0 &&\n hours < 25\n );\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","// @flow\n\n// Animation frame based implementation of setTimeout.\n// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js\n\nconst hasNativePerformanceNow =\n typeof performance === 'object' && typeof performance.now === 'function';\n\nconst now = hasNativePerformanceNow\n ? () => performance.now()\n : () => Date.now();\n\nexport type TimeoutID = {|\n id: AnimationFrameID,\n|};\n\nexport function cancelTimeout(timeoutID: TimeoutID) {\n cancelAnimationFrame(timeoutID.id);\n}\n\nexport function requestTimeout(callback: Function, delay: number): TimeoutID {\n const start = now();\n\n function tick() {\n if (now() - start >= delay) {\n callback.call(null);\n } else {\n timeoutID.id = requestAnimationFrame(tick);\n }\n }\n\n const timeoutID: TimeoutID = {\n id: requestAnimationFrame(tick),\n };\n\n return timeoutID;\n}\n","// @flow\n\nlet size: number = -1;\n\n// This utility copied from \"dom-helpers\" package.\nexport function getScrollbarSize(recalculate?: boolean = false): number {\n if (size === -1 || recalculate) {\n const div = document.createElement('div');\n const style = div.style;\n style.width = '50px';\n style.height = '50px';\n style.overflow = 'scroll';\n\n ((document.body: any): HTMLBodyElement).appendChild(div);\n\n size = div.offsetWidth - div.clientWidth;\n\n ((document.body: any): HTMLBodyElement).removeChild(div);\n }\n\n return size;\n}\n\nexport type RTLOffsetType =\n | 'negative'\n | 'positive-descending'\n | 'positive-ascending';\n\nlet cachedRTLResult: RTLOffsetType | null = null;\n\n// TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\nexport function getRTLOffsetType(recalculate?: boolean = false): RTLOffsetType {\n if (cachedRTLResult === null || recalculate) {\n const outerDiv = document.createElement('div');\n const outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n\n const innerDiv = document.createElement('div');\n const innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n\n outerDiv.appendChild(innerDiv);\n\n ((document.body: any): HTMLBodyElement).appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n ((document.body: any): HTMLBodyElement).removeChild(outerDiv);\n\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n","// @flow\n\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport { cancelTimeout, requestTimeout } from './timer';\nimport { getScrollbarSize, getRTLOffsetType } from './domHelpers';\n\nimport type { TimeoutID } from './timer';\n\ntype Direction = 'ltr' | 'rtl';\nexport type ScrollToAlign = 'auto' | 'smart' | 'center' | 'start' | 'end';\n\ntype itemSize = number | ((index: number) => number);\n\ntype RenderComponentProps = {|\n columnIndex: number,\n data: T,\n isScrolling?: boolean,\n rowIndex: number,\n style: Object,\n|};\nexport type RenderComponent = React$ComponentType<\n $Shape>\n>;\n\ntype ScrollDirection = 'forward' | 'backward';\n\ntype OnItemsRenderedCallback = ({\n overscanColumnStartIndex: number,\n overscanColumnStopIndex: number,\n overscanRowStartIndex: number,\n overscanRowStopIndex: number,\n visibleColumnStartIndex: number,\n visibleColumnStopIndex: number,\n visibleRowStartIndex: number,\n visibleRowStopIndex: number,\n}) => void;\ntype OnScrollCallback = ({\n horizontalScrollDirection: ScrollDirection,\n scrollLeft: number,\n scrollTop: number,\n scrollUpdateWasRequested: boolean,\n verticalScrollDirection: ScrollDirection,\n}) => void;\n\ntype ScrollEvent = SyntheticEvent;\ntype ItemStyleCache = { [key: string]: Object };\n\ntype OuterProps = {|\n children: React$Node,\n className: string | void,\n onScroll: ScrollEvent => void,\n style: {\n [string]: mixed,\n },\n|};\n\ntype InnerProps = {|\n children: React$Node,\n style: {\n [string]: mixed,\n },\n|};\n\nexport type Props = {|\n children: RenderComponent,\n className?: string,\n columnCount: number,\n columnWidth: itemSize,\n direction: Direction,\n height: number,\n initialScrollLeft?: number,\n initialScrollTop?: number,\n innerRef?: any,\n innerElementType?: string | React$AbstractComponent,\n innerTagName?: string, // deprecated\n itemData: T,\n itemKey?: (params: {|\n columnIndex: number,\n data: T,\n rowIndex: number,\n |}) => any,\n onItemsRendered?: OnItemsRenderedCallback,\n onScroll?: OnScrollCallback,\n outerRef?: any,\n outerElementType?: string | React$AbstractComponent,\n outerTagName?: string, // deprecated\n overscanColumnCount?: number,\n overscanColumnsCount?: number, // deprecated\n overscanCount?: number, // deprecated\n overscanRowCount?: number,\n overscanRowsCount?: number, // deprecated\n rowCount: number,\n rowHeight: itemSize,\n style?: Object,\n useIsScrolling: boolean,\n width: number,\n|};\n\ntype State = {|\n instance: any,\n isScrolling: boolean,\n horizontalScrollDirection: ScrollDirection,\n scrollLeft: number,\n scrollTop: number,\n scrollUpdateWasRequested: boolean,\n verticalScrollDirection: ScrollDirection,\n|};\n\ntype getItemOffset = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype getItemSize = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype getEstimatedTotalSize = (props: Props, instanceProps: any) => number;\ntype GetOffsetForItemAndAlignment = (\n props: Props,\n index: number,\n align: ScrollToAlign,\n scrollOffset: number,\n instanceProps: any,\n scrollbarSize: number\n) => number;\ntype GetStartIndexForOffset = (\n props: Props,\n offset: number,\n instanceProps: any\n) => number;\ntype GetStopIndexForStartIndex = (\n props: Props,\n startIndex: number,\n scrollOffset: number,\n instanceProps: any\n) => number;\ntype InitInstanceProps = (props: Props, instance: any) => any;\ntype ValidateProps = (props: Props) => void;\n\nconst IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nconst defaultItemKey = ({ columnIndex, data, rowIndex }) =>\n `${rowIndex}:${columnIndex}`;\n\n// In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\nlet devWarningsOverscanCount = null;\nlet devWarningsOverscanRowsColumnsCount = null;\nlet devWarningsTagName = null;\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsOverscanCount = new WeakSet();\n devWarningsOverscanRowsColumnsCount = new WeakSet();\n devWarningsTagName = new WeakSet();\n }\n}\n\nexport default function createGridComponent({\n getColumnOffset,\n getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex,\n getColumnWidth,\n getEstimatedTotalHeight,\n getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment,\n getOffsetForRowAndAlignment,\n getRowHeight,\n getRowOffset,\n getRowStartIndexForOffset,\n getRowStopIndexForStartIndex,\n initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange,\n validateProps,\n}: {|\n getColumnOffset: getItemOffset,\n getColumnStartIndexForOffset: GetStartIndexForOffset,\n getColumnStopIndexForStartIndex: GetStopIndexForStartIndex,\n getColumnWidth: getItemSize,\n getEstimatedTotalHeight: getEstimatedTotalSize,\n getEstimatedTotalWidth: getEstimatedTotalSize,\n getOffsetForColumnAndAlignment: GetOffsetForItemAndAlignment,\n getOffsetForRowAndAlignment: GetOffsetForItemAndAlignment,\n getRowOffset: getItemOffset,\n getRowHeight: getItemSize,\n getRowStartIndexForOffset: GetStartIndexForOffset,\n getRowStopIndexForStartIndex: GetStopIndexForStartIndex,\n initInstanceProps: InitInstanceProps,\n shouldResetStyleCacheOnItemSizeChange: boolean,\n validateProps: ValidateProps,\n|}) {\n return class Grid extends PureComponent, State> {\n _instanceProps: any = initInstanceProps(this.props, this);\n _resetIsScrollingTimeoutId: TimeoutID | null = null;\n _outerRef: ?HTMLDivElement;\n\n static defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n useIsScrolling: false,\n };\n\n state: State = {\n instance: this,\n isScrolling: false,\n horizontalScrollDirection: 'forward',\n scrollLeft:\n typeof this.props.initialScrollLeft === 'number'\n ? this.props.initialScrollLeft\n : 0,\n scrollTop:\n typeof this.props.initialScrollTop === 'number'\n ? this.props.initialScrollTop\n : 0,\n scrollUpdateWasRequested: false,\n verticalScrollDirection: 'forward',\n };\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n constructor(props: Props) {\n super(props);\n }\n\n static getDerivedStateFromProps(\n nextProps: Props,\n prevState: State\n ): $Shape | null {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n }\n\n scrollTo({\n scrollLeft,\n scrollTop,\n }: {\n scrollLeft: number,\n scrollTop: number,\n }): void {\n if (scrollLeft !== undefined) {\n scrollLeft = Math.max(0, scrollLeft);\n }\n if (scrollTop !== undefined) {\n scrollTop = Math.max(0, scrollTop);\n }\n\n this.setState(prevState => {\n if (scrollLeft === undefined) {\n scrollLeft = prevState.scrollLeft;\n }\n if (scrollTop === undefined) {\n scrollTop = prevState.scrollTop;\n }\n\n if (\n prevState.scrollLeft === scrollLeft &&\n prevState.scrollTop === scrollTop\n ) {\n return null;\n }\n\n return {\n horizontalScrollDirection:\n prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollUpdateWasRequested: true,\n verticalScrollDirection:\n prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n };\n }, this._resetIsScrollingDebounced);\n }\n\n scrollToItem({\n align = 'auto',\n columnIndex,\n rowIndex,\n }: {\n align: ScrollToAlign,\n columnIndex?: number,\n rowIndex?: number,\n }): void {\n const { columnCount, height, rowCount, width } = this.props;\n const { scrollLeft, scrollTop } = this.state;\n const scrollbarSize = getScrollbarSize();\n\n if (columnIndex !== undefined) {\n columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));\n }\n if (rowIndex !== undefined) {\n rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));\n }\n\n const estimatedTotalHeight = getEstimatedTotalHeight(\n this.props,\n this._instanceProps\n );\n const estimatedTotalWidth = getEstimatedTotalWidth(\n this.props,\n this._instanceProps\n );\n\n // The scrollbar size should be considered when scrolling an item into view,\n // to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n const horizontalScrollbarSize =\n estimatedTotalWidth > width ? scrollbarSize : 0;\n const verticalScrollbarSize =\n estimatedTotalHeight > height ? scrollbarSize : 0;\n\n this.scrollTo({\n scrollLeft:\n columnIndex !== undefined\n ? getOffsetForColumnAndAlignment(\n this.props,\n columnIndex,\n align,\n scrollLeft,\n this._instanceProps,\n verticalScrollbarSize\n )\n : scrollLeft,\n scrollTop:\n rowIndex !== undefined\n ? getOffsetForRowAndAlignment(\n this.props,\n rowIndex,\n align,\n scrollTop,\n this._instanceProps,\n horizontalScrollbarSize\n )\n : scrollTop,\n });\n }\n\n componentDidMount() {\n const { initialScrollLeft, initialScrollTop } = this.props;\n\n if (this._outerRef != null) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n if (typeof initialScrollLeft === 'number') {\n outerRef.scrollLeft = initialScrollLeft;\n }\n if (typeof initialScrollTop === 'number') {\n outerRef.scrollTop = initialScrollTop;\n }\n }\n\n this._callPropsCallbacks();\n }\n\n componentDidUpdate() {\n const { direction } = this.props;\n const { scrollLeft, scrollTop, scrollUpdateWasRequested } = this.state;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n const outerRef = ((this._outerRef: any): HTMLElement);\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollLeft;\n break;\n case 'positive-ascending':\n outerRef.scrollLeft = scrollLeft;\n break;\n default:\n const { clientWidth, scrollWidth } = outerRef;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } else {\n outerRef.scrollLeft = Math.max(0, scrollLeft);\n }\n\n outerRef.scrollTop = Math.max(0, scrollTop);\n }\n\n this._callPropsCallbacks();\n }\n\n componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n }\n\n render() {\n const {\n children,\n className,\n columnCount,\n direction,\n height,\n innerRef,\n innerElementType,\n innerTagName,\n itemData,\n itemKey = defaultItemKey,\n outerElementType,\n outerTagName,\n rowCount,\n style,\n useIsScrolling,\n width,\n } = this.props;\n const { isScrolling } = this.state;\n\n const [\n columnStartIndex,\n columnStopIndex,\n ] = this._getHorizontalRangeToRender();\n const [rowStartIndex, rowStopIndex] = this._getVerticalRangeToRender();\n\n const items = [];\n if (columnCount > 0 && rowCount) {\n for (\n let rowIndex = rowStartIndex;\n rowIndex <= rowStopIndex;\n rowIndex++\n ) {\n for (\n let columnIndex = columnStartIndex;\n columnIndex <= columnStopIndex;\n columnIndex++\n ) {\n items.push(\n createElement(children, {\n columnIndex,\n data: itemData,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n key: itemKey({ columnIndex, data: itemData, rowIndex }),\n rowIndex,\n style: this._getItemStyle(rowIndex, columnIndex),\n })\n );\n }\n }\n }\n\n // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n const estimatedTotalHeight = getEstimatedTotalHeight(\n this.props,\n this._instanceProps\n );\n const estimatedTotalWidth = getEstimatedTotalWidth(\n this.props,\n this._instanceProps\n );\n\n return createElement(\n outerElementType || outerTagName || 'div',\n {\n className,\n onScroll: this._onScroll,\n ref: this._outerRefSetter,\n style: {\n position: 'relative',\n height,\n width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction,\n ...style,\n },\n },\n createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: estimatedTotalHeight,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: estimatedTotalWidth,\n },\n })\n );\n }\n\n _callOnItemsRendered: (\n overscanColumnStartIndex: number,\n overscanColumnStopIndex: number,\n overscanRowStartIndex: number,\n overscanRowStopIndex: number,\n visibleColumnStartIndex: number,\n visibleColumnStopIndex: number,\n visibleRowStartIndex: number,\n visibleRowStopIndex: number\n ) => void;\n _callOnItemsRendered = memoizeOne(\n (\n overscanColumnStartIndex: number,\n overscanColumnStopIndex: number,\n overscanRowStartIndex: number,\n overscanRowStopIndex: number,\n visibleColumnStartIndex: number,\n visibleColumnStopIndex: number,\n visibleRowStartIndex: number,\n visibleRowStopIndex: number\n ) =>\n ((this.props.onItemsRendered: any): OnItemsRenderedCallback)({\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex,\n })\n );\n\n _callOnScroll: (\n scrollLeft: number,\n scrollTop: number,\n horizontalScrollDirection: ScrollDirection,\n verticalScrollDirection: ScrollDirection,\n scrollUpdateWasRequested: boolean\n ) => void;\n _callOnScroll = memoizeOne(\n (\n scrollLeft: number,\n scrollTop: number,\n horizontalScrollDirection: ScrollDirection,\n verticalScrollDirection: ScrollDirection,\n scrollUpdateWasRequested: boolean\n ) =>\n ((this.props.onScroll: any): OnScrollCallback)({\n horizontalScrollDirection,\n scrollLeft,\n scrollTop,\n verticalScrollDirection,\n scrollUpdateWasRequested,\n })\n );\n\n _callPropsCallbacks() {\n const { columnCount, onItemsRendered, onScroll, rowCount } = this.props;\n\n if (typeof onItemsRendered === 'function') {\n if (columnCount > 0 && rowCount > 0) {\n const [\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n ] = this._getHorizontalRangeToRender();\n const [\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex,\n ] = this._getVerticalRangeToRender();\n this._callOnItemsRendered(\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex\n );\n }\n }\n\n if (typeof onScroll === 'function') {\n const {\n horizontalScrollDirection,\n scrollLeft,\n scrollTop,\n scrollUpdateWasRequested,\n verticalScrollDirection,\n } = this.state;\n this._callOnScroll(\n scrollLeft,\n scrollTop,\n horizontalScrollDirection,\n verticalScrollDirection,\n scrollUpdateWasRequested\n );\n }\n }\n\n // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n _getItemStyle: (rowIndex: number, columnIndex: number) => Object;\n _getItemStyle = (rowIndex: number, columnIndex: number): Object => {\n const { columnWidth, direction, rowHeight } = this.props;\n\n const itemStyleCache = this._getItemStyleCache(\n shouldResetStyleCacheOnItemSizeChange && columnWidth,\n shouldResetStyleCacheOnItemSizeChange && direction,\n shouldResetStyleCacheOnItemSizeChange && rowHeight\n );\n\n const key = `${rowIndex}:${columnIndex}`;\n\n let style;\n if (itemStyleCache.hasOwnProperty(key)) {\n style = itemStyleCache[key];\n } else {\n const offset = getColumnOffset(\n this.props,\n columnIndex,\n this._instanceProps\n );\n const isRtl = direction === 'rtl';\n itemStyleCache[key] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offset,\n right: isRtl ? offset : undefined,\n top: getRowOffset(this.props, rowIndex, this._instanceProps),\n height: getRowHeight(this.props, rowIndex, this._instanceProps),\n width: getColumnWidth(this.props, columnIndex, this._instanceProps),\n };\n }\n\n return style;\n };\n\n _getItemStyleCache: (_: any, __: any, ___: any) => ItemStyleCache;\n _getItemStyleCache = memoizeOne((_: any, __: any, ___: any) => ({}));\n\n _getHorizontalRangeToRender(): [number, number, number, number] {\n const {\n columnCount,\n overscanColumnCount,\n overscanColumnsCount,\n overscanCount,\n rowCount,\n } = this.props;\n const { horizontalScrollDirection, isScrolling, scrollLeft } = this.state;\n\n const overscanCountResolved: number =\n overscanColumnCount || overscanColumnsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n const startIndex = getColumnStartIndexForOffset(\n this.props,\n scrollLeft,\n this._instanceProps\n );\n const stopIndex = getColumnStopIndexForStartIndex(\n this.props,\n startIndex,\n scrollLeft,\n this._instanceProps\n );\n\n // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n const overscanBackward =\n !isScrolling || horizontalScrollDirection === 'backward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n const overscanForward =\n !isScrolling || horizontalScrollDirection === 'forward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n\n return [\n Math.max(0, startIndex - overscanBackward),\n Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)),\n startIndex,\n stopIndex,\n ];\n }\n\n _getVerticalRangeToRender(): [number, number, number, number] {\n const {\n columnCount,\n overscanCount,\n overscanRowCount,\n overscanRowsCount,\n rowCount,\n } = this.props;\n const { isScrolling, verticalScrollDirection, scrollTop } = this.state;\n\n const overscanCountResolved: number =\n overscanRowCount || overscanRowsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n const startIndex = getRowStartIndexForOffset(\n this.props,\n scrollTop,\n this._instanceProps\n );\n const stopIndex = getRowStopIndexForStartIndex(\n this.props,\n startIndex,\n scrollTop,\n this._instanceProps\n );\n\n // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n const overscanBackward =\n !isScrolling || verticalScrollDirection === 'backward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n const overscanForward =\n !isScrolling || verticalScrollDirection === 'forward'\n ? Math.max(1, overscanCountResolved)\n : 1;\n\n return [\n Math.max(0, startIndex - overscanBackward),\n Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)),\n startIndex,\n stopIndex,\n ];\n }\n\n _onScroll = (event: ScrollEvent): void => {\n const {\n clientHeight,\n clientWidth,\n scrollLeft,\n scrollTop,\n scrollHeight,\n scrollWidth,\n } = event.currentTarget;\n this.setState(prevState => {\n if (\n prevState.scrollLeft === scrollLeft &&\n prevState.scrollTop === scrollTop\n ) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n const { direction } = this.props;\n\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n let calculatedScrollLeft = scrollLeft;\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n calculatedScrollLeft = -scrollLeft;\n break;\n case 'positive-descending':\n calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n calculatedScrollLeft = Math.max(\n 0,\n Math.min(calculatedScrollLeft, scrollWidth - clientWidth)\n );\n const calculatedScrollTop = Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n );\n\n return {\n isScrolling: true,\n horizontalScrollDirection:\n prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: calculatedScrollLeft,\n scrollTop: calculatedScrollTop,\n verticalScrollDirection:\n prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n scrollUpdateWasRequested: false,\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _outerRefSetter = (ref: any): void => {\n const { outerRef } = this.props;\n\n this._outerRef = ((ref: any): HTMLDivElement);\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (\n outerRef != null &&\n typeof outerRef === 'object' &&\n outerRef.hasOwnProperty('current')\n ) {\n outerRef.current = ref;\n }\n };\n\n _resetIsScrollingDebounced = () => {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n\n this._resetIsScrollingTimeoutId = requestTimeout(\n this._resetIsScrolling,\n IS_SCROLLING_DEBOUNCE_INTERVAL\n );\n };\n\n _resetIsScrolling = () => {\n this._resetIsScrollingTimeoutId = null;\n\n this.setState({ isScrolling: false }, () => {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n this._getItemStyleCache(-1);\n });\n };\n };\n}\n\nconst validateSharedProps = (\n {\n children,\n direction,\n height,\n innerTagName,\n outerTagName,\n overscanColumnsCount,\n overscanCount,\n overscanRowsCount,\n width,\n }: Props,\n { instance }: State\n): void => {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof overscanCount === 'number') {\n if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) {\n devWarningsOverscanCount.add(instance);\n console.warn(\n 'The overscanCount prop has been deprecated. ' +\n 'Please use the overscanColumnCount and overscanRowCount props instead.'\n );\n }\n }\n\n if (\n typeof overscanColumnsCount === 'number' ||\n typeof overscanRowsCount === 'number'\n ) {\n if (\n devWarningsOverscanRowsColumnsCount &&\n !devWarningsOverscanRowsColumnsCount.has(instance)\n ) {\n devWarningsOverscanRowsColumnsCount.add(instance);\n console.warn(\n 'The overscanColumnsCount and overscanRowsCount props have been deprecated. ' +\n 'Please use the overscanColumnCount and overscanRowCount props instead.'\n );\n }\n }\n\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn(\n 'The innerTagName and outerTagName props have been deprecated. ' +\n 'Please use the innerElementType and outerElementType props instead.'\n );\n }\n }\n\n if (children == null) {\n throw Error(\n 'An invalid \"children\" prop has been specified. ' +\n 'Value should be a React component. ' +\n `\"${children === null ? 'null' : typeof children}\" was specified.`\n );\n }\n\n switch (direction) {\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n default:\n throw Error(\n 'An invalid \"direction\" prop has been specified. ' +\n 'Value should be either \"ltr\" or \"rtl\". ' +\n `\"${direction}\" was specified.`\n );\n }\n\n if (typeof width !== 'number') {\n throw Error(\n 'An invalid \"width\" prop has been specified. ' +\n 'Grids must specify a number for width. ' +\n `\"${width === null ? 'null' : typeof width}\" was specified.`\n );\n }\n\n if (typeof height !== 'number') {\n throw Error(\n 'An invalid \"height\" prop has been specified. ' +\n 'Grids must specify a number for height. ' +\n `\"${height === null ? 'null' : typeof height}\" was specified.`\n );\n }\n }\n};\n","// @flow\n\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport { cancelTimeout, requestTimeout } from './timer';\nimport { getScrollbarSize, getRTLOffsetType } from './domHelpers';\n\nimport type { TimeoutID } from './timer';\n\nexport type ScrollToAlign = 'auto' | 'smart' | 'center' | 'start' | 'end';\n\ntype itemSize = number | ((index: number) => number);\n// TODO Deprecate directions \"horizontal\" and \"vertical\"\ntype Direction = 'ltr' | 'rtl' | 'horizontal' | 'vertical';\ntype Layout = 'horizontal' | 'vertical';\n\ntype RenderComponentProps = {|\n data: T,\n index: number,\n isScrolling?: boolean,\n style: Object,\n|};\ntype RenderComponent = React$ComponentType<$Shape>>;\n\ntype ScrollDirection = 'forward' | 'backward';\n\ntype onItemsRenderedCallback = ({\n overscanStartIndex: number,\n overscanStopIndex: number,\n visibleStartIndex: number,\n visibleStopIndex: number,\n}) => void;\ntype onScrollCallback = ({\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean,\n}) => void;\n\ntype ScrollEvent = SyntheticEvent;\ntype ItemStyleCache = { [index: number]: Object };\n\ntype OuterProps = {|\n children: React$Node,\n className: string | void,\n onScroll: ScrollEvent => void,\n style: {\n [string]: mixed,\n },\n|};\n\ntype InnerProps = {|\n children: React$Node,\n style: {\n [string]: mixed,\n },\n|};\n\nexport type Props = {|\n children: RenderComponent,\n className?: string,\n direction: Direction,\n height: number | string,\n initialScrollOffset?: number,\n innerRef?: any,\n innerElementType?: string | React$AbstractComponent,\n innerTagName?: string, // deprecated\n itemCount: number,\n itemData: T,\n itemKey?: (index: number, data: T) => any,\n itemSize: itemSize,\n layout: Layout,\n onItemsRendered?: onItemsRenderedCallback,\n onScroll?: onScrollCallback,\n outerRef?: any,\n outerElementType?: string | React$AbstractComponent,\n outerTagName?: string, // deprecated\n overscanCount: number,\n style?: Object,\n useIsScrolling: boolean,\n width: number | string,\n|};\n\ntype State = {|\n instance: any,\n isScrolling: boolean,\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean,\n|};\n\ntype GetItemOffset = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype GetItemSize = (\n props: Props,\n index: number,\n instanceProps: any\n) => number;\ntype GetEstimatedTotalSize = (props: Props, instanceProps: any) => number;\ntype GetOffsetForIndexAndAlignment = (\n props: Props,\n index: number,\n align: ScrollToAlign,\n scrollOffset: number,\n instanceProps: any\n) => number;\ntype GetStartIndexForOffset = (\n props: Props,\n offset: number,\n instanceProps: any\n) => number;\ntype GetStopIndexForStartIndex = (\n props: Props,\n startIndex: number,\n scrollOffset: number,\n instanceProps: any\n) => number;\ntype InitInstanceProps = (props: Props, instance: any) => any;\ntype ValidateProps = (props: Props) => void;\n\nconst IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nconst defaultItemKey = (index: number, data: any) => index;\n\n// In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\nlet devWarningsDirection = null;\nlet devWarningsTagName = null;\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = new WeakSet();\n devWarningsTagName = new WeakSet();\n }\n}\n\nexport default function createListComponent({\n getItemOffset,\n getEstimatedTotalSize,\n getItemSize,\n getOffsetForIndexAndAlignment,\n getStartIndexForOffset,\n getStopIndexForStartIndex,\n initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange,\n validateProps,\n}: {|\n getItemOffset: GetItemOffset,\n getEstimatedTotalSize: GetEstimatedTotalSize,\n getItemSize: GetItemSize,\n getOffsetForIndexAndAlignment: GetOffsetForIndexAndAlignment,\n getStartIndexForOffset: GetStartIndexForOffset,\n getStopIndexForStartIndex: GetStopIndexForStartIndex,\n initInstanceProps: InitInstanceProps,\n shouldResetStyleCacheOnItemSizeChange: boolean,\n validateProps: ValidateProps,\n|}) {\n return class List extends PureComponent, State> {\n _instanceProps: any = initInstanceProps(this.props, this);\n _outerRef: ?HTMLDivElement;\n _resetIsScrollingTimeoutId: TimeoutID | null = null;\n\n static defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n layout: 'vertical',\n overscanCount: 2,\n useIsScrolling: false,\n };\n\n state: State = {\n instance: this,\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset:\n typeof this.props.initialScrollOffset === 'number'\n ? this.props.initialScrollOffset\n : 0,\n scrollUpdateWasRequested: false,\n };\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n constructor(props: Props) {\n super(props);\n }\n\n static getDerivedStateFromProps(\n nextProps: Props,\n prevState: State\n ): $Shape | null {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n }\n\n scrollTo(scrollOffset: number): void {\n scrollOffset = Math.max(0, scrollOffset);\n\n this.setState(prevState => {\n if (prevState.scrollOffset === scrollOffset) {\n return null;\n }\n return {\n scrollDirection:\n prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: true,\n };\n }, this._resetIsScrollingDebounced);\n }\n\n scrollToItem(index: number, align: ScrollToAlign = 'auto'): void {\n const { itemCount, layout } = this.props;\n const { scrollOffset } = this.state;\n\n index = Math.max(0, Math.min(index, itemCount - 1));\n\n // The scrollbar size should be considered when scrolling an item into view, to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n // This is an edge case for lists; normally they only scroll in the dominant direction.\n let scrollbarSize = 0;\n if (this._outerRef) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n if (layout === 'vertical') {\n scrollbarSize =\n outerRef.scrollWidth > outerRef.clientWidth\n ? getScrollbarSize()\n : 0;\n } else {\n scrollbarSize =\n outerRef.scrollHeight > outerRef.clientHeight\n ? getScrollbarSize()\n : 0;\n }\n }\n\n this.scrollTo(\n getOffsetForIndexAndAlignment(\n this.props,\n index,\n align,\n scrollOffset,\n this._instanceProps,\n scrollbarSize\n )\n );\n }\n\n componentDidMount() {\n const { direction, initialScrollOffset, layout } = this.props;\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n // TODO Deprecate direction \"horizontal\"\n if (direction === 'horizontal' || layout === 'horizontal') {\n outerRef.scrollLeft = initialScrollOffset;\n } else {\n outerRef.scrollTop = initialScrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n }\n\n componentDidUpdate() {\n const { direction, layout } = this.props;\n const { scrollOffset, scrollUpdateWasRequested } = this.state;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n const outerRef = ((this._outerRef: any): HTMLElement);\n\n // TODO Deprecate direction \"horizontal\"\n if (direction === 'horizontal' || layout === 'horizontal') {\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset;\n break;\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset;\n break;\n default:\n const { clientWidth, scrollWidth } = outerRef;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n } else {\n outerRef.scrollLeft = scrollOffset;\n }\n } else {\n outerRef.scrollTop = scrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n }\n\n componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n }\n\n render() {\n const {\n children,\n className,\n direction,\n height,\n innerRef,\n innerElementType,\n innerTagName,\n itemCount,\n itemData,\n itemKey = defaultItemKey,\n layout,\n outerElementType,\n outerTagName,\n style,\n useIsScrolling,\n width,\n } = this.props;\n const { isScrolling } = this.state;\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal =\n direction === 'horizontal' || layout === 'horizontal';\n\n const onScroll = isHorizontal\n ? this._onScrollHorizontal\n : this._onScrollVertical;\n\n const [startIndex, stopIndex] = this._getRangeToRender();\n\n const items = [];\n if (itemCount > 0) {\n for (let index = startIndex; index <= stopIndex; index++) {\n items.push(\n createElement(children, {\n data: itemData,\n key: itemKey(index, itemData),\n index,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n style: this._getItemStyle(index),\n })\n );\n }\n }\n\n // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n const estimatedTotalSize = getEstimatedTotalSize(\n this.props,\n this._instanceProps\n );\n\n return createElement(\n outerElementType || outerTagName || 'div',\n {\n className,\n onScroll,\n ref: this._outerRefSetter,\n style: {\n position: 'relative',\n height,\n width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction,\n ...style,\n },\n },\n createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: isHorizontal ? estimatedTotalSize : '100%',\n },\n })\n );\n }\n\n _callOnItemsRendered: (\n overscanStartIndex: number,\n overscanStopIndex: number,\n visibleStartIndex: number,\n visibleStopIndex: number\n ) => void;\n _callOnItemsRendered = memoizeOne(\n (\n overscanStartIndex: number,\n overscanStopIndex: number,\n visibleStartIndex: number,\n visibleStopIndex: number\n ) =>\n ((this.props.onItemsRendered: any): onItemsRenderedCallback)({\n overscanStartIndex,\n overscanStopIndex,\n visibleStartIndex,\n visibleStopIndex,\n })\n );\n\n _callOnScroll: (\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean\n ) => void;\n _callOnScroll = memoizeOne(\n (\n scrollDirection: ScrollDirection,\n scrollOffset: number,\n scrollUpdateWasRequested: boolean\n ) =>\n ((this.props.onScroll: any): onScrollCallback)({\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested,\n })\n );\n\n _callPropsCallbacks() {\n if (typeof this.props.onItemsRendered === 'function') {\n const { itemCount } = this.props;\n if (itemCount > 0) {\n const [\n overscanStartIndex,\n overscanStopIndex,\n visibleStartIndex,\n visibleStopIndex,\n ] = this._getRangeToRender();\n this._callOnItemsRendered(\n overscanStartIndex,\n overscanStopIndex,\n visibleStartIndex,\n visibleStopIndex\n );\n }\n }\n\n if (typeof this.props.onScroll === 'function') {\n const {\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested,\n } = this.state;\n this._callOnScroll(\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested\n );\n }\n }\n\n // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n _getItemStyle: (index: number) => Object;\n _getItemStyle = (index: number): Object => {\n const { direction, itemSize, layout } = this.props;\n\n const itemStyleCache = this._getItemStyleCache(\n shouldResetStyleCacheOnItemSizeChange && itemSize,\n shouldResetStyleCacheOnItemSizeChange && layout,\n shouldResetStyleCacheOnItemSizeChange && direction\n );\n\n let style;\n if (itemStyleCache.hasOwnProperty(index)) {\n style = itemStyleCache[index];\n } else {\n const offset = getItemOffset(this.props, index, this._instanceProps);\n const size = getItemSize(this.props, index, this._instanceProps);\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal =\n direction === 'horizontal' || layout === 'horizontal';\n\n const isRtl = direction === 'rtl';\n const offsetHorizontal = isHorizontal ? offset : 0;\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offsetHorizontal,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%',\n };\n }\n\n return style;\n };\n\n _getItemStyleCache: (_: any, __: any, ___: any) => ItemStyleCache;\n _getItemStyleCache = memoizeOne((_: any, __: any, ___: any) => ({}));\n\n _getRangeToRender(): [number, number, number, number] {\n const { itemCount, overscanCount } = this.props;\n const { isScrolling, scrollDirection, scrollOffset } = this.state;\n\n if (itemCount === 0) {\n return [0, 0, 0, 0];\n }\n\n const startIndex = getStartIndexForOffset(\n this.props,\n scrollOffset,\n this._instanceProps\n );\n const stopIndex = getStopIndexForStartIndex(\n this.props,\n startIndex,\n scrollOffset,\n this._instanceProps\n );\n\n // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n const overscanBackward =\n !isScrolling || scrollDirection === 'backward'\n ? Math.max(1, overscanCount)\n : 1;\n const overscanForward =\n !isScrolling || scrollDirection === 'forward'\n ? Math.max(1, overscanCount)\n : 1;\n\n return [\n Math.max(0, startIndex - overscanBackward),\n Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)),\n startIndex,\n stopIndex,\n ];\n }\n\n _onScrollHorizontal = (event: ScrollEvent): void => {\n const { clientWidth, scrollLeft, scrollWidth } = event.currentTarget;\n this.setState(prevState => {\n if (prevState.scrollOffset === scrollLeft) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n const { direction } = this.props;\n\n let scrollOffset = scrollLeft;\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft;\n break;\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n scrollOffset = Math.max(\n 0,\n Math.min(scrollOffset, scrollWidth - clientWidth)\n );\n\n return {\n isScrolling: true,\n scrollDirection:\n prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset,\n scrollUpdateWasRequested: false,\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _onScrollVertical = (event: ScrollEvent): void => {\n const { clientHeight, scrollHeight, scrollTop } = event.currentTarget;\n this.setState(prevState => {\n if (prevState.scrollOffset === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n const scrollOffset = Math.max(\n 0,\n Math.min(scrollTop, scrollHeight - clientHeight)\n );\n\n return {\n isScrolling: true,\n scrollDirection:\n prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset,\n scrollUpdateWasRequested: false,\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _outerRefSetter = (ref: any): void => {\n const { outerRef } = this.props;\n\n this._outerRef = ((ref: any): HTMLDivElement);\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (\n outerRef != null &&\n typeof outerRef === 'object' &&\n outerRef.hasOwnProperty('current')\n ) {\n outerRef.current = ref;\n }\n };\n\n _resetIsScrollingDebounced = () => {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n\n this._resetIsScrollingTimeoutId = requestTimeout(\n this._resetIsScrolling,\n IS_SCROLLING_DEBOUNCE_INTERVAL\n );\n };\n\n _resetIsScrolling = () => {\n this._resetIsScrollingTimeoutId = null;\n\n this.setState({ isScrolling: false }, () => {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n this._getItemStyleCache(-1, null);\n });\n };\n };\n}\n\n// NOTE: I considered further wrapping individual items with a pure ListItem component.\n// This would avoid ever calling the render function for the same index more than once,\n// But it would also add the overhead of a lot of components/fibers.\n// I assume people already do this (render function returning a class component),\n// So my doing it would just unnecessarily double the wrappers.\n\nconst validateSharedProps = (\n {\n children,\n direction,\n height,\n layout,\n innerTagName,\n outerTagName,\n width,\n }: Props,\n { instance }: State\n): void => {\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn(\n 'The innerTagName and outerTagName props have been deprecated. ' +\n 'Please use the innerElementType and outerElementType props instead.'\n );\n }\n }\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n\n switch (direction) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance);\n console.warn(\n 'The direction prop should be either \"ltr\" (default) or \"rtl\". ' +\n 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.'\n );\n }\n break;\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n default:\n throw Error(\n 'An invalid \"direction\" prop has been specified. ' +\n 'Value should be either \"ltr\" or \"rtl\". ' +\n `\"${direction}\" was specified.`\n );\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break;\n default:\n throw Error(\n 'An invalid \"layout\" prop has been specified. ' +\n 'Value should be either \"horizontal\" or \"vertical\". ' +\n `\"${layout}\" was specified.`\n );\n }\n\n if (children == null) {\n throw Error(\n 'An invalid \"children\" prop has been specified. ' +\n 'Value should be a React component. ' +\n `\"${children === null ? 'null' : typeof children}\" was specified.`\n );\n }\n\n if (isHorizontal && typeof width !== 'number') {\n throw Error(\n 'An invalid \"width\" prop has been specified. ' +\n 'Horizontal lists must specify a number for width. ' +\n `\"${width === null ? 'null' : typeof width}\" was specified.`\n );\n } else if (!isHorizontal && typeof height !== 'number') {\n throw Error(\n 'An invalid \"height\" prop has been specified. ' +\n 'Vertical lists must specify a number for height. ' +\n `\"${height === null ? 'null' : typeof height}\" was specified.`\n );\n }\n }\n};\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","// @flow\n\nimport createListComponent from './createListComponent';\n\nimport type { Props, ScrollToAlign } from './createListComponent';\n\nconst DEFAULT_ESTIMATED_ITEM_SIZE = 50;\n\ntype VariableSizeProps = {|\n estimatedItemSize: number,\n ...Props,\n|};\n\ntype itemSizeGetter = (index: number) => number;\n\ntype ItemMetadata = {|\n offset: number,\n size: number,\n|};\ntype InstanceProps = {|\n itemMetadataMap: { [index: number]: ItemMetadata },\n estimatedItemSize: number,\n lastMeasuredIndex: number,\n|};\n\nconst getItemMetadata = (\n props: Props,\n index: number,\n instanceProps: InstanceProps\n): ItemMetadata => {\n const { itemSize } = ((props: any): VariableSizeProps);\n const { itemMetadataMap, lastMeasuredIndex } = instanceProps;\n\n if (index > lastMeasuredIndex) {\n let offset = 0;\n if (lastMeasuredIndex >= 0) {\n const itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (let i = lastMeasuredIndex + 1; i <= index; i++) {\n let size = ((itemSize: any): itemSizeGetter)(i);\n\n itemMetadataMap[i] = {\n offset,\n size,\n };\n\n offset += size;\n }\n\n instanceProps.lastMeasuredIndex = index;\n }\n\n return itemMetadataMap[index];\n};\n\nconst findNearestItem = (\n props: Props,\n instanceProps: InstanceProps,\n offset: number\n) => {\n const { itemMetadataMap, lastMeasuredIndex } = instanceProps;\n\n const lastMeasuredItemOffset =\n lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch(\n props,\n instanceProps,\n lastMeasuredIndex,\n 0,\n offset\n );\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch(\n props,\n instanceProps,\n Math.max(0, lastMeasuredIndex),\n offset\n );\n }\n};\n\nconst findNearestItemBinarySearch = (\n props: Props,\n instanceProps: InstanceProps,\n high: number,\n low: number,\n offset: number\n): number => {\n while (low <= high) {\n const middle = low + Math.floor((high - low) / 2);\n const currentOffset = getItemMetadata(props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nconst findNearestItemExponentialSearch = (\n props: Props,\n instanceProps: InstanceProps,\n index: number,\n offset: number\n): number => {\n const { itemCount } = props;\n let interval = 1;\n\n while (\n index < itemCount &&\n getItemMetadata(props, index, instanceProps).offset < offset\n ) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch(\n props,\n instanceProps,\n Math.min(index, itemCount - 1),\n Math.floor(index / 2),\n offset\n );\n};\n\nconst getEstimatedTotalSize = (\n { itemCount }: Props,\n { itemMetadataMap, estimatedItemSize, lastMeasuredIndex }: InstanceProps\n) => {\n let totalSizeOfMeasuredItems = 0;\n\n // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n if (lastMeasuredIndex >= itemCount) {\n lastMeasuredIndex = itemCount - 1;\n }\n\n if (lastMeasuredIndex >= 0) {\n const itemMetadata = itemMetadataMap[lastMeasuredIndex];\n totalSizeOfMeasuredItems = itemMetadata.offset + itemMetadata.size;\n }\n\n const numUnmeasuredItems = itemCount - lastMeasuredIndex - 1;\n const totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize;\n\n return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems;\n};\n\nconst VariableSizeList = createListComponent({\n getItemOffset: (\n props: Props,\n index: number,\n instanceProps: InstanceProps\n ): number => getItemMetadata(props, index, instanceProps).offset,\n\n getItemSize: (\n props: Props,\n index: number,\n instanceProps: InstanceProps\n ): number => instanceProps.itemMetadataMap[index].size,\n\n getEstimatedTotalSize,\n\n getOffsetForIndexAndAlignment: (\n props: Props,\n index: number,\n align: ScrollToAlign,\n scrollOffset: number,\n instanceProps: InstanceProps,\n scrollbarSize: number\n ): number => {\n const { direction, height, layout, width } = props;\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n const size = (((isHorizontal ? width : height): any): number);\n const itemMetadata = getItemMetadata(props, index, instanceProps);\n\n // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n const estimatedTotalSize = getEstimatedTotalSize(props, instanceProps);\n\n const maxOffset = Math.max(\n 0,\n Math.min(estimatedTotalSize - size, itemMetadata.offset)\n );\n const minOffset = Math.max(\n 0,\n itemMetadata.offset - size + itemMetadata.size + scrollbarSize\n );\n\n if (align === 'smart') {\n if (\n scrollOffset >= minOffset - size &&\n scrollOffset <= maxOffset + size\n ) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n case 'end':\n return minOffset;\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n }\n },\n\n getStartIndexForOffset: (\n props: Props,\n offset: number,\n instanceProps: InstanceProps\n ): number => findNearestItem(props, instanceProps, offset),\n\n getStopIndexForStartIndex: (\n props: Props,\n startIndex: number,\n scrollOffset: number,\n instanceProps: InstanceProps\n ): number => {\n const { direction, height, itemCount, layout, width } = props;\n\n // TODO Deprecate direction \"horizontal\"\n const isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n const size = (((isHorizontal ? width : height): any): number);\n const itemMetadata = getItemMetadata(props, startIndex, instanceProps);\n const maxOffset = scrollOffset + size;\n\n let offset = itemMetadata.offset + itemMetadata.size;\n let stopIndex = startIndex;\n\n while (stopIndex < itemCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata(props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n\n initInstanceProps(props: Props, instance: any): InstanceProps {\n const { estimatedItemSize } = ((props: any): VariableSizeProps);\n\n const instanceProps = {\n itemMetadataMap: {},\n estimatedItemSize: estimatedItemSize || DEFAULT_ESTIMATED_ITEM_SIZE,\n lastMeasuredIndex: -1,\n };\n\n instance.resetAfterIndex = (\n index: number,\n shouldForceUpdate?: boolean = true\n ) => {\n instanceProps.lastMeasuredIndex = Math.min(\n instanceProps.lastMeasuredIndex,\n index - 1\n );\n\n // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n\n shouldResetStyleCacheOnItemSizeChange: false,\n\n validateProps: ({ itemSize }: Props): void => {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'function') {\n throw Error(\n 'An invalid \"itemSize\" prop has been specified. ' +\n 'Value should be a function. ' +\n `\"${itemSize === null ? 'null' : typeof itemSize}\" was specified.`\n );\n }\n }\n },\n});\n\nexport default VariableSizeList;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./optionslist.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./optionslist.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n forwardRef,\n memo,\n useCallback,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {append, includes, without} from 'ramda';\nimport {VariableSizeList, ListChildComponentProps} from 'react-window';\nimport {DetailedOption, OptionValue} from 'src/types';\nimport '../components/css/optionslist.css';\n\nconst DEFAULT_ITEM_HEIGHT = 35;\n\ninterface StylingProps {\n id?: string;\n className?: string;\n style?: React.CSSProperties;\n optionClassName?: string;\n optionStyle?: React.CSSProperties;\n inputType?: 'checkbox' | 'radio';\n inputClassName?: string;\n inputStyle?: React.CSSProperties;\n labelClassName?: string;\n labelStyle?: React.CSSProperties;\n}\n\ninterface OptionLabelProps extends DetailedOption {\n index: string | number;\n}\n\nexport const OptionLabel: React.FC = ({\n index,\n label,\n title,\n value,\n}) => {\n const ctx = window.dash_component_api.useDashContext();\n const ExternalWrapper = window.dash_component_api.ExternalWrapper;\n\n if (typeof label === 'object') {\n const labels = label instanceof Array ? label : [label];\n return (\n <>\n {labels.map((label, i) => (\n \n ))}\n \n );\n }\n\n const displayLabel = `${label ?? value}`;\n return {displayLabel};\n};\n\ninterface OptionProps extends StylingProps {\n index: number;\n option: DetailedOption;\n isSelected: boolean;\n onChange: (option: DetailedOption) => void;\n}\n\nexport const Option: React.FC = ({\n option,\n isSelected,\n onChange,\n optionClassName,\n optionStyle,\n inputType = 'checkbox',\n inputClassName,\n inputStyle,\n labelClassName,\n labelStyle,\n index,\n id,\n}) => {\n const classNames = [\n 'dash-options-list-option',\n isSelected ? 'selected' : '',\n optionClassName,\n ].filter(Boolean);\n\n const inputClassNames = [\n 'dash-options-list-option-checkbox',\n inputClassName,\n ].filter(Boolean);\n\n const labelClassNames = [\n 'dash-options-list-option-text',\n labelClassName,\n ].filter(Boolean);\n\n return (\n \n \n onChange(option)}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n onChange(option);\n }\n }}\n readOnly\n className={inputClassNames.join(' ')}\n style={inputStyle}\n />\n \n \n \n \n \n );\n};\n\ninterface RowData {\n options: DetailedOption[];\n selected: OptionValue[];\n onChange: (option: DetailedOption) => void;\n passThruProps: StylingProps;\n setOptionHeight: (index: number, height: number) => void;\n}\n\nconst Row = memo(({index, style, data}: ListChildComponentProps) => {\n const {options, selected, onChange, passThruProps, setOptionHeight} = data;\n const option = options[index];\n const isSelected = includes(option.value, selected);\n\n const measureRef = useCallback(\n (el: HTMLDivElement | null) => {\n if (!el) {\n return;\n }\n // Synchronous measurement for string labels.\n const immediateHeight = el.getBoundingClientRect().height;\n if (immediateHeight > 0) {\n setOptionHeight(index, immediateHeight);\n }\n\n // ResizeObserver catches async Dash component labels\n // that render after the initial commit.\n const observer = new ResizeObserver(([entry]) => {\n const height =\n entry.borderBoxSize?.[0]?.blockSize ??\n entry.contentRect.height;\n if (height > 0) {\n setOptionHeight(index, height);\n }\n });\n observer.observe(el);\n },\n [index, setOptionHeight]\n );\n\n return (\n
\n
\n \n
\n
\n );\n});\n\nRow.displayName = 'Row';\n\nexport interface OptionsListHandle {\n scrollToItem: (index: number) => void;\n focusItem: (index: number) => void;\n}\n\ninterface OptionsListProps extends StylingProps {\n options: DetailedOption[];\n selected: OptionValue[];\n onSelectionChange: (selected: OptionValue[]) => void;\n optionHeight?: number;\n maxHeight?: number;\n}\n\nexport const OptionsList = forwardRef(\n (\n {\n options,\n selected,\n onSelectionChange,\n optionHeight,\n maxHeight = window.innerHeight,\n id,\n className,\n style,\n ...passThruProps\n },\n ref\n ) => {\n const listRef = useRef(null);\n const containerRef = useRef(null);\n const pendingFocusRef = useRef(null);\n const heightsRef = useRef>(new Map());\n const [measuredHeight, setMeasuredHeight] = useState(\n null\n );\n\n const defaultOptionHeight = optionHeight ?? DEFAULT_ITEM_HEIGHT;\n\n const getOptionHeight = useCallback(\n (index: number): number =>\n heightsRef.current.get(index) ?? defaultOptionHeight,\n [defaultOptionHeight]\n );\n\n const setOptionHeight = useCallback((index: number, height: number) => {\n if (heightsRef.current.get(index) !== height) {\n heightsRef.current.set(index, height);\n listRef.current?.resetAfterIndex(index, true);\n }\n }, []);\n\n // Measure container height before first paint. Row measureRefs\n // have already fired, so invalidate the list's internal cache\n // so the re-render picks up measured heights.\n useLayoutEffect(() => {\n const el = containerRef.current;\n if (!el || measuredHeight !== null) {\n return;\n }\n listRef.current?.resetAfterIndex(0, false);\n const h = el.getBoundingClientRect().height;\n if (h > 0) {\n setMeasuredHeight(h);\n }\n }, []);\n\n const defaultListHeight = options.length * defaultOptionHeight;\n const listHeight =\n measuredHeight === null\n ? maxHeight\n : Math.min(measuredHeight, defaultListHeight);\n\n const focusOption = useCallback((optionIndex: number) => {\n requestAnimationFrame(() => {\n if (pendingFocusRef.current !== optionIndex) {\n return;\n }\n const deferred = containerRef.current?.querySelector(\n `[data-option-index=\"${optionIndex}\"] input`\n );\n if (deferred instanceof HTMLElement) {\n pendingFocusRef.current = null;\n deferred.focus();\n }\n });\n }, []);\n\n useImperativeHandle(ref, () => ({\n scrollToItem: (index: number) => {\n if (listRef.current) {\n listRef.current.scrollToItem(index, 'smart');\n }\n },\n focusItem: (index: number) => {\n pendingFocusRef.current = index;\n if (listRef.current) {\n listRef.current.scrollToItem(index, 'center');\n }\n focusOption(index);\n },\n }));\n\n const handleChange = useCallback(\n (option: DetailedOption) => {\n let newValue: OptionValue[];\n if (includes(option.value, selected)) {\n newValue = without([option.value], selected);\n } else {\n newValue = append(option.value, selected);\n }\n onSelectionChange(newValue);\n },\n [selected, onSelectionChange]\n );\n\n const classNames = ['dash-options-list', className].filter(Boolean);\n\n const handleItemsRendered = useCallback(() => {\n if (typeof pendingFocusRef.current === 'number') {\n focusOption(pendingFocusRef.current);\n }\n }, []);\n\n // Render the longest-label option (sampled) for intrinsic width.\n const sizerDiv = useMemo(() => {\n if (!options.length) {\n return null;\n }\n const step = Math.max(1, Math.floor(options.length / 100));\n let longestOption = options[0];\n let maxLen = 0;\n for (let i = 0; i < options.length; i += step) {\n const {label} = options[i];\n if (typeof label !== 'string') {\n return null;\n }\n if (label.length > maxLen) {\n longestOption = options[i];\n maxLen = label.length;\n }\n }\n return (\n {}}\n />\n );\n }, [options]);\n\n const itemData = useMemo(\n () => ({\n options,\n selected,\n onChange: handleChange,\n passThruProps: {id, ...passThruProps},\n setOptionHeight,\n }),\n [options, selected, handleChange, id, passThruProps]\n );\n\n if (options.length < 100) {\n return (\n \n {options.map((option, i) => (\n \n ))}\n
\n );\n }\n\n return (\n \n \n {Row}\n \n {sizerDiv && (\n
\n {sizerDiv}\n
\n )}\n
\n );\n }\n);\n\nOptionsList.displayName = 'OptionsList';\n","import React from 'react';\nimport {DetailedOption, DropdownProps, OptionValue} from '../types';\n\nconst isOptionValue = (option: unknown): option is OptionValue => {\n return ['string', 'number', 'boolean'].includes(typeof option);\n};\n\nexport interface SanitizedResult {\n options: DetailedOption[];\n valueSet: Set;\n}\n\nexport const sanitizeOptions = (\n options: DropdownProps['options']\n): SanitizedResult => {\n const valueSet = new Set();\n let result: DetailedOption[];\n\n if (typeof options === 'object' && !(options instanceof Array)) {\n result = Object.entries(options).map(([value, label]) => {\n const opt = {\n label: React.isValidElement(label) ? label : String(label),\n value,\n };\n valueSet.add(value);\n return opt;\n });\n } else if (options instanceof Array) {\n result = options.map(option => {\n const opt = isOptionValue(option)\n ? {label: String(option), value: option}\n : option;\n valueSet.add(opt.value);\n return opt;\n });\n } else {\n result = [];\n }\n\n return {options: result, valueSet};\n};\n","import _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","export default function _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n\n'use strict';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _require = require('util/'),\n inspect = _require.inspect;\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n}\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n};\n\n// Comparing short primitives should just show === / !== instead of using the\n// diff.\nvar kMaxShortLength = 10;\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = '';\n\n // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n }\n\n // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n // Ignore the first characters.\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n }\n\n // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n');\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the expected line to the cache.\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine);\n // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = '';\n // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n // Inspected object to big (Show ~20 rows max)\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\nvar AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {\n _inherits(AssertionError, _Error);\n var _super = _createSuper(AssertionError);\n function AssertionError(options) {\n var _this;\n _classCallCheck(this, AssertionError);\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n }\n // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n');\n\n // In case \"actual\" is an object, it should not be reference equal.\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n\n // Only print a single input.\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = '';\n var knownOperators = kReadableOperator[operator];\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n // Create error message including the error code in the name.\n _this.stack;\n // Reset the name.\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError;\n}( /*#__PURE__*/_wrapNativeSuper(Error), inspect.custom);\nmodule.exports = AssertionError;","import React, {ButtonHTMLAttributes, DetailedHTMLProps} from 'react';\nimport {BaseDashProps, DashComponent} from '@dash-renderer/types';\n\nexport enum PersistenceTypes {\n 'local' = 'local',\n 'session' = 'session',\n 'memory' = 'memory',\n}\n\nexport enum PersistedProps {\n 'value' = 'value',\n 'date' = 'date',\n 'start_date' = 'start_date',\n 'end_date' = 'end_date',\n}\n\nexport interface BaseDccProps\n extends Pick {\n /**\n * Additional CSS class for the root DOM node\n */\n className?: string;\n\n /**\n * Dash-assigned callback that gets fired when component properties change\n */\n setProps: (props: Partial) => void;\n\n /**\n * Used to allow user interactions in this component to be persisted when\n * the component - or the page - is refreshed. If `persisted` is truthy and\n * hasn't changed from its previous value, a `value` that the user has\n * changed while using the app will keep that change, as long as\n * the new `value` also matches what was given originally.\n * Used in conjunction with `persistence_type`.\n */\n persistence?: boolean | string | number;\n\n /**\n * Properties whose user interactions will persist after refreshing the\n * component or the page. Since only `value` is allowed this prop can\n * normally be ignored.\n */\n persisted_props?: PersistedProps[];\n\n /**\n * Where persisted user changes will be stored:\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n persistence_type?: PersistenceTypes;\n}\n\nexport type ButtonProps = BaseDccProps & {\n /**\n * The children of this component.\n */\n children?: React.ReactNode;\n /**\n * Defines the type of the element.\n */\n type?: 'submit' | 'reset' | 'button';\n /**\n * The element should be automatically focused after the page loaded.\n */\n autoFocus?: boolean;\n /**\n * Indicates whether the user can interact with the element.\n */\n disabled?: boolean;\n /**\n * Indicates the form that is the owner of the element.\n */\n form?: string;\n /**\n * Indicates the action of the element, overriding the action defined in the
.\n */\n formAction?: string;\n /**\n * If the button/input is a submit button (type=\"submit\"), this attribute sets the encoding type to use during form submission. If this attribute is specified, it overrides the enctype attribute of the button's form owner.\n */\n formEncType?: string;\n /**\n * If the button/input is a submit button (type=\"submit\"), this attribute sets the submission method to use during form submission (GET, POST, etc.). If this attribute is specified, it overrides the method attribute of the button's form owner.\n */\n formMethod?: string;\n /**\n * If the button/input is a submit button (type=\"submit\"), this boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the novalidate attribute of the button's form owner.\n */\n formNoValidate?: boolean;\n /**\n * If the button/input is a submit button (type=\"submit\"), this attribute specifies the browsing context (for example, tab, window, or inline frame) in which to display the response that is received after submitting the form. If this attribute is specified, it overrides the target attribute of the button's form owner.\n */\n formTarget?: string;\n /**\n * Name of the element. For example used by the server to identify the fields in form submits.\n */\n name?: string;\n /**\n * Defines a default value which will be displayed in the element on page load.\n */\n value?: string | string[] | number;\n /**\n * Keyboard shortcut to activate or add focus to the element.\n */\n accessKey?: string;\n /**\n * Indicates whether the element's content is editable.\n */\n contentEditable?: boolean | 'true' | 'false' | 'inherit';\n /**\n * Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left).\n */\n dir?: string;\n /**\n * Defines whether the element can be dragged.\n */\n draggable?: boolean;\n /**\n * Prevents rendering of given element, while keeping child elements, e.g. script elements, active.\n */\n hidden?: boolean;\n /**\n * Defines the language used in the element.\n */\n lang?: string;\n /**\n * Defines the role of an element in the context of accessibility.\n */\n role?: string;\n /**\n * Indicates whether spell checking is allowed for the element.\n */\n spellCheck?: boolean;\n /**\n * Defines CSS styles which will override styles previously set.\n */\n style?: React.CSSProperties;\n /**\n * Overrides the browser's default tab order and follows the one specified instead.\n */\n tabIndex?: number;\n /**\n * Text to be displayed in a tooltip when hovering over the element.\n */\n title?: string;\n /**\n * Number of times the button lost focus.\n */\n n_blur?: number;\n /**\n * Last time the button lost focus.\n */\n n_blur_timestamp?: number;\n /**\n * Number of times the button has been clicked.\n */\n n_clicks?: number;\n /**\n * Last time the button was clicked.\n */\n n_clicks_timestamp?: number;\n};\n\nexport enum HTMLInputTypes {\n // Only allowing the input types with wide browser compatibility\n 'text' = 'text',\n 'number' = 'number',\n 'password' = 'password',\n 'email' = 'email',\n 'range' = 'range',\n 'search' = 'search',\n 'tel' = 'tel',\n 'url' = 'url',\n 'hidden' = 'hidden',\n}\n\nexport interface InputProps extends BaseDccProps {\n /**\n * The value of the input\n */\n value?: string | number;\n /**\n * The type of control to render.\n */\n type?: HTMLInputTypes;\n /**\n * If true, changes to input will be sent back to the Dash server only on enter or when losing focus.\n * If it's false, it will send the value back on every change.\n * If a number, it will not send anything back to the Dash server until the user has stopped\n * typing for that number of seconds.\n */\n debounce?: boolean | number;\n /**\n * A hint to the user of what can be entered in the control . The placeholder text must not contain carriage returns or line-feeds. Note: Do not use the placeholder attribute instead of a
\n )}\n \n );\n}\n\nInput.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n\nexport default Input;\n","import React from 'react';\n\n/**\n * The loading element is used to add `data-dash-is-loading` attribute\n * on html elements. This is used to customize CSS when a component is\n * loading.\n *\n * See: https://dash.plotly.com/loading-states#check-loading-states-from-components\n */\n// eslint-disable-next-line react/prop-types\nfunction LoadingElement({elementType = 'div', ...props}, ref) {\n const ctx = window.dash_component_api.useDashContext();\n const loading = ctx.useLoading();\n\n const givenProps = {\n ...props,\n ref,\n };\n if (loading) {\n givenProps['data-dash-is-loading'] = true;\n }\n\n return React.createElement(elementType, givenProps);\n}\n\nexport default React.forwardRef(LoadingElement);\n","'use strict';\r\n\r\n/**\r\n * Is this string all whitespace?\r\n * This solution kind of makes my brain hurt, but it's significantly faster\r\n * than !str.trim() or any other solution I could find.\r\n *\r\n * whitespace codes from: http://en.wikipedia.org/wiki/Whitespace_character\r\n * and verified with:\r\n *\r\n * for(var i = 0; i < 65536; i++) {\r\n * var s = String.fromCharCode(i);\r\n * if(+s===0 && !s.trim()) console.log(i, s);\r\n * }\r\n *\r\n * which counts a couple of these as *not* whitespace, but finds nothing else\r\n * that *is* whitespace. Note that charCodeAt stops at 16 bits, but it appears\r\n * that there are no whitespace characters above this, and code points above\r\n * this do not map onto white space characters.\r\n */\r\n\r\nmodule.exports = function(str){\r\n var l = str.length,\r\n a;\r\n for(var i = 0; i < l; i++) {\r\n a = str.charCodeAt(i);\r\n if((a < 9 || a > 13) && (a !== 32) && (a !== 133) && (a !== 160) &&\r\n (a !== 5760) && (a !== 6158) && (a < 8192 || a > 8205) &&\r\n (a !== 8232) && (a !== 8233) && (a !== 8239) && (a !== 8287) &&\r\n (a !== 8288) && (a !== 12288) && (a !== 65279)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".dash-options-list-option {\\n padding: var(--Dash-Spacing) 0;\\n background: var(--Dash-Fill-Inverse-strong);\\n color: var(--Dash-Text-Strong);\\n cursor: pointer;\\n display: flex;\\n align-items: baseline;\\n user-select: none;\\n}\\n\\n.dash-options-list-option:not(:has(input[disabled])):hover,\\n.dash-options-list-option:not(:has(input[disabled])):focus-within {\\n color: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-options-list-option:has(input[disabled]) {\\n color: var(--Dash-Text-Disabled);\\n cursor: not-allowed;\\n}\\n\\n.dash-options-list-option-wrapper,\\n.dash-options-list-option-text {\\n display: flex;\\n align-items: center;\\n}\\n\\n.dash-options-list-option-checkbox {\\n display: inline-block;\\n margin: 0 calc(var(--Dash-Spacing) * 2) 0 0;\\n box-sizing: border-box;\\n border: 1px solid var(--Dash-Stroke-Strong);\\n accent-color: var(--Dash-Fill-Interactive-Strong);\\n outline-color: var(--Dash-Fill-Interactive-Strong);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/css/optionslist.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,8BAA8B;IAC9B,2CAA2C;IAC3C,8BAA8B;IAC9B,eAAe;IACf,aAAa;IACb,qBAAqB;IACrB,iBAAiB;AACrB;;AAEA;;IAEI,0CAA0C;AAC9C;;AAEA;IACI,gCAAgC;IAChC,mBAAmB;AACvB;;AAEA;;IAEI,aAAa;IACb,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,2CAA2C;IAC3C,sBAAsB;IACtB,2CAA2C;IAC3C,iDAAiD;IACjD,kDAAkD;AACtD\",\"sourcesContent\":[\".dash-options-list-option {\\n padding: var(--Dash-Spacing) 0;\\n background: var(--Dash-Fill-Inverse-strong);\\n color: var(--Dash-Text-Strong);\\n cursor: pointer;\\n display: flex;\\n align-items: baseline;\\n user-select: none;\\n}\\n\\n.dash-options-list-option:not(:has(input[disabled])):hover,\\n.dash-options-list-option:not(:has(input[disabled])):focus-within {\\n color: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-options-list-option:has(input[disabled]) {\\n color: var(--Dash-Text-Disabled);\\n cursor: not-allowed;\\n}\\n\\n.dash-options-list-option-wrapper,\\n.dash-options-list-option-text {\\n display: flex;\\n align-items: center;\\n}\\n\\n.dash-options-list-option-checkbox {\\n display: inline-block;\\n margin: 0 calc(var(--Dash-Spacing) * 2) 0 0;\\n box-sizing: border-box;\\n border: 1px solid var(--Dash-Stroke-Strong);\\n accent-color: var(--Dash-Fill-Interactive-Strong);\\n outline-color: var(--Dash-Fill-Interactive-Strong);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --Dash-Spacing: 4px;\\n --Dash-Stroke-Strong: rgba(0, 18, 77, 0.45);\\n --Dash-Stroke-Weak: rgba(0, 24, 102, 0.1);\\n --Dash-Fill-Interactive-Strong: #7f4bc4;\\n --Dash-Fill-Interactive-Weak: rgba(0, 30, 128, 0.04);\\n --Dash-Fill-Inverse-Strong: #fff;\\n --Dash-Text-Primary: rgba(0, 18, 77, 0.87);\\n --Dash-Text-Strong: rgba(0, 9, 38, 0.9);\\n --Dash-Text-Weak: rgba(0, 12, 51, 0.65);\\n --Dash-Text-Disabled: rgba(0, 21, 89, 0.6);\\n --Dash-Fill-Primary-Hover: rgba(0, 18, 77, 0.04);\\n --Dash-Fill-Primary-Active: rgba(0, 18, 77, 0.08);\\n --Dash-Fill-Disabled: rgba(0, 24, 102, 0.1);\\n --Dash-Shading-Strong: rgba(22, 23, 24, 0.35);\\n --Dash-Shading-Weak: rgba(22, 23, 24, 0.2);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/css/dcc.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,mBAAmB;IACnB,2CAA2C;IAC3C,yCAAyC;IACzC,uCAAuC;IACvC,oDAAoD;IACpD,gCAAgC;IAChC,0CAA0C;IAC1C,uCAAuC;IACvC,uCAAuC;IACvC,0CAA0C;IAC1C,gDAAgD;IAChD,iDAAiD;IACjD,2CAA2C;IAC3C,6CAA6C;IAC7C,0CAA0C;AAC9C\",\"sourcesContent\":[\":root {\\n --Dash-Spacing: 4px;\\n --Dash-Stroke-Strong: rgba(0, 18, 77, 0.45);\\n --Dash-Stroke-Weak: rgba(0, 24, 102, 0.1);\\n --Dash-Fill-Interactive-Strong: #7f4bc4;\\n --Dash-Fill-Interactive-Weak: rgba(0, 30, 128, 0.04);\\n --Dash-Fill-Inverse-Strong: #fff;\\n --Dash-Text-Primary: rgba(0, 18, 77, 0.87);\\n --Dash-Text-Strong: rgba(0, 9, 38, 0.9);\\n --Dash-Text-Weak: rgba(0, 12, 51, 0.65);\\n --Dash-Text-Disabled: rgba(0, 21, 89, 0.6);\\n --Dash-Fill-Primary-Hover: rgba(0, 18, 77, 0.04);\\n --Dash-Fill-Primary-Active: rgba(0, 18, 77, 0.08);\\n --Dash-Fill-Disabled: rgba(0, 24, 102, 0.1);\\n --Dash-Shading-Strong: rgba(22, 23, 24, 0.35);\\n --Dash-Shading-Weak: rgba(22, 23, 24, 0.2);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Input container styles */\\n.dash-input-container {\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n width: 100%;\\n height: 34px;\\n background: var(--Dash-Fill-Inverse-Strong);\\n border-radius: var(--Dash-Spacing);\\n border: 1px solid var(--Dash-Stroke-Strong);\\n box-sizing: border-box;\\n container-type: inline-size;\\n vertical-align: middle;\\n color: inherit;\\n overflow: hidden;\\n}\\n\\n.dash-input-container:focus-within {\\n border: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-input-container:has(:focus-visible) {\\n outline: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-input-container:has(.dash-input-element:disabled) {\\n opacity: 0.6;\\n cursor: not-allowed;\\n}\\n\\n.dash-input-container input:focus {\\n outline: none;\\n}\\n\\n.dash-input-container:has(input[type='range']) {\\n background: inherit;\\n}\\n\\n/* Input field styles */\\n.dash-input-element {\\n padding: var(--Dash-Spacing) calc(2 * var(--Dash-Spacing));\\n color: inherit;\\n background: inherit;\\n border: none;\\n border-radius: var(--Dash-Spacing);\\n flex: 1 1 0;\\n min-width: 0;\\n height: 100%;\\n box-sizing: border-box;\\n z-index: 1;\\n order: 2;\\n accent-color: var(--Dash-Fill-Interactive-Strong);\\n font-family: inherit;\\n font-size: inherit;\\n}\\n\\n.dash-input-element::selection,\\n.dash-input-element::-webkit-selection {\\n color: var(--Dash-Fill-Inverse-Strong);\\n background: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-input-element:disabled {\\n cursor: not-allowed;\\n}\\n\\n/* Hide native steppers for number inputs */\\n.dash-input-element[type='number'] {\\n -moz-appearance: textfield;\\n border-radius: 0;\\n}\\n\\n.dash-input-element[type='number']::-webkit-outer-spin-button,\\n.dash-input-element[type='number']::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\n/* Show native steppers when container is narrow and input is number type */\\n@container (max-width: 99px) {\\n .dash-input-element[type='number'] {\\n -moz-appearance: number-input;\\n }\\n\\n .dash-input-element[type='number']::-webkit-outer-spin-button,\\n .dash-input-element[type='number']::-webkit-inner-spin-button {\\n -webkit-appearance: inner-spin-button;\\n margin: 0;\\n }\\n}\\n\\n/* Stepper button base styles */\\n.dash-input-stepper {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 32px;\\n height: 100%;\\n border: none;\\n background: var(--Dash-Fill-Inverse-Strong);\\n cursor: pointer;\\n font-size: 16px;\\n font-weight: bold;\\n color: var(--Dash-Text-Primary);\\n}\\n\\n.dash-input-stepper:hover,\\n.dash-input-stepper:focus {\\n background: var(--Dash-Fill-Primary-Hover);\\n}\\n\\n.dash-input-stepper:active {\\n background: var(--Dash-Fill-Primary-Active);\\n}\\n\\n.dash-input-stepper:disabled {\\n background: var(--Dash-Fill-Inverse-Strong);\\n opacity: 0.5;\\n cursor: default;\\n}\\n\\n@container (max-width: 99px) {\\n .dash-input-stepper {\\n display: none;\\n }\\n}\\n\\n/* Decrement button specific styles */\\n.dash-input-stepper.dash-stepper-decrement {\\n border-right: 1px solid var(--Dash-Stroke-Weak);\\n border-radius: var(--Dash-Spacing) 0 0 var(--Dash-Spacing);\\n order: 1;\\n}\\n\\n/* Increment button specific styles */\\n.dash-input-stepper.dash-stepper-increment {\\n border-left: 1px solid var(--Dash-Stroke-Weak);\\n border-radius: 0 var(--Dash-Spacing) var(--Dash-Spacing) 0;\\n order: 3;\\n}\\n\\n/* Hidden input type */\\n.dash-input-container.dash-input-hidden {\\n display: none;\\n}\\n\\ninput.dash-input-element:invalid {\\n color: red;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/css/input.css\"],\"names\":[],\"mappings\":\"AAAA,2BAA2B;AAC3B;IACI,kBAAkB;IAClB,oBAAoB;IACpB,mBAAmB;IACnB,WAAW;IACX,YAAY;IACZ,2CAA2C;IAC3C,kCAAkC;IAClC,2CAA2C;IAC3C,sBAAsB;IACtB,2BAA2B;IAC3B,sBAAsB;IACtB,cAAc;IACd,gBAAgB;AACpB;;AAEA;IACI,qDAAqD;AACzD;;AAEA;IACI,sDAAsD;AAC1D;;AAEA;IACI,YAAY;IACZ,mBAAmB;AACvB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,mBAAmB;AACvB;;AAEA,uBAAuB;AACvB;IACI,0DAA0D;IAC1D,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,kCAAkC;IAClC,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,sBAAsB;IACtB,UAAU;IACV,QAAQ;IACR,iDAAiD;IACjD,oBAAoB;IACpB,kBAAkB;AACtB;;AAEA;;IAEI,sCAAsC;IACtC,+CAA+C;AACnD;;AAEA;IACI,mBAAmB;AACvB;;AAEA,2CAA2C;AAC3C;IACI,0BAA0B;IAC1B,gBAAgB;AACpB;;AAEA;;IAEI,wBAAwB;IACxB,SAAS;AACb;;AAEA,2EAA2E;AAC3E;IACI;QACI,6BAA6B;IACjC;;IAEA;;QAEI,qCAAqC;QACrC,SAAS;IACb;AACJ;;AAEA,+BAA+B;AAC/B;IACI,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,2CAA2C;IAC3C,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,+BAA+B;AACnC;;AAEA;;IAEI,0CAA0C;AAC9C;;AAEA;IACI,2CAA2C;AAC/C;;AAEA;IACI,2CAA2C;IAC3C,YAAY;IACZ,eAAe;AACnB;;AAEA;IACI;QACI,aAAa;IACjB;AACJ;;AAEA,qCAAqC;AACrC;IACI,+CAA+C;IAC/C,0DAA0D;IAC1D,QAAQ;AACZ;;AAEA,qCAAqC;AACrC;IACI,8CAA8C;IAC9C,0DAA0D;IAC1D,QAAQ;AACZ;;AAEA,sBAAsB;AACtB;IACI,aAAa;AACjB;;AAEA;IACI,UAAU;AACd\",\"sourcesContent\":[\"/* Input container styles */\\n.dash-input-container {\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n width: 100%;\\n height: 34px;\\n background: var(--Dash-Fill-Inverse-Strong);\\n border-radius: var(--Dash-Spacing);\\n border: 1px solid var(--Dash-Stroke-Strong);\\n box-sizing: border-box;\\n container-type: inline-size;\\n vertical-align: middle;\\n color: inherit;\\n overflow: hidden;\\n}\\n\\n.dash-input-container:focus-within {\\n border: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-input-container:has(:focus-visible) {\\n outline: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-input-container:has(.dash-input-element:disabled) {\\n opacity: 0.6;\\n cursor: not-allowed;\\n}\\n\\n.dash-input-container input:focus {\\n outline: none;\\n}\\n\\n.dash-input-container:has(input[type='range']) {\\n background: inherit;\\n}\\n\\n/* Input field styles */\\n.dash-input-element {\\n padding: var(--Dash-Spacing) calc(2 * var(--Dash-Spacing));\\n color: inherit;\\n background: inherit;\\n border: none;\\n border-radius: var(--Dash-Spacing);\\n flex: 1 1 0;\\n min-width: 0;\\n height: 100%;\\n box-sizing: border-box;\\n z-index: 1;\\n order: 2;\\n accent-color: var(--Dash-Fill-Interactive-Strong);\\n font-family: inherit;\\n font-size: inherit;\\n}\\n\\n.dash-input-element::selection,\\n.dash-input-element::-webkit-selection {\\n color: var(--Dash-Fill-Inverse-Strong);\\n background: var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-input-element:disabled {\\n cursor: not-allowed;\\n}\\n\\n/* Hide native steppers for number inputs */\\n.dash-input-element[type='number'] {\\n -moz-appearance: textfield;\\n border-radius: 0;\\n}\\n\\n.dash-input-element[type='number']::-webkit-outer-spin-button,\\n.dash-input-element[type='number']::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\n/* Show native steppers when container is narrow and input is number type */\\n@container (max-width: 99px) {\\n .dash-input-element[type='number'] {\\n -moz-appearance: number-input;\\n }\\n\\n .dash-input-element[type='number']::-webkit-outer-spin-button,\\n .dash-input-element[type='number']::-webkit-inner-spin-button {\\n -webkit-appearance: inner-spin-button;\\n margin: 0;\\n }\\n}\\n\\n/* Stepper button base styles */\\n.dash-input-stepper {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 32px;\\n height: 100%;\\n border: none;\\n background: var(--Dash-Fill-Inverse-Strong);\\n cursor: pointer;\\n font-size: 16px;\\n font-weight: bold;\\n color: var(--Dash-Text-Primary);\\n}\\n\\n.dash-input-stepper:hover,\\n.dash-input-stepper:focus {\\n background: var(--Dash-Fill-Primary-Hover);\\n}\\n\\n.dash-input-stepper:active {\\n background: var(--Dash-Fill-Primary-Active);\\n}\\n\\n.dash-input-stepper:disabled {\\n background: var(--Dash-Fill-Inverse-Strong);\\n opacity: 0.5;\\n cursor: default;\\n}\\n\\n@container (max-width: 99px) {\\n .dash-input-stepper {\\n display: none;\\n }\\n}\\n\\n/* Decrement button specific styles */\\n.dash-input-stepper.dash-stepper-decrement {\\n border-right: 1px solid var(--Dash-Stroke-Weak);\\n border-radius: var(--Dash-Spacing) 0 0 var(--Dash-Spacing);\\n order: 1;\\n}\\n\\n/* Increment button specific styles */\\n.dash-input-stepper.dash-stepper-increment {\\n border-left: 1px solid var(--Dash-Stroke-Weak);\\n border-radius: 0 var(--Dash-Spacing) var(--Dash-Spacing) 0;\\n order: 3;\\n}\\n\\n/* Hidden input type */\\n.dash-input-container.dash-input-hidden {\\n display: none;\\n}\\n\\ninput.dash-input-element:invalid {\\n color: red;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * inspired by is-number \n * but significantly simplified and sped up by ignoring number and string constructors\n * ie these return false:\n * new Number(1)\n * new String('1')\n */\n\n'use strict';\n\nvar allBlankCharCodes = require('is-string-blank');\n\nmodule.exports = function(n) {\n var type = typeof n;\n if(type === 'string') {\n var original = n;\n n = +n;\n // whitespace strings cast to zero - filter them out\n if(n===0 && allBlankCharCodes(original)) return false;\n }\n else if(type !== 'number') return false;\n\n return n - n < 1;\n};\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n}","export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\nexport default _toISOString;","import _includes from \"./_includes.js\";\nimport _map from \"./_map.js\";\nimport _quote from \"./_quote.js\";\nimport _toISOString from \"./_toISOString.js\";\nimport keys from \"../keys.js\";\nimport reject from \"../reject.js\";\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '' : _toString(y, xs);\n };\n\n // mapPairs :: (Object, [String]) -> [String]\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return /^\\d+$/.test(k);\n }, keys(x)))).join(', ') + ']';\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n case '[object Map]':\n return 'new Map(' + recur(Array.from(x)) + ')';\n case '[object Null]':\n return 'null';\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n case '[object Set]':\n return 'new Set(' + recur(Array.from(x).sort()) + ')';\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n case '[object Undefined]':\n return 'undefined';\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _toString from \"./internal/_toString.js\";\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\nvar toString = /*#__PURE__*/_curry1(function toString(val) {\n return _toString(val, []);\n});\nexport default toString;","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport _isString from \"./internal/_isString.js\";\nimport toString from \"./toString.js\";\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\nvar concat = /*#__PURE__*/_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n throw new TypeError(toString(b) + ' is not an array');\n }\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n throw new TypeError(toString(b) + ' is not a string');\n }\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\nexport default concat;","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","import PropTypes from 'prop-types';\n\nimport React, {useEffect, useMemo} from 'react';\nimport {isNil} from 'ramda';\n\n/*\n * event polyfill for IE\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n */\nfunction CustomEvent(event, params) {\n // eslint-disable-next-line no-param-reassign\n params = params || {\n bubbles: false,\n cancelable: false,\n // eslint-disable-next-line no-undefined\n detail: undefined,\n };\n const evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n return evt;\n}\nCustomEvent.prototype = window.Event.prototype;\n\n/**\n * Link allows you to create a clickable link within a multi-page app.\n *\n * For links with destinations outside the current app, `html.A` is a better\n * component to use.\n */\nconst Link = ({refresh = false, ...props}) => {\n const {className, style, id, href, children, title, target, setProps} =\n props;\n const cleanUrl = window.dash_clientside.clean_url;\n const sanitizedUrl = useMemo(() => {\n return href ? cleanUrl(href) : undefined;\n }, [href]);\n\n const ctx = window.dash_component_api.useDashContext();\n const loading = ctx.useLoading();\n\n const updateLocation = e => {\n const hasModifiers = e.metaKey || e.shiftKey || e.altKey || e.ctrlKey;\n\n if (hasModifiers) {\n return;\n }\n if (target !== '_self' && !isNil(target)) {\n return;\n }\n // prevent anchor from updating location\n e.preventDefault();\n if (refresh) {\n window.location = sanitizedUrl;\n } else {\n window.history.pushState({}, '', sanitizedUrl);\n window.dispatchEvent(new CustomEvent('_dashprivate_pushstate'));\n }\n // scroll back to top\n window.scrollTo(0, 0);\n };\n\n useEffect(() => {\n if (sanitizedUrl && sanitizedUrl !== href) {\n setProps({\n _dash_error: new Error(`Dangerous link detected:: ${href}`),\n });\n }\n }, [href, sanitizedUrl]);\n\n return (\n \n {isNil(children) ? sanitizedUrl : children}\n \n );\n};\n\nLink.propTypes = {\n /**\n * The children of this component\n */\n children: PropTypes.node,\n /**\n * The URL of a linked resource.\n */\n href: PropTypes.string.isRequired,\n /**\n * Specifies where to open the link reference.\n */\n target: PropTypes.string,\n /**\n * Controls whether or not the page will refresh when the link is clicked\n */\n refresh: PropTypes.bool,\n\n /**\n * Adds the title attribute to your link, which can contain supplementary\n * information.\n */\n title: PropTypes.string,\n\n /**\n * Often used with CSS to style elements with common properties.\n */\n className: PropTypes.string,\n /**\n * Defines CSS styles which will override styles previously set.\n */\n style: PropTypes.object,\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string,\n /**\n * Object that holds the loading state object coming from dash-renderer\n */\n loading_state: PropTypes.shape({\n /**\n * Determines if the component is loading or not\n */\n is_loading: PropTypes.bool,\n /**\n * Holds which property is loading\n */\n prop_name: PropTypes.string,\n /**\n * Holds the name of the component that is loading\n */\n component_name: PropTypes.string,\n }),\n setProps: PropTypes.func,\n};\n\nexport default Link;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","export default (mathjax) => Promise.resolve(window.MathJax || (\n mathjax === false ?\n undefined :\n import(/* webpackChunkName: \"mathjax\" */ '../mathjax').then(() => window.MathJax)\n));\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","export default () =>\n import(/* webpackChunkName: \"dropdown\" */ '../../fragments/Dropdown');\n","import React, {lazy, Suspense} from 'react';\nimport {DropdownProps, PersistedProps, PersistenceTypes} from '../types';\nimport dropdown from '../utils/LazyLoader/dropdown';\n\nconst RealDropdown = lazy(dropdown);\n\nconst defaultLabels: DropdownProps['labels'] = {\n select_all: 'Select All',\n deselect_all: 'Deselect All',\n selected_count: '{num_selected} selected',\n search: 'Search',\n clear_search: 'Clear search',\n clear_selection: 'Clear selection',\n no_options_found: 'No options found',\n};\n\n/**\n * Dropdown is an interactive dropdown element for selecting one or more\n * items.\n * The values and labels of the dropdown items are specified in the `options`\n * property and the selected item(s) are specified with the `value` property.\n *\n * Use a dropdown when you have many options (more than 5) or when you are\n * constrained for space. Otherwise, you can use RadioItems or a Checklist,\n * which have the benefit of showing the users all of the items at once.\n */\nexport default function Dropdown({\n clearable = true,\n disabled = false,\n multi = false,\n searchable = true,\n labels = defaultLabels,\n optionHeight = 'auto',\n // eslint-disable-next-line no-magic-numbers\n maxHeight = 200,\n closeOnSelect = !multi,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n ...props\n}: DropdownProps) {\n labels = {\n ...defaultLabels,\n ...labels,\n };\n\n return (\n \n \n \n );\n}\n\nDropdown.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\nvar append = /*#__PURE__*/_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\nexport default append;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n return result;\n}","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Tab parent container */\\n.tab-parent {\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n\\n/* Tab container (holds all tabs) */\\n.tab-container {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.tab-container--vert {\\n display: inline-flex;\\n}\\n\\n/* Individual tab */\\n.tab {\\n flex: 1 1 0;\\n min-width: 0;\\n background-color: var(--tabs-background);\\n border: 1px solid var(--tabs-border);\\n border-bottom: none;\\n padding: 20px 25px;\\n transition: background-color, color 200ms;\\n text-align: center;\\n box-sizing: border-box;\\n cursor: pointer;\\n}\\n\\n/* Tab selected state */\\n.tab--selected {\\n border-top: 2px solid var(--tabs-primary);\\n color: var(--Dash-Text-Primary);\\n background-color: var(--Dash-Fill-Inverse-Strong);\\n}\\n\\n.tab--selected:hover {\\n background-color: var(--Dash-Fill-Inverse-Strong);\\n}\\n\\n/* Tab disabled state */\\n.tab--disabled {\\n opacity: 0.6;\\n cursor: not-allowed;\\n}\\n\\n/* Tab content area */\\n.tab-content--vert {\\n display: inline-flex;\\n flex-direction: column;\\n}\\n\\n/* Desktop/tablet styles (when above breakpoint) */\\n.tab-parent--above-breakpoint .tab {\\n border: 1px solid var(--tabs-border);\\n border-right: none;\\n}\\n\\n.tab-parent--above-breakpoint .tab:last-child {\\n border-right: 1px solid var(--tabs-border);\\n border-bottom: 1px solid var(--tabs-border);\\n}\\n\\n.tab-parent--above-breakpoint .tab--selected,\\n.tab-parent--above-breakpoint .tab:last-child.tab--selected {\\n border-bottom: none;\\n}\\n\\n/* Vertical tabs: left border for selected */\\n.tab-parent--above-breakpoint .tab-container--vert .tab--selected {\\n border-left: 2px solid var(--tabs-primary);\\n}\\n\\n/* Horizontal tabs: top border for selected */\\n.tab-parent--above-breakpoint\\n .tab-container:not(.tab-container--vert)\\n .tab--selected,\\n.tab-parent--above-breakpoint\\n .tab-container:not(.tab-container--vert)\\n .tab:last-child.tab--selected {\\n border-top: 2px solid var(--tabs-primary);\\n}\\n\\n.tab-parent--above-breakpoint .tab-container--vert .tab {\\n width: auto;\\n border-right: none !important;\\n border-bottom: none !important;\\n}\\n\\n.tab-parent--above-breakpoint .tab-container--vert .tab:last-child {\\n border-bottom: 1px solid var(--tabs-border) !important;\\n}\\n\\n.tab-parent--above-breakpoint .tab-container--vert .tab--selected {\\n border-top: 1px solid var(--tabs-border);\\n border-left: 2px solid var(--tabs-primary);\\n border-right: none;\\n}\\n\\n.tab-parent--above-breakpoint .tab-container {\\n flex-direction: row;\\n}\\n\\n.tab-parent--above-breakpoint .tab-container--vert {\\n flex-direction: column;\\n}\\n\\n.tab-parent--above-breakpoint.tab-parent--vert {\\n display: inline-flex;\\n flex-direction: row;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/css/tabs.css\"],\"names\":[],\"mappings\":\"AAAA,yBAAyB;AACzB;IACI,aAAa;IACb,sBAAsB;IACtB,gBAAgB;AACpB;;AAEA,mCAAmC;AACnC;IACI,aAAa;IACb,sBAAsB;AAC1B;;AAEA;IACI,oBAAoB;AACxB;;AAEA,mBAAmB;AACnB;IACI,WAAW;IACX,YAAY;IACZ,wCAAwC;IACxC,oCAAoC;IACpC,mBAAmB;IACnB,kBAAkB;IAClB,yCAAyC;IACzC,kBAAkB;IAClB,sBAAsB;IACtB,eAAe;AACnB;;AAEA,uBAAuB;AACvB;IACI,yCAAyC;IACzC,+BAA+B;IAC/B,iDAAiD;AACrD;;AAEA;IACI,iDAAiD;AACrD;;AAEA,uBAAuB;AACvB;IACI,YAAY;IACZ,mBAAmB;AACvB;;AAEA,qBAAqB;AACrB;IACI,oBAAoB;IACpB,sBAAsB;AAC1B;;AAEA,kDAAkD;AAClD;IACI,oCAAoC;IACpC,kBAAkB;AACtB;;AAEA;IACI,0CAA0C;IAC1C,2CAA2C;AAC/C;;AAEA;;IAEI,mBAAmB;AACvB;;AAEA,4CAA4C;AAC5C;IACI,0CAA0C;AAC9C;;AAEA,6CAA6C;AAC7C;;;;;;IAMI,yCAAyC;AAC7C;;AAEA;IACI,WAAW;IACX,6BAA6B;IAC7B,8BAA8B;AAClC;;AAEA;IACI,sDAAsD;AAC1D;;AAEA;IACI,wCAAwC;IACxC,0CAA0C;IAC1C,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,sBAAsB;AAC1B;;AAEA;IACI,oBAAoB;IACpB,mBAAmB;AACvB\",\"sourcesContent\":[\"/* Tab parent container */\\n.tab-parent {\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n\\n/* Tab container (holds all tabs) */\\n.tab-container {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.tab-container--vert {\\n display: inline-flex;\\n}\\n\\n/* Individual tab */\\n.tab {\\n flex: 1 1 0;\\n min-width: 0;\\n background-color: var(--tabs-background);\\n border: 1px solid var(--tabs-border);\\n border-bottom: none;\\n padding: 20px 25px;\\n transition: background-color, color 200ms;\\n text-align: center;\\n box-sizing: border-box;\\n cursor: pointer;\\n}\\n\\n/* Tab selected state */\\n.tab--selected {\\n border-top: 2px solid var(--tabs-primary);\\n color: var(--Dash-Text-Primary);\\n background-color: var(--Dash-Fill-Inverse-Strong);\\n}\\n\\n.tab--selected:hover {\\n background-color: var(--Dash-Fill-Inverse-Strong);\\n}\\n\\n/* Tab disabled state */\\n.tab--disabled {\\n opacity: 0.6;\\n cursor: not-allowed;\\n}\\n\\n/* Tab content area */\\n.tab-content--vert {\\n display: inline-flex;\\n flex-direction: column;\\n}\\n\\n/* Desktop/tablet styles (when above breakpoint) */\\n.tab-parent--above-breakpoint .tab {\\n border: 1px solid var(--tabs-border);\\n border-right: none;\\n}\\n\\n.tab-parent--above-breakpoint .tab:last-child {\\n border-right: 1px solid var(--tabs-border);\\n border-bottom: 1px solid var(--tabs-border);\\n}\\n\\n.tab-parent--above-breakpoint .tab--selected,\\n.tab-parent--above-breakpoint .tab:last-child.tab--selected {\\n border-bottom: none;\\n}\\n\\n/* Vertical tabs: left border for selected */\\n.tab-parent--above-breakpoint .tab-container--vert .tab--selected {\\n border-left: 2px solid var(--tabs-primary);\\n}\\n\\n/* Horizontal tabs: top border for selected */\\n.tab-parent--above-breakpoint\\n .tab-container:not(.tab-container--vert)\\n .tab--selected,\\n.tab-parent--above-breakpoint\\n .tab-container:not(.tab-container--vert)\\n .tab:last-child.tab--selected {\\n border-top: 2px solid var(--tabs-primary);\\n}\\n\\n.tab-parent--above-breakpoint .tab-container--vert .tab {\\n width: auto;\\n border-right: none !important;\\n border-bottom: none !important;\\n}\\n\\n.tab-parent--above-breakpoint .tab-container--vert .tab:last-child {\\n border-bottom: 1px solid var(--tabs-border) !important;\\n}\\n\\n.tab-parent--above-breakpoint .tab-container--vert .tab--selected {\\n border-top: 1px solid var(--tabs-border);\\n border-left: 2px solid var(--tabs-primary);\\n border-right: none;\\n}\\n\\n.tab-parent--above-breakpoint .tab-container {\\n flex-direction: row;\\n}\\n\\n.tab-parent--above-breakpoint .tab-container--vert {\\n flex-direction: column;\\n}\\n\\n.tab-parent--above-breakpoint.tab-parent--vert {\\n display: inline-flex;\\n flex-direction: row;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bind/callBound');\nvar toObject = Object;\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = toObject(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = toObject(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","import _curry2 from \"./internal/_curry2.js\";\n\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\nvar pick = /*#__PURE__*/_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n idx += 1;\n }\n return result;\n});\nexport default pick;","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\nimport isNil from \"./isNil.js\";\n\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\nvar hasPath = /*#__PURE__*/_curry2(function hasPath(_path, obj) {\n if (_path.length === 0 || isNil(obj)) {\n return false;\n }\n var val = obj;\n var idx = 0;\n while (idx < _path.length) {\n if (!isNil(val) && _has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n return true;\n});\nexport default hasPath;","import _curry2 from \"./internal/_curry2.js\";\nimport hasPath from \"./hasPath.js\";\n\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\nvar has = /*#__PURE__*/_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\n});\nexport default has;","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","import _xfBase from \"./_xfBase.js\";\nvar XFilter = /*#__PURE__*/function () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n return XFilter;\n}();\nexport default function _xfilter(f) {\n return function (xf) {\n return new XFilter(f, xf);\n };\n}","import _arrayReduce from \"./internal/_arrayReduce.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _xfilter from \"./internal/_xfilter.js\";\nimport keys from \"./keys.js\";\n\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @category Object\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nvar filter = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/filter', 'filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _arrayReduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n return acc;\n }, {}, keys(filterable)) :\n // else\n _filter(pred, filterable);\n}));\nexport default filter;","export default function _arrayReduce(reducer, acc, list) {\n var index = 0;\n var length = list.length;\n while (index < length) {\n acc = reducer(acc, list[index]);\n index += 1;\n }\n return acc;\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n}","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Input container styles */\\n.dash-textarea {\\n background: var(--Dash-Fill-Inverse-Strong);\\n border-radius: var(--Dash-Spacing);\\n border: 1px solid var(--Dash-Stroke-Strong);\\n box-sizing: border-box;\\n color: inherit;\\n padding: var(--Dash-Spacing) calc(2 * var(--Dash-Spacing));\\n width: 100%;\\n accent-color: var(--Dash-Fill-Interactive-Strong);\\n outline-color: var(--Dash-Fill-Interactive-Strong);\\n font-family: inherit;\\n font-size: inherit;\\n}\\n\\n.dash-textarea:focus-within {\\n border: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-textarea:focus-visible {\\n outline: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-textarea:disabled {\\n opacity: 0.6;\\n cursor: not-allowed;\\n}\\n\\n.dash-textarea:invalid {\\n outline: solid red;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/css/textarea.css\"],\"names\":[],\"mappings\":\"AAAA,2BAA2B;AAC3B;IACI,2CAA2C;IAC3C,kCAAkC;IAClC,2CAA2C;IAC3C,sBAAsB;IACtB,cAAc;IACd,0DAA0D;IAC1D,WAAW;IACX,iDAAiD;IACjD,kDAAkD;IAClD,oBAAoB;IACpB,kBAAkB;AACtB;;AAEA;IACI,qDAAqD;AACzD;;AAEA;IACI,sDAAsD;AAC1D;;AAEA;IACI,YAAY;IACZ,mBAAmB;AACvB;;AAEA;IACI,kBAAkB;AACtB\",\"sourcesContent\":[\"/* Input container styles */\\n.dash-textarea {\\n background: var(--Dash-Fill-Inverse-Strong);\\n border-radius: var(--Dash-Spacing);\\n border: 1px solid var(--Dash-Stroke-Strong);\\n box-sizing: border-box;\\n color: inherit;\\n padding: var(--Dash-Spacing) calc(2 * var(--Dash-Spacing));\\n width: 100%;\\n accent-color: var(--Dash-Fill-Interactive-Strong);\\n outline-color: var(--Dash-Fill-Interactive-Strong);\\n font-family: inherit;\\n font-size: inherit;\\n}\\n\\n.dash-textarea:focus-within {\\n border: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-textarea:focus-visible {\\n outline: 1px solid var(--Dash-Fill-Interactive-Strong);\\n}\\n\\n.dash-textarea:disabled {\\n opacity: 0.6;\\n cursor: not-allowed;\\n}\\n\\n.dash-textarea:invalid {\\n outline: solid red;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n/* eslint node-core/alphabetize-errors: \"error\" */\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n\n'use strict';\n\n// The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar codes = {};\n\n// Lazy loaded\nvar assert;\nvar util;\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n var _super = _createSuper(NodeError);\n function NodeError(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError);\n }(Base);\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\");\n\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n var msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n // TODO(BridgeAR): Improve the output by showing `null` and similar.\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","import {asyncDecorator} from '@plotly/dash-component-plugins';\nimport PropTypes from 'prop-types';\nimport React, {Component, Suspense} from 'react';\nimport markdown from '../utils/LazyLoader/markdown';\nimport lazyLoadMathJax from '../utils/LazyLoader/mathjax';\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * A component that renders Markdown text as specified by the\n * GitHub Markdown spec. These component uses\n * [react-markdown](https://rexxars.github.io/react-markdown/) under the hood.\n */\nexport default class DashMarkdown extends Component {\n constructor(props) {\n super(props);\n\n if (props.mathjax) {\n DashMarkdown._loadMathjax = true;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nDashMarkdown.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string,\n /**\n * Class name of the container element\n */\n className: PropTypes.string,\n\n /**\n * If true, loads mathjax v3 (tex-svg) into the page and use it in the markdown\n */\n mathjax: PropTypes.bool,\n\n /**\n * A boolean to control raw HTML escaping.\n * Setting HTML from code is risky because it's easy to\n * inadvertently expose your users to a cross-site scripting (XSS)\n * (https://en.wikipedia.org/wiki/Cross-site_scripting) attack.\n */\n dangerously_allow_html: PropTypes.bool,\n\n /**\n * A string for the target attribute to use on links (such as \"_blank\")\n */\n link_target: PropTypes.string,\n\n /**\n * A markdown string (or array of strings) that adheres to the CommonMark spec\n */\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n\n /**\n * Remove matching leading whitespace from all lines.\n * Lines that are empty, or contain *only* whitespace, are ignored.\n * Both spaces and tab characters are removed, but only if they match;\n * we will not convert tabs to spaces or vice versa.\n */\n dedent: PropTypes.bool,\n\n /**\n * Config options for syntax highlighting.\n */\n highlight_config: PropTypes.exact({\n /**\n * Color scheme; default 'light'\n */\n theme: PropTypes.oneOf(['dark', 'light']),\n }),\n\n /**\n * User-defined inline styles for the rendered Markdown\n */\n style: PropTypes.object,\n};\n\nDashMarkdown.defaultProps = {\n mathjax: false,\n dangerously_allow_html: false,\n highlight_config: {},\n dedent: true,\n};\n\nconst RealDashMarkdown = asyncDecorator(DashMarkdown, () =>\n Promise.all([\n markdown(),\n DashMarkdown._loadMathjax ? lazyLoadMathJax() : undefined,\n ]).then(([md]) => md)\n);\n\nexport const propTypes = DashMarkdown.propTypes;\nexport const defaultProps = DashMarkdown.defaultProps;\n","export default () => import(/* webpackChunkName: \"markdown\" */ '../../fragments/Markdown.react');\n\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","/* \n(The MIT License)\nCopyright (c) 2014-2021 Halász Ádám \nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n// Unique Hexatridecimal ID Generator\n// ================================================\n\n// Dependencies\n// ================================================\nvar pid = typeof process !== 'undefined' && process.pid ? process.pid.toString(36) : '' ;\nvar address = '';\nif(typeof __webpack_require__ !== 'function' && typeof require !== 'undefined'){\n var mac = '', os = require('os'); \n if(os.networkInterfaces) var networkInterfaces = os.networkInterfaces();\n if(networkInterfaces){\n loop:\n for(let interface_key in networkInterfaces){\n const networkInterface = networkInterfaces[interface_key];\n const length = networkInterface.length;\n for(var i = 0; i < length; i++){\n if(networkInterface[i] !== undefined && networkInterface[i].mac && networkInterface[i].mac != '00:00:00:00:00:00'){\n mac = networkInterface[i].mac; break loop;\n }\n }\n }\n address = mac ? parseInt(mac.replace(/\\:|\\D+/gi, '')).toString(36) : '' ;\n }\n} \n\n// Exports\n// ================================================\nmodule.exports = module.exports.default = function(prefix, suffix){ return (prefix ? prefix : '') + address + pid + now().toString(36) + (suffix ? suffix : ''); }\nmodule.exports.process = function(prefix, suffix){ return (prefix ? prefix : '') + pid + now().toString(36) + (suffix ? suffix : ''); }\nmodule.exports.time = function(prefix, suffix){ return (prefix ? prefix : '') + now().toString(36) + (suffix ? suffix : ''); }\n\n// Helpers\n// ================================================\nfunction now(){\n var time = Date.now();\n var last = now.last || time;\n return now.last = time > last ? time : last + 1;\n}\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + {\"81\":\"async-mathjax\",\"113\":\"async-upload\",\"157\":\"async-dropdown\",\"254\":\"async-highlight\",\"384\":\"dash_core_components-shared\",\"400\":\"async-datepicker\",\"641\":\"async-markdown\",\"737\":\"async-slider\",\"746\":\"async-graph\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var getCurrentScript = function() {\n var script = document.currentScript;\n if (!script) {\n /* Shim for IE11 and below */\n /* Do not take into account async scripts and inline scripts */\n\n var doc_scripts = document.getElementsByTagName('script');\n var scripts = [];\n\n for (var i = 0; i < doc_scripts.length; i++) {\n scripts.push(doc_scripts[i]);\n }\n\n scripts = scripts.filter(function(s) { return !s.async && !s.text && !s.textContent; });\n script = scripts.slice(-1)[0];\n }\n\n return script;\n};\n\nvar isLocalScript = function(script) {\n return /\\/_dash-component-suites\\//.test(script.src);\n};\n\nObject.defineProperty(__webpack_require__, 'p', {\n get: (function () {\n var script = getCurrentScript();\n\n var url = script.src.split('/').slice(0, -1).join('/') + '/';\n\n return function() {\n return url;\n };\n })()\n});\n\nif (typeof jsonpScriptSrc !== 'undefined') {\n var __jsonpScriptSrc__ = jsonpScriptSrc;\n jsonpScriptSrc = function(chunkId) {\n var script = getCurrentScript();\n var isLocal = isLocalScript(script);\n\n var src = __jsonpScriptSrc__(chunkId);\n\n if(!isLocal) {\n return src;\n }\n\n var srcFragments = src.split('/');\n var fileFragments = srcFragments.slice(-1)[0].split('.');\n\n fileFragments.splice(1, 0, \"v4_1_0m1774294071\");\n srcFragments.splice(-1, 1, fileFragments.join('.'))\n\n return srcFragments.join('/');\n };\n}\n","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdash_core_components\"] = self[\"webpackChunkdash_core_components\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./button.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./button.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport {ButtonProps} from '../types';\nimport './css/button.css';\n\n/**\n * Similar to dash.html.Button, but with theming and styles applied.\n */\nconst Button = ({\n setProps,\n n_blur = 0,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n n_blur_timestamp = -1,\n n_clicks = 0,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n n_clicks_timestamp = -1,\n type = 'button',\n className,\n children,\n ...props\n}: ButtonProps) => {\n const ctx = window.dash_component_api.useDashContext();\n const isLoading = ctx.useLoading();\n\n return (\n {\n setProps({\n n_blur: n_blur + 1,\n n_blur_timestamp: Date.now(),\n });\n }}\n onClick={() => {\n setProps({\n n_clicks: n_clicks + 1,\n n_clicks_timestamp: Date.now(),\n });\n }}\n type={type}\n {...props}\n >\n {children}\n \n );\n};\n\nexport default Button;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./checklist.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./checklist.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {useMemo} from 'react';\nimport {ChecklistProps, PersistedProps, PersistenceTypes} from '../types';\nimport './css/checklist.css';\n\nimport {sanitizeOptions} from '../utils/optionTypes';\nimport LoadingElement from '../utils/_LoadingElement';\nimport {OptionsList} from '../utils/optionRendering';\n\n/**\n * Checklist is a component that encapsulates several checkboxes.\n * The values and labels of the checklist are specified in the `options`\n * property and the checked items are specified with the `value` property.\n * Each checkbox is rendered as an input with a surrounding label.\n */\nexport default function Checklist({\n className,\n id,\n style,\n setProps,\n inputStyle = {},\n inputClassName = '',\n labelStyle = {},\n labelClassName = '',\n options = [],\n value = [],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n inline = false,\n}: ChecklistProps) {\n const sanitizedOptions = useMemo(() => {\n return sanitizeOptions(options).options;\n }, [options]);\n\n const stylingProps = {\n id,\n className: 'dash-checklist ' + (className ?? ''),\n style,\n optionClassName: inline ? 'dash-checklist-inline' : undefined,\n inputStyle,\n inputClassName,\n labelStyle,\n labelClassName,\n };\n\n return (\n \n {loadingProps => (\n {\n setProps({value: selection});\n }}\n {...stylingProps}\n />\n )}\n \n );\n}\n\nChecklist.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n","/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fak': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/i; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.4\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library =\n/*#__PURE__*/\nfunction () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded$1 = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded$1);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar _excluded = [\"forwardedRef\"];\nfunction FontAwesomeIcon(_ref) {\n var forwardedRef = _ref.forwardedRef,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: forwardedRef\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n}\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar prefix = \"far\";\nvar faAddressBook = {\n prefix: 'far',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"]\n};\nvar faAddressCard = {\n prefix: 'far',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z\"]\n};\nvar faAngry = {\n prefix: 'far',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'far',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'far',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'far',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'far',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z\"]\n};\nvar faBell = {\n prefix: 'far',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBellSlash = {\n prefix: 'far',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBookmark = {\n prefix: 'far',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z\"]\n};\nvar faBuilding = {\n prefix: 'far',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z\"]\n};\nvar faCalendar = {\n prefix: 'far',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z\"]\n};\nvar faCalendarAlt = {\n prefix: 'far',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faCalendarCheck = {\n prefix: 'far',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z\"]\n};\nvar faCalendarMinus = {\n prefix: 'far',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faCalendarPlus = {\n prefix: 'far',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faCalendarTimes = {\n prefix: 'far',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'far',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'far',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'far',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'far',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faChartBar = {\n prefix: 'far',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\"]\n};\nvar faCheckCircle = {\n prefix: 'far',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z\"]\n};\nvar faCheckSquare = {\n prefix: 'far',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\"]\n};\nvar faCircle = {\n prefix: 'far',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\"]\n};\nvar faClipboard = {\n prefix: 'far',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z\"]\n};\nvar faClock = {\n prefix: 'far',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"]\n};\nvar faClone = {\n prefix: 'far',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'far',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z\"]\n};\nvar faComment = {\n prefix: 'far',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"]\n};\nvar faCommentAlt = {\n prefix: 'far',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z\"]\n};\nvar faCommentDots = {\n prefix: 'far',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"]\n};\nvar faComments = {\n prefix: 'far',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z\"]\n};\nvar faCompass = {\n prefix: 'far',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"]\n};\nvar faCopy = {\n prefix: 'far',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"]\n};\nvar faCopyright = {\n prefix: 'far',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\"]\n};\nvar faCreditCard = {\n prefix: 'far',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\"]\n};\nvar faDizzy = {\n prefix: 'far',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z\"]\n};\nvar faDotCircle = {\n prefix: 'far',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"]\n};\nvar faEdit = {\n prefix: 'far',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\"]\n};\nvar faEnvelope = {\n prefix: 'far',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'far',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z\"]\n};\nvar faEye = {\n prefix: 'far',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\"]\n};\nvar faEyeSlash = {\n prefix: 'far',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\"]\n};\nvar faFile = {\n prefix: 'far',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\"]\n};\nvar faFileAlt = {\n prefix: 'far',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\"]\n};\nvar faFileArchive = {\n prefix: 'far',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z\"]\n};\nvar faFileAudio = {\n prefix: 'far',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z\"]\n};\nvar faFileCode = {\n prefix: 'far',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M149.9 349.1l-.2-.2-32.8-28.9 32.8-28.9c3.6-3.2 4-8.8.8-12.4l-.2-.2-17.4-18.6c-3.4-3.6-9-3.7-12.4-.4l-57.7 54.1c-3.7 3.5-3.7 9.4 0 12.8l57.7 54.1c1.6 1.5 3.8 2.4 6 2.4 2.4 0 4.8-1 6.4-2.8l17.4-18.6c3.3-3.5 3.1-9.1-.4-12.4zm220-251.2L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h160v104c0 13.3 10.7 24 24 24h104zM209.6 214c-4.7-1.4-9.5 1.3-10.9 6L144 408.1c-1.4 4.7 1.3 9.6 6 10.9l24.4 7.1c4.7 1.4 9.6-1.4 10.9-6L240 231.9c1.4-4.7-1.3-9.6-6-10.9zm24.5 76.9l.2.2 32.8 28.9-32.8 28.9c-3.6 3.2-4 8.8-.8 12.4l.2.2 17.4 18.6c3.3 3.5 8.9 3.7 12.4.4l57.7-54.1c3.7-3.5 3.7-9.4 0-12.8l-57.7-54.1c-3.5-3.3-9.1-3.2-12.4.4l-17.4 18.6c-3.3 3.5-3.1 9.1.4 12.4z\"]\n};\nvar faFileExcel = {\n prefix: 'far',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z\"]\n};\nvar faFileImage = {\n prefix: 'far',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\"]\n};\nvar faFilePdf = {\n prefix: 'far',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'far',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z\"]\n};\nvar faFileVideo = {\n prefix: 'far',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z\"]\n};\nvar faFileWord = {\n prefix: 'far',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z\"]\n};\nvar faFlag = {\n prefix: 'far',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z\"]\n};\nvar faFlushed = {\n prefix: 'far',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"]\n};\nvar faFolder = {\n prefix: 'far',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z\"]\n};\nvar faFolderOpen = {\n prefix: 'far',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'far',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFrown = {\n prefix: 'far',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\"]\n};\nvar faFrownOpen = {\n prefix: 'far',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z\"]\n};\nvar faFutbol = {\n prefix: 'far',\n iconName: 'futbol',\n icon: [496, 512, [], \"f1e3\", \"M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z\"]\n};\nvar faGem = {\n prefix: 'far',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z\"]\n};\nvar faGrimace = {\n prefix: 'far',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z\"]\n};\nvar faGrin = {\n prefix: 'far',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faGrinAlt = {\n prefix: 'far',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z\"]\n};\nvar faGrinBeam = {\n prefix: 'far',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'far',\n iconName: 'grin-beam-sweat',\n icon: [496, 512, [], \"f583\", \"M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"]\n};\nvar faGrinHearts = {\n prefix: 'far',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z\"]\n};\nvar faGrinSquint = {\n prefix: 'far',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'far',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z\"]\n};\nvar faGrinStars = {\n prefix: 'far',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z\"]\n};\nvar faGrinTears = {\n prefix: 'far',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"]\n};\nvar faGrinTongue = {\n prefix: 'far',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'far',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'far',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z\"]\n};\nvar faGrinWink = {\n prefix: 'far',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"]\n};\nvar faHandLizard = {\n prefix: 'far',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z\"]\n};\nvar faHandPaper = {\n prefix: 'far',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z\"]\n};\nvar faHandPeace = {\n prefix: 'far',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z\"]\n};\nvar faHandPointDown = {\n prefix: 'far',\n iconName: 'hand-point-down',\n icon: [448, 512, [], \"f0a7\", \"M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z\"]\n};\nvar faHandPointLeft = {\n prefix: 'far',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"]\n};\nvar faHandPointRight = {\n prefix: 'far',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"]\n};\nvar faHandPointUp = {\n prefix: 'far',\n iconName: 'hand-point-up',\n icon: [448, 512, [], \"f0a6\", \"M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"]\n};\nvar faHandPointer = {\n prefix: 'far',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z\"]\n};\nvar faHandRock = {\n prefix: 'far',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z\"]\n};\nvar faHandScissors = {\n prefix: 'far',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z\"]\n};\nvar faHandSpock = {\n prefix: 'far',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M501.03053,116.17605c-19.39059-31.50779-51.24406-35.72849-66.31044-35.01756-14.11325-50.81051-62.0038-54.08-70.73816-54.08a74.03091,74.03091,0,0,0-72.23816,58.916l-4.64648,22.66014-13.68357-53.207c-9.09569-35.37107-46.412-64.05074-89.66-53.07223a73.89749,73.89749,0,0,0-55.121,78.94722,73.68273,73.68273,0,0,0-64.8495,94.42181l24.35933,82.19721c-38.24017-7.54492-62.79677,16.18358-68.11512,21.84764a73.6791,73.6791,0,0,0,3.19921,104.19329l91.36509,85.9765A154.164,154.164,0,0,0,220.62279,512h107.4549A127.30079,127.30079,0,0,0,452.3392,413.86139l57.623-241.96272A73.20274,73.20274,0,0,0,501.03053,116.17605Zm-37.7597,44.60544L405.64788,402.74812a79.46616,79.46616,0,0,1-77.57019,61.25972H220.62279a106.34052,106.34052,0,0,1-73.1366-28.998l-91.369-85.98041C31.34381,325.72669,66.61133,288.131,91.39644,311.5392l51.123,48.10739c5.42577,5.10937,13.48239.71679,13.48239-5.82617a246.79914,246.79914,0,0,0-10.17771-70.1523l-36.01362-121.539c-9.7324-32.88279,39.69916-47.27145,49.38664-14.625l31.3437,105.77923c5.59374,18.90428,33.78119,10.71288,28.9648-8.00781L177.06427,80.23662c-8.50389-33.1035,41.43157-45.64646,49.86515-12.83593l47.32609,184.035c4.42773,17.24218,29.16207,16.5039,32.71089-.80468l31.791-154.9706c6.81054-33.1074,57.51748-24.10741,50.11906,11.96288L360.32764,246.78924c-3.72265,18.10936,23.66793,24.63084,28.05659,6.21679L413.185,148.85962C421.1498,115.512,471.14,127.79713,463.27083,160.78149Z\"]\n};\nvar faHandshake = {\n prefix: 'far',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z\"]\n};\nvar faHdd = {\n prefix: 'far',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z\"]\n};\nvar faHeart = {\n prefix: 'far',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\"]\n};\nvar faHospital = {\n prefix: 'far',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\"]\n};\nvar faHourglass = {\n prefix: 'far',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z\"]\n};\nvar faIdBadge = {\n prefix: 'far',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"]\n};\nvar faIdCard = {\n prefix: 'far',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faImage = {\n prefix: 'far',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\"]\n};\nvar faImages = {\n prefix: 'far',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z\"]\n};\nvar faKeyboard = {\n prefix: 'far',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z\"]\n};\nvar faKiss = {\n prefix: 'far',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faKissBeam = {\n prefix: 'far',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'far',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z\"]\n};\nvar faLaugh = {\n prefix: 'far',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"]\n};\nvar faLaughBeam = {\n prefix: 'far',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"]\n};\nvar faLaughSquint = {\n prefix: 'far',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"]\n};\nvar faLaughWink = {\n prefix: 'far',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"]\n};\nvar faLemon = {\n prefix: 'far',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z\"]\n};\nvar faLifeRing = {\n prefix: 'far',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z\"]\n};\nvar faLightbulb = {\n prefix: 'far',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z\"]\n};\nvar faListAlt = {\n prefix: 'far',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\"]\n};\nvar faMap = {\n prefix: 'far',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z\"]\n};\nvar faMeh = {\n prefix: 'far',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"]\n};\nvar faMehBlank = {\n prefix: 'far',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'far',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"]\n};\nvar faMinusSquare = {\n prefix: 'far',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'far',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z\"]\n};\nvar faMoon = {\n prefix: 'far',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\"]\n};\nvar faNewspaper = {\n prefix: 'far',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\"]\n};\nvar faObjectGroup = {\n prefix: 'far',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z\"]\n};\nvar faObjectUngroup = {\n prefix: 'far',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z\"]\n};\nvar faPaperPlane = {\n prefix: 'far',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z\"]\n};\nvar faPauseCircle = {\n prefix: 'far',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z\"]\n};\nvar faPlayCircle = {\n prefix: 'far',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z\"]\n};\nvar faPlusSquare = {\n prefix: 'far',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"]\n};\nvar faQuestionCircle = {\n prefix: 'far',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\"]\n};\nvar faRegistered = {\n prefix: 'far',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z\"]\n};\nvar faSadCry = {\n prefix: 'far',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z\"]\n};\nvar faSadTear = {\n prefix: 'far',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z\"]\n};\nvar faSave = {\n prefix: 'far',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z\"]\n};\nvar faShareSquare = {\n prefix: 'far',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z\"]\n};\nvar faSmile = {\n prefix: 'far',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\"]\n};\nvar faSmileBeam = {\n prefix: 'far',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z\"]\n};\nvar faSmileWink = {\n prefix: 'far',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z\"]\n};\nvar faSnowflake = {\n prefix: 'far',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z\"]\n};\nvar faSquare = {\n prefix: 'far',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\"]\n};\nvar faStar = {\n prefix: 'far',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z\"]\n};\nvar faStarHalf = {\n prefix: 'far',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z\"]\n};\nvar faStickyNote = {\n prefix: 'far',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z\"]\n};\nvar faStopCircle = {\n prefix: 'far',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z\"]\n};\nvar faSun = {\n prefix: 'far',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\"]\n};\nvar faSurprise = {\n prefix: 'far',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faThumbsDown = {\n prefix: 'far',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\"]\n};\nvar faThumbsUp = {\n prefix: 'far',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"]\n};\nvar faTimesCircle = {\n prefix: 'far',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\"]\n};\nvar faTired = {\n prefix: 'far',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z\"]\n};\nvar faTrashAlt = {\n prefix: 'far',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\"]\n};\nvar faUser = {\n prefix: 'far',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"]\n};\nvar faUserCircle = {\n prefix: 'far',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z\"]\n};\nvar faWindowClose = {\n prefix: 'far',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z\"]\n};\nvar faWindowMaximize = {\n prefix: 'far',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z\"]\n};\nvar faWindowMinimize = {\n prefix: 'far',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faWindowRestore = {\n prefix: 'far',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z\"]\n};\nvar _iconsCache = {\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAngry: faAngry,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faBell: faBell,\n faBellSlash: faBellSlash,\n faBookmark: faBookmark,\n faBuilding: faBuilding,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarTimes: faCalendarTimes,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faChartBar: faChartBar,\n faCheckCircle: faCheckCircle,\n faCheckSquare: faCheckSquare,\n faCircle: faCircle,\n faClipboard: faClipboard,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentDots: faCommentDots,\n faComments: faComments,\n faCompass: faCompass,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCreditCard: faCreditCard,\n faDizzy: faDizzy,\n faDotCircle: faDotCircle,\n faEdit: faEdit,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEye: faEye,\n faEyeSlash: faEyeSlash,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCode: faFileCode,\n faFileExcel: faFileExcel,\n faFileImage: faFileImage,\n faFilePdf: faFilePdf,\n faFilePowerpoint: faFilePowerpoint,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFlag: faFlag,\n faFlushed: faFlushed,\n faFolder: faFolder,\n faFolderOpen: faFolderOpen,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFutbol: faFutbol,\n faGem: faGem,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faHandLizard: faHandLizard,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSpock: faHandSpock,\n faHandshake: faHandshake,\n faHdd: faHdd,\n faHeart: faHeart,\n faHospital: faHospital,\n faHourglass: faHourglass,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faImage: faImage,\n faImages: faImages,\n faKeyboard: faKeyboard,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLemon: faLemon,\n faLifeRing: faLifeRing,\n faLightbulb: faLightbulb,\n faListAlt: faListAlt,\n faMap: faMap,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMinusSquare: faMinusSquare,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoon: faMoon,\n faNewspaper: faNewspaper,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faPaperPlane: faPaperPlane,\n faPauseCircle: faPauseCircle,\n faPlayCircle: faPlayCircle,\n faPlusSquare: faPlusSquare,\n faQuestionCircle: faQuestionCircle,\n faRegistered: faRegistered,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSave: faSave,\n faShareSquare: faShareSquare,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmileWink: faSmileWink,\n faSnowflake: faSnowflake,\n faSquare: faSquare,\n faStar: faStar,\n faStarHalf: faStarHalf,\n faStickyNote: faStickyNote,\n faStopCircle: faStopCircle,\n faSun: faSun,\n faSurprise: faSurprise,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faTimesCircle: faTimesCircle,\n faTired: faTired,\n faTrashAlt: faTrashAlt,\n faUser: faUser,\n faUserCircle: faUserCircle,\n faWindowClose: faWindowClose,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore\n};\n\nexport { _iconsCache as far, prefix, faAddressBook, faAddressCard, faAngry, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faBell, faBellSlash, faBookmark, faBuilding, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faChartBar, faCheckCircle, faCheckSquare, faCircle, faClipboard, faClock, faClone, faClosedCaptioning, faComment, faCommentAlt, faCommentDots, faComments, faCompass, faCopy, faCopyright, faCreditCard, faDizzy, faDotCircle, faEdit, faEnvelope, faEnvelopeOpen, faEye, faEyeSlash, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileExcel, faFileImage, faFilePdf, faFilePowerpoint, faFileVideo, faFileWord, faFlag, faFlushed, faFolder, faFolderOpen, faFontAwesomeLogoFull, faFrown, faFrownOpen, faFutbol, faGem, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faHandLizard, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSpock, faHandshake, faHdd, faHeart, faHospital, faHourglass, faIdBadge, faIdCard, faImage, faImages, faKeyboard, faKiss, faKissBeam, faKissWinkHeart, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLemon, faLifeRing, faLightbulb, faListAlt, faMap, faMeh, faMehBlank, faMehRollingEyes, faMinusSquare, faMoneyBillAlt, faMoon, faNewspaper, faObjectGroup, faObjectUngroup, faPaperPlane, faPauseCircle, faPlayCircle, faPlusSquare, faQuestionCircle, faRegistered, faSadCry, faSadTear, faSave, faShareSquare, faSmile, faSmileBeam, faSmileWink, faSnowflake, faSquare, faStar, faStarHalf, faStickyNote, faStopCircle, faSun, faSurprise, faThumbsDown, faThumbsUp, faTimesCircle, faTired, faTrashAlt, faUser, faUserCircle, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore };\n","import React, {Component} from 'react'; // eslint-disable-line no-unused-vars\nimport PropTypes from 'prop-types';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faCopy, faCheckCircle} from '@fortawesome/free-regular-svg-icons';\n\nimport LoadingElement from '../utils/LoadingElement';\n\nconst clipboardAPI = navigator.clipboard;\n\nfunction wait(ms) {\n return new Promise(r => setTimeout(r, ms));\n}\n\n/**\n * The Clipboard component copies text to the clipboard\n */\n\nexport default class Clipboard extends React.Component {\n static contextType = window.dash_component_api.DashContext;\n\n constructor(props) {\n super(props);\n this.copyToClipboard = this.copyToClipboard.bind(this);\n this.onClickHandler = this.onClickHandler.bind(this);\n this.copySuccess = this.copySuccess.bind(this);\n this.getTargetText = this.getTargetText.bind(this);\n this.loading = this.loading.bind(this);\n this.stringifyId = this.stringifyId.bind(this);\n this.state = {\n copied: false,\n };\n }\n\n onClickHandler() {\n this.props.setProps({n_clicks: this.props.n_clicks + 1});\n }\n\n componentDidUpdate(prevProps) {\n // If the clicks has not changed, do nothing\n if (\n !this.props.n_clicks ||\n this.props.n_clicks === prevProps.n_clicks\n ) {\n return;\n }\n // If the clicks has changed, copy to clipboard\n this.copyToClipboard();\n }\n\n // stringifies object ids used in pattern matching callbacks\n stringifyId(id) {\n if (typeof id !== 'object') {\n return id;\n }\n const stringifyVal = v => (v && v.wild) || JSON.stringify(v);\n const parts = Object.keys(id)\n .sort()\n .map(k => JSON.stringify(k) + ':' + stringifyVal(id[k]));\n return '{' + parts.join(',') + '}';\n }\n\n async copySuccess(content, htmlContent) {\n const showCopiedIcon = 1000;\n if (htmlContent) {\n const blobHtml = new Blob([htmlContent], {type: 'text/html'});\n const blobText = new Blob([content ?? htmlContent], {\n type: 'text/plain',\n });\n const data = [\n new ClipboardItem({\n ['text/plain']: blobText,\n ['text/html']: blobHtml,\n }),\n ];\n await navigator.clipboard.write(data);\n } else {\n await clipboardAPI.writeText(content);\n }\n this.setState({copied: true});\n await wait(showCopiedIcon);\n this.setState({copied: false});\n }\n\n getTargetText() {\n // get the inner text. If none, use the content of the value param\n const id = this.stringifyId(this.props.target_id);\n const target = document.getElementById(id);\n if (!target) {\n throw new Error(\n 'Clipboard copy failed: no element found for target_id ' +\n this.props.target_id\n );\n }\n let content = target.innerText;\n if (!content) {\n content = target.value;\n content = content === undefined ? null : content;\n }\n return content;\n }\n\n async loading() {\n while (this.context.isLoading()) {\n await wait(100);\n }\n }\n\n async copyToClipboard() {\n let content;\n let htmlContent;\n if (this.props.target_id) {\n content = this.getTargetText();\n } else {\n await wait(100); // gives time for callback to start\n await this.loading();\n content = this.props.content;\n htmlContent = this.props.html_content;\n }\n if (content || htmlContent) {\n this.copySuccess(content, htmlContent);\n }\n }\n\n componentDidMount() {\n if (!clipboardAPI) {\n console.warn('Copy to clipboard not available with this browser'); // eslint-disable-line no-console\n }\n }\n\n render() {\n const {id, title, className, style, children, copied_children} =\n this.props;\n\n const isCopied = this.state.copied;\n\n const button_children = isCopied\n ? copied_children ?? \n : children ?? ;\n\n return clipboardAPI ? (\n \n {button_children}\n \n ) : null;\n }\n}\n\nClipboard.defaultProps = {\n content: null,\n html_content: null,\n target_id: null,\n n_clicks: 0,\n};\n\nClipboard.propTypes = {\n /**\n * The ID used to identify this component.\n */\n id: PropTypes.string,\n\n /**\n * Children rendered inside the Clipboard button before copying. By default, a copy icon.\n */\n children: PropTypes.node,\n\n /**\n * Children rendered inside the Clipboard button after the value has been copied. By default, a check icon.\n */\n copied_children: PropTypes.node,\n\n /**\n * The id of target component containing text to copy to the clipboard.\n * The inner text of the `children` prop will be copied to the clipboard. If none, then the text from the\n * `value` prop will be copied.\n */\n target_id: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * The text to be copied to the clipboard if the `target_id` is None.\n */\n content: PropTypes.string,\n\n /**\n * The number of times Clipboard button was clicked\n */\n n_clicks: PropTypes.number,\n\n /**\n * The clipboard html text be copied to the clipboard if the `target_id` is None.\n */\n html_content: PropTypes.string,\n\n /**\n * The text shown as a tooltip when hovering over the copy icon.\n */\n title: PropTypes.string,\n\n /**\n * The icon's styles\n */\n style: PropTypes.object,\n\n /**\n * The class name of the icon element\n */\n className: PropTypes.string,\n\n /**\n * Dash-assigned callback that gets fired when the value changes.\n */\n setProps: PropTypes.func,\n};\n","import PropTypes from 'prop-types';\nimport {Component} from 'react';\n\n/**\n * ConfirmDialog is used to display the browser's native \"confirm\" modal,\n * with an optional message and two buttons (\"OK\" and \"Cancel\").\n * This ConfirmDialog can be used in conjunction with buttons when the user\n * is performing an action that should require an extra step of verification.\n */\nexport default class ConfirmDialog extends Component {\n componentDidUpdate(prevProps) {\n this._update(!prevProps.displayed && this.props.displayed);\n }\n\n componentDidMount() {\n this._update(this.props.displayed);\n }\n\n _update(shouldTriggerDisplay) {\n const {message, setProps, cancel_n_clicks, submit_n_clicks} =\n this.props;\n\n if (shouldTriggerDisplay) {\n new Promise(resolve => resolve(window.confirm(message))).then(\n result => {\n if (result) {\n setProps({\n submit_n_clicks: submit_n_clicks + 1,\n submit_n_clicks_timestamp: Date.now(),\n displayed: false,\n });\n } else {\n setProps({\n cancel_n_clicks: cancel_n_clicks + 1,\n cancel_n_clicks_timestamp: Date.now(),\n displayed: false,\n });\n }\n }\n );\n }\n }\n\n render() {\n return null;\n }\n}\n\nConfirmDialog.defaultProps = {\n submit_n_clicks: 0,\n submit_n_clicks_timestamp: -1,\n cancel_n_clicks: 0,\n cancel_n_clicks_timestamp: -1,\n};\n\nConfirmDialog.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string,\n\n /**\n * Message to show in the popup.\n */\n message: PropTypes.string,\n /**\n * Number of times the submit button was clicked\n */\n submit_n_clicks: PropTypes.number,\n /**\n * Last time the submit button was clicked.\n */\n submit_n_clicks_timestamp: PropTypes.number,\n /**\n * Number of times the popup was canceled.\n */\n cancel_n_clicks: PropTypes.number,\n /**\n * Last time the cancel button was clicked.\n */\n cancel_n_clicks_timestamp: PropTypes.number,\n /**\n * Set to true to send the ConfirmDialog.\n */\n displayed: PropTypes.bool,\n\n /**\n * Dash-assigned callback that gets fired when the value changes.\n */\n setProps: PropTypes.func,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ConfirmDialog from './ConfirmDialog.react';\nimport LoadingElement from '../utils/LoadingElement';\n\n/**\n * A wrapper component that will display a confirmation dialog\n * when its child component has been clicked on.\n *\n * For example:\n * ```\n * dcc.ConfirmDialogProvider(\n * html.Button('click me', id='btn'),\n * message='Danger - Are you sure you want to continue.'\n * id='confirm')\n * ```\n */\nexport default class ConfirmDialogProvider extends React.Component {\n render() {\n const {displayed, id, setProps, children} = this.props;\n\n // Will lose the previous onClick of the child\n const wrapClick = child =>\n React.cloneElement(child, {\n onClick: () => setProps({displayed: true}),\n });\n\n return (\n \n {Array.isArray(children)\n ? children.map(wrapClick)\n : wrapClick(children)}\n \n \n );\n }\n}\n\nConfirmDialogProvider.defaultProps = {\n submit_n_clicks: 0,\n submit_n_clicks_timestamp: -1,\n cancel_n_clicks: 0,\n cancel_n_clicks_timestamp: -1,\n};\n\nConfirmDialogProvider.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string,\n\n /**\n * Message to show in the popup.\n */\n message: PropTypes.string,\n /**\n * Number of times the submit was clicked\n */\n submit_n_clicks: PropTypes.number,\n /**\n * Last time the submit button was clicked.\n */\n submit_n_clicks_timestamp: PropTypes.number,\n /**\n * Number of times the popup was canceled.\n */\n cancel_n_clicks: PropTypes.number,\n /**\n * Last time the cancel button was clicked.\n */\n cancel_n_clicks_timestamp: PropTypes.number,\n /**\n * Is the modal currently displayed.\n */\n displayed: PropTypes.bool,\n\n /**\n * Dash-assigned callback that gets fired when the value changes.\n */\n setProps: PropTypes.func,\n /**\n * The children to hijack clicks from and display the popup.\n */\n children: PropTypes.any,\n};\n","export default () =>\n import(\n /* webpackChunkName: \"datepicker\" */ '../../fragments/DatePickerRange'\n );\n","import {format, startOfDay, parseISO} from 'date-fns';\nimport {isNil} from 'ramda';\n\nexport default {\n extract: (propValue?: string) => {\n if (isNil(propValue)) {\n return propValue;\n }\n\n const parsed = parseISO(propValue);\n return format(startOfDay(parsed), 'yyyy-MM-dd');\n },\n apply: (storedValue?: string) => storedValue,\n};\n","import React, {lazy, Suspense} from 'react';\nimport datePickerRange from '../utils/LazyLoader/datePickerRange';\nimport transformDate from '../utils/DatePickerPersistence';\nimport {DatePickerRangeProps, PersistedProps, PersistenceTypes} from '../types';\n\nconst RealDatePickerRange = lazy(datePickerRange);\n\n/**\n * DatePickerRange is designed for selecting a timespan across multiple days off\n * of a calendar.\n *\n * The DatePicker integrates well with the Python datetime module with the\n * startDate and endDate being returned in a string format suitable for\n * creating datetime objects.\n *\n */\nexport default function DatePickerRange({\n calendar_orientation = 'horizontal',\n is_RTL = false,\n // eslint-disable-next-line no-magic-numbers\n day_size = 34,\n with_portal = false,\n with_full_screen_portal = false,\n first_day_of_week = 0,\n number_of_months_shown = 2,\n stay_open_on_select = false,\n reopen_calendar_on_clear = false,\n show_outside_days = false,\n clearable = false,\n disabled = false,\n updatemode = 'singledate',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.start_date, PersistedProps.end_date],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n disabled_days = [],\n ...props\n}: DatePickerRangeProps) {\n return (\n \n \n \n );\n}\n\nDatePickerRange.dashPersistence = {\n persisted_props: [PersistedProps.start_date, PersistedProps.end_date],\n persistence_type: PersistenceTypes.local,\n};\n\nDatePickerRange.persistenceTransforms = {\n end_date: transformDate,\n start_date: transformDate,\n};\n","export default () =>\n import(\n /* webpackChunkName: \"datepicker\" */ '../../fragments/DatePickerSingle'\n );\n","import React, {lazy, Suspense} from 'react';\nimport datePickerSingle from '../utils/LazyLoader/datePickerSingle';\nimport transformDate from '../utils/DatePickerPersistence';\nimport {\n DatePickerSingleProps,\n PersistedProps,\n PersistenceTypes,\n} from '../types';\n\nconst RealDatePickerSingle = lazy(datePickerSingle);\n\n/**\n * DatePickerSingle is a tailor made component designed for selecting\n * a single day off of a calendar.\n *\n * The DatePicker integrates well with the Python datetime module with the\n * startDate and endDate being returned in a string format suitable for\n * creating datetime objects.\n */\nexport default function DatePickerSingle({\n placeholder = 'Select Date',\n calendar_orientation = 'horizontal',\n is_RTL = false,\n // eslint-disable-next-line no-magic-numbers\n day_size = 34,\n with_portal = false,\n with_full_screen_portal = false,\n show_outside_days = true,\n first_day_of_week = 0,\n number_of_months_shown = 1,\n stay_open_on_select = false,\n reopen_calendar_on_clear = false,\n clearable = false,\n disabled = false,\n disabled_days = [],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.date],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n ...props\n}: DatePickerSingleProps) {\n return (\n \n \n \n );\n}\n\nDatePickerSingle.dashPersistence = {\n persisted_props: [PersistedProps.date],\n persistence_type: PersistenceTypes.local,\n};\n\nDatePickerSingle.persistenceTransforms = {\n date: transformDate,\n};\n","import PropTypes from 'prop-types';\nimport {Component} from 'react';\nimport {toByteArray} from 'base64-js';\nimport {saveAs} from 'file-saver';\n\nconst getValue = (src, fallback, key) =>\n key in src ? src[key] : fallback[key];\n\n/**\n * The Download component opens a download dialog when the data property changes.\n */\nexport default class Download extends Component {\n componentDidUpdate(prevProps) {\n const {data} = this.props;\n // If the data hasn't changed, do nothing.\n if (!data || data === prevProps.data) {\n return;\n }\n // Extract options from data if provided, fallback to props.\n const type = getValue(data, this.props, 'type');\n const base64 = getValue(data, this.props, 'base64');\n // Invoke the download using a Blob.\n const content = base64 ? toByteArray(data.content) : data.content;\n const blob = new Blob([content], {type: type});\n saveAs(blob, data.filename);\n }\n\n render() {\n return null;\n }\n}\n\nDownload.propTypes = {\n /**\n * The ID of this component, used to identify dash components in callbacks.\n */\n id: PropTypes.string,\n\n /**\n * On change, a download is invoked.\n */\n data: PropTypes.exact({\n /**\n * Suggested filename in the download dialogue.\n */\n filename: PropTypes.string.isRequired,\n /**\n * File content.\n */\n content: PropTypes.string.isRequired,\n /**\n * Set to true, when data is base64 encoded.\n */\n base64: PropTypes.bool,\n /**\n * Blob type, usually a MIME-type.\n */\n type: PropTypes.string,\n }),\n\n /**\n * Default value for base64, used when not set as part of the data property.\n */\n base64: PropTypes.bool,\n\n /**\n * Default value for type, used when not set as part of the data property.\n */\n type: PropTypes.string,\n\n /**\n * Dash-supplied function for updating props.\n */\n setProps: PropTypes.func,\n};\n\nDownload.defaultProps = {\n type: 'text/plain',\n base64: false,\n};\n","import {Component} from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * The CurrentLocation component gets geolocation of the device from the web browser. See more info here:\n * https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API\n */\n\nexport default class Geolocation extends Component {\n constructor(props) {\n super(props);\n this.success = this.success.bind(this);\n this.error = this.error.bind(this);\n }\n updatePosition() {\n if (this.props.update_now) {\n this.props.setProps({\n update_now: false,\n });\n }\n if (!navigator.geolocation) {\n this.error({\n code: 999,\n message: 'Your browser does not support Geolocation',\n });\n } else {\n const positionOptions = {\n enableHighAccuracy: this.props.high_accuracy,\n maximumAge: this.props.maximum_age,\n timeout: this.props.timeout,\n };\n\n navigator.geolocation.getCurrentPosition(\n this.success,\n this.error,\n positionOptions\n );\n }\n }\n\n componentDidMount() {\n this.updatePosition();\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.update_now ||\n prevProps.maximum_age !== this.props.maximum_age ||\n prevProps.timeout !== this.props.timeout ||\n prevProps.high_accuracy !== this.props.high_accuracy\n ) {\n this.updatePosition();\n }\n }\n\n success(pos) {\n const crd = pos.coords;\n const position_obj = {\n lat: crd.latitude ?? null,\n lon: crd.longitude ?? null,\n accuracy: crd.accuracy ?? null,\n alt: crd.altitude ?? null,\n alt_accuracy: crd.altitudeAccuracy ?? null,\n speed: crd.speed ?? null,\n heading: crd.heading ?? null,\n };\n\n this.props.setProps({\n local_date: new Date(pos.timestamp).toLocaleString(),\n timestamp: pos.timestamp,\n position: position_obj,\n position_error: null,\n });\n }\n\n error(err) {\n if (this.props.show_alert) {\n alert(`ERROR(${err.code}): ${err.message}`);\n }\n this.props.setProps({\n position: null,\n position_error: {\n code: err.code,\n message: err.message,\n },\n });\n }\n\n render() {\n return null;\n }\n}\n\nGeolocation.defaultProps = {\n update_now: false,\n high_accuracy: false,\n position_error: null,\n maximum_age: 0,\n timeout: Infinity,\n show_alert: false,\n};\n\nGeolocation.propTypes = {\n /**\n * The ID used to identify this component in Dash callbacks.\n */\n id: PropTypes.string,\n\n /**\n * The local date and time when the device position was updated.\n * Format: MM/DD/YYYY, hh:mm:ss p where p is AM or PM\n */\n local_date: PropTypes.string,\n\n /**\n * The Unix timestamp from when the position was updated\n */\n timestamp: PropTypes.number,\n\n /**\n * The position of the device. `lat`, `lon`, and `accuracy` will always be returned. The other data will be included\n * when available, otherwise it will be NaN.\n *\n * `lat` is latitude in degrees.\n * `lon` is longitude in degrees.\n * `accuracy` is the accuracy of the lat/lon in meters. *\n *\n * `alt` is altitude above mean sea level in meters.\n * `alt_accuracy` is the accuracy of the altitude in meters.\n * `heading` is the compass heading in degrees.\n * `speed` is the speed in meters per second.\n *\n */\n position: PropTypes.shape({\n lat: PropTypes.number,\n lon: PropTypes.number,\n accuracy: PropTypes.number,\n alt: PropTypes.number,\n alt_accuracy: PropTypes.number,\n heading: PropTypes.number,\n speed: PropTypes.number,\n }),\n\n /**\n * Position error\n */\n position_error: PropTypes.shape({\n code: PropTypes.number,\n message: PropTypes.string,\n }),\n\n /**\n * If true, error messages will be displayed as an alert\n */\n show_alert: PropTypes.bool,\n\n /**\n * Forces a one-time update of the position data. If set to True in a callback, the browser\n * will update the position data and reset update_now back to False. This can, for example, be used to update the\n * position with a button or an interval timer.\n */\n update_now: PropTypes.bool,\n\n /**\n * If true and if the device is able to provide a more accurate position,\n * it will do so. Note that this can result in slower response times or increased power consumption (with a GPS\n * chip on a mobile device for example). If false (the default value), the device can save resources by\n * responding more quickly and/or using less power.\n */\n high_accuracy: PropTypes.bool,\n\n /**\n * The maximum age in milliseconds of a possible cached position that is acceptable to return. If set to 0,\n * it means that the device cannot use a cached position and must attempt to retrieve the real current position.\n * If set to Infinity the device must return a cached position regardless of its age. Default: 0.\n */\n maximum_age: PropTypes.number,\n\n /**\n * The maximum length of time (in milliseconds) the device is allowed to take in order to return a position.\n * The default value is Infinity, meaning that data will not be return until the position is available.\n */\n timeout: PropTypes.number,\n\n /**\n * Dash-assigned callback that should be called to report property changes\n * to Dash, to make them available for callbacks.\n */\n setProps: PropTypes.func,\n};\n","import PropTypes from 'prop-types';\nimport React, {Component} from 'react'; // eslint-disable-line no-unused-vars\n\n/**\n * A component that repeatedly increments a counter `n_intervals`\n * with a fixed time delay between each increment.\n * Interval is good for triggering a component on a recurring basis.\n * The time delay is set with the property \"interval\" in milliseconds.\n */\nexport default class Interval extends Component {\n constructor(props) {\n super(props);\n this.intervalId = null;\n this.reportInterval = this.reportInterval.bind(this);\n this.handleTimer = this.handleTimer.bind(this);\n }\n\n handleTimer(props) {\n // Check if timer should stop or shouldn't even start\n if (\n props.max_intervals === 0 ||\n props.disabled ||\n (props.n_intervals >= props.max_intervals &&\n props.max_intervals !== -1)\n ) {\n // stop existing timer\n if (this.intervalId) {\n this.clearTimer();\n }\n // and don't start a timer\n return;\n }\n\n // keep the existing timer running\n if (this.intervalId) {\n return;\n }\n\n // it hasn't started yet (& it should start)\n this.intervalId = window.setInterval(\n this.reportInterval,\n props.interval\n );\n }\n\n resetTimer(props) {\n this.clearTimer();\n this.handleTimer(props);\n }\n\n clearTimer() {\n window.clearInterval(this.intervalId);\n this.intervalId = null;\n }\n\n reportInterval() {\n const {setProps, n_intervals} = this.props;\n setProps({n_intervals: n_intervals + 1});\n }\n\n componentDidMount() {\n this.handleTimer(this.props);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.interval !== this.props.interval) {\n this.resetTimer(nextProps);\n } else {\n this.handleTimer(nextProps);\n }\n }\n\n componentWillUnmount() {\n this.clearTimer();\n }\n\n render() {\n return null;\n }\n}\n\nInterval.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string,\n /**\n * This component will increment the counter `n_intervals` every\n * `interval` milliseconds\n */\n interval: PropTypes.number,\n\n /**\n * If True, the counter will no longer update\n */\n disabled: PropTypes.bool,\n\n /**\n * Number of times the interval has passed\n */\n n_intervals: PropTypes.number,\n\n /**\n * Number of times the interval will be fired.\n * If -1, then the interval has no limit (the default)\n * and if 0 then the interval stops running.\n */\n max_intervals: PropTypes.number,\n\n /**\n * Dash assigned callback\n */\n setProps: PropTypes.func,\n};\n\nInterval.defaultProps = {\n interval: 1000,\n n_intervals: 0,\n max_intervals: -1,\n};\n","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\n\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs, R.keys, R.values\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\nvar toPairs = /*#__PURE__*/_curry1(function toPairs(obj) {\n var pairs = [];\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n return pairs;\n});\nexport default toPairs;","import _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XAny = /*#__PURE__*/function () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n return this.xf['@@transducer/result'](result);\n };\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n return result;\n };\n return XAny;\n}();\nexport default function _xany(f) {\n return function (xf) {\n return new XAny(f, xf);\n };\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xany from \"./internal/_xany.js\";\n\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\nvar any = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}));\nexport default any;","import React from 'react';\nimport {DebugTitleProps} from '../types';\n\nexport default function DebugTitle({id, property}: DebugTitleProps) {\n return (\n

\n Loading #{id}\n 's {property}\n

\n );\n}\n","import React, {useState, useRef, useMemo, useEffect} from 'react';\nimport {equals, concat, includes, toPairs, any} from 'ramda';\n\nimport GraphSpinner from '../fragments/Loading/spinners/GraphSpinner';\nimport DefaultSpinner from '../fragments/Loading/spinners/DefaultSpinner';\nimport CubeSpinner from '../fragments/Loading/spinners/CubeSpinner';\nimport CircleSpinner from '../fragments/Loading/spinners/CircleSpinner';\nimport DotSpinner from '../fragments/Loading/spinners/DotSpinner';\nimport {LoadingProps} from 'src/types';\nimport {DebugTitleProps} from '../fragments/Loading/types';\nimport {DashLayoutPath} from '@dash-renderer/types/component';\n\nconst spinnerComponentOptions = {\n graph: GraphSpinner,\n cube: CubeSpinner,\n circle: CircleSpinner,\n dot: DotSpinner,\n default: DefaultSpinner,\n} as const;\n\nconst getSpinner = (spinnerType: keyof typeof spinnerComponentOptions) =>\n spinnerComponentOptions[spinnerType];\n\nconst coveringSpinner: React.CSSProperties = {\n visibility: 'visible',\n position: 'absolute',\n top: '0',\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n};\n\ntype LoadingState = {\n loading: Record;\n};\n\nconst loadingSelector =\n (\n componentPath: DashLayoutPath,\n targetComponents?: Record\n ) =>\n (state: LoadingState): DebugTitleProps[] | null => {\n let stringPath = JSON.stringify(componentPath);\n // Remove the last ] for easy match and add `,` to make sure only children\n // trigger the loading. See issue: https://github.com/plotly/dash/issues/3276\n stringPath = stringPath.substring(0, stringPath.length - 1) + ',';\n const loadingChildren = toPairs(state.loading).reduce(\n (acc, [path, load]) => {\n if (path.startsWith(stringPath) && load.length) {\n if (\n targetComponents &&\n !any((l: DebugTitleProps) => {\n const target = targetComponents[l.id];\n if (!target) {\n return false;\n }\n if (target === '*') {\n return true;\n }\n if (Array.isArray(target)) {\n return includes(l.property, target);\n }\n return l.property === target;\n }, load)\n ) {\n return acc;\n }\n return concat(acc, load);\n }\n return acc;\n },\n [] as DebugTitleProps[]\n );\n if (loadingChildren.length) {\n return loadingChildren;\n }\n return null;\n };\n\nfunction Loading({\n children,\n display = 'auto',\n color = 'var(--Dash-Fill-Interactive-Strong)',\n id,\n className,\n style,\n parent_className,\n parent_style,\n overlay_style,\n fullscreen,\n debug,\n show_initially = true,\n type: spinnerType = 'default',\n delay_hide = 0,\n delay_show = 0,\n target_components,\n custom_spinner,\n}: LoadingProps) {\n const ctx = window.dash_component_api.useDashContext();\n\n const loading = ctx.useSelector(\n loadingSelector(ctx.componentPath, target_components),\n equals\n );\n\n const [showSpinner, setShowSpinner] = useState(show_initially);\n const dismissTimer = useRef();\n const showTimer = useRef();\n\n const containerStyle: React.CSSProperties = useMemo(() => {\n if (showSpinner) {\n return {visibility: 'hidden', ...overlay_style, ...parent_style};\n }\n return parent_style ?? {};\n }, [showSpinner, parent_style]);\n\n useEffect(() => {\n if (display === 'show' || display === 'hide') {\n setShowSpinner(display === 'show');\n return;\n }\n\n if (loading) {\n // if component is currently loading and there's a dismiss timer active\n // we need to clear it.\n if (dismissTimer.current) {\n dismissTimer.current = window.clearTimeout(\n dismissTimer.current\n );\n }\n // if component is currently loading but the spinner is not showing and\n // there is no timer set to show, then set a timeout to show\n if (!showSpinner && !showTimer.current) {\n showTimer.current = window.setTimeout(() => {\n setShowSpinner(true);\n showTimer.current = undefined;\n }, delay_show);\n }\n } else {\n // if component is not currently loading and there's a show timer\n // active we need to clear it\n if (showTimer.current) {\n showTimer.current = window.clearTimeout(showTimer.current);\n }\n // if component is not currently loading and the spinner is showing and\n // there's no timer set to dismiss it, then set a timeout to hide it\n if (showSpinner && !dismissTimer.current) {\n dismissTimer.current = window.setTimeout(() => {\n setShowSpinner(false);\n dismissTimer.current = undefined;\n }, delay_hide);\n }\n }\n }, [delay_hide, delay_show, loading, display, showSpinner]);\n\n const Spinner = getSpinner(spinnerType);\n\n return (\n \n
\n {children}\n
\n
\n {showSpinner &&\n (custom_spinner || (\n \n ))}\n
\n
\n );\n}\n\nexport default Loading;\n","import React from 'react';\nimport DebugTitle from './DebugTitle';\nimport {SpinnerProps} from '../types';\n\nconst GraphSpinner = ({\n status,\n fullscreen,\n debug,\n className,\n style,\n}: SpinnerProps) => {\n let debugTitle;\n if (debug && status) {\n debugTitle = status.map((s, i) => );\n }\n let spinnerClass = fullscreen ? 'dash-spinner-container' : '';\n if (className) {\n spinnerClass += ` ${className}`;\n }\n return (\n
\n
\n {debugTitle}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default GraphSpinner;\n","import React from 'react';\nimport DebugTitle from './DebugTitle';\nimport {SpinnerProps} from '../types';\n\nconst CubeSpinner = ({\n status,\n color,\n fullscreen,\n debug,\n className,\n style,\n}: SpinnerProps) => {\n let debugTitle;\n if (debug && status) {\n debugTitle = status.map((s, i) => );\n }\n let spinnerClass = fullscreen ? 'dash-spinner-container' : '';\n if (className) {\n spinnerClass += ` ${className}`;\n }\n /* eslint-disable no-magic-numbers */\n return (\n
\n {debugTitle}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default CubeSpinner;\n","import React from 'react';\nimport DebugTitle from './DebugTitle';\nimport {SpinnerProps} from '../types';\n\n/**\n * Spinner created by Tobias Ahlin, https://github.com/tobiasahlin/SpinKit\n */\nconst CircleSpinner = ({\n status,\n color,\n fullscreen,\n debug,\n className,\n style,\n}: SpinnerProps) => {\n let debugTitle;\n if (debug && status) {\n debugTitle = status.map((s, i) => );\n }\n let spinnerClass = fullscreen ? 'dash-spinner-container' : '';\n if (className) {\n spinnerClass += ` ${className}`;\n }\n return (\n
\n {debugTitle}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default CircleSpinner;\n","import React from 'react';\nimport DebugTitle from './DebugTitle';\nimport {SpinnerProps} from '../types';\n\n/**\n * Spinner created by Tobias Ahlin, https://github.com/tobiasahlin/SpinKit\n */\nconst DotSpinner = ({\n status,\n color,\n fullscreen,\n debug,\n className,\n style,\n}: SpinnerProps) => {\n let debugTitle;\n if (debug && status) {\n debugTitle = status.map((s, i) => );\n }\n let spinnerClass = fullscreen ? 'dash-spinner-container' : '';\n if (className) {\n spinnerClass += ` ${className}`;\n }\n return (\n
\n {debugTitle}\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default DotSpinner;\n","import React from 'react';\nimport DebugTitle from './DebugTitle';\nimport {SpinnerProps} from '../types';\n\n/**\n * Spinner created by Tobias Ahlin, https://github.com/tobiasahlin/SpinKit\n */\nconst DefaultSpinner = ({\n status,\n color,\n fullscreen,\n debug,\n className,\n style,\n}: SpinnerProps) => {\n let debugTitle;\n if (debug && status) {\n debugTitle = status.map((s, i) => );\n }\n let spinnerClass = fullscreen ? 'dash-spinner-container' : '';\n if (className) {\n spinnerClass += ` ${className}`;\n }\n return (\n
\n {debugTitle}\n
\n
\n
\n
\n
\n
\n
\n \n
\n );\n};\n\nexport default DefaultSpinner;\n","import {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {type} from 'ramda';\n\nimport {History} from '@plotly/dash-component-plugins';\n\n/**\n * Update and track the current window.location object through the window.history state.\n * Use in conjunction with the `dash_core_components.Link` component to make apps with multiple pages.\n */\nexport default class Location extends Component {\n constructor(props) {\n super(props);\n this.updateLocation = this.updateLocation.bind(this);\n this.onLocationChange = this.onLocationChange.bind(this);\n }\n\n updateLocation(props) {\n const {hash, href, pathname, refresh, search, setProps} = props;\n\n // Keep track of props relating to window.location that may need to be updated via setProps\n const propsToSet = {};\n\n /**\n * Check if the field exists in props. If the prop with \"fieldName\" is not defined,\n * then it was not set by the user and needs to be equal to the value in window.location.\n * This only happens on page load (since props will no longer be undefined after componentDidMount).\n *\n * @param {string} fieldName\n * The name of the prop in window.location and in the component's prop\n *\n * @returns {boolean}\n * Returns true if the prop with fieldName is different and the window state needs to be updated\n */\n const checkExistsUpdateWindowLocation = fieldName => {\n const propVal = props[fieldName];\n\n if (\n (type(propVal) === 'Undefined' || propVal === null) &&\n type(window.location[fieldName]) !== 'Undefined'\n ) {\n // propVal is undefined or null, but window.location has this fieldName defined\n propsToSet[fieldName] = window.location[fieldName];\n } else if (propVal !== window.location[fieldName]) {\n // Prop has changed?\n if (refresh === true) {\n // Refresh the page?\n window.location[fieldName] = propVal;\n } else if (this.props[fieldName] !== propVal) {\n // If this prop has changed, need to setProps\n propsToSet[fieldName] = propVal;\n // This (`${fieldName}`: propVal) needs to be pushed in the window.history\n return true;\n }\n }\n // This (`${fieldName}`: propVal) DOES NOT need to be pushed in the window.history\n return false;\n };\n\n // Check if the prop value needs to be updated (note that this mutates propsToSet)\n const pathnameUpdated = checkExistsUpdateWindowLocation('pathname');\n const hrefUpdated = checkExistsUpdateWindowLocation('href');\n const hashUpdated = checkExistsUpdateWindowLocation('hash');\n const searchUpdated = checkExistsUpdateWindowLocation('search');\n\n // propsToSet has been updated -- batch update to Dash\n if (Object.keys(propsToSet).length > 0) {\n setProps(propsToSet);\n }\n\n // Special case -- overrides everything!\n if (hrefUpdated) {\n window.history.pushState({}, '', href);\n if (refresh === 'callback-nav') {\n window.dispatchEvent(new CustomEvent('_dashprivate_pushstate'));\n }\n } else if (pathnameUpdated || hashUpdated || searchUpdated) {\n // Otherwise, we can mash everything together\n const searchVal = type(search) !== 'Undefined' ? search : '';\n const hashVal = type(hash) !== 'Undefined' ? hash : '';\n window.history.pushState(\n {},\n '',\n `${pathname}${searchVal}${hashVal}`\n );\n if (refresh === 'callback-nav') {\n window.dispatchEvent(new CustomEvent('_dashprivate_pushstate'));\n }\n }\n }\n\n onLocationChange() {\n const {setProps} = this.props;\n const propsToChange = {};\n\n if (this.props.pathname !== window.location.pathname) {\n propsToChange.pathname = window.location.pathname;\n }\n if (this.props.href !== window.location.href) {\n propsToChange.href = window.location.href;\n }\n if (this.props.hash !== window.location.hash) {\n propsToChange.hash = window.location.hash;\n }\n if (this.props.search !== window.location.search) {\n propsToChange.search = window.location.search;\n }\n\n setProps(propsToChange);\n\n History.dispatchChangeEvent();\n }\n\n componentDidMount() {\n window.addEventListener('popstate', this.onLocationChange);\n\n window.addEventListener(\n '_dashprivate_pushstate',\n this.onLocationChange\n );\n this.updateLocation(this.props);\n }\n\n componentWillUnmount() {\n window.removeEventListener('popstate', this.onLocationChange);\n window.removeEventListener(\n '_dashprivate_pushstate',\n this.onLocationChange\n );\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.updateLocation(nextProps);\n }\n\n render() {\n return null;\n }\n}\n\nLocation.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string.isRequired,\n\n /** pathname in window.location - e.g., \"/my/full/pathname\" */\n pathname: PropTypes.string,\n /** search in window.location - e.g., \"?myargument=1\" */\n search: PropTypes.string,\n /** hash in window.location - e.g., \"#myhash\" */\n hash: PropTypes.string,\n /** href in window.location - e.g., \"/my/full/pathname?myargument=1#myhash\" */\n href: PropTypes.string,\n\n /**\n * Use `True` to navigate outside the Dash app or to manually refresh a page.\n * Use `False` if the same callback that updates the Location component is also\n * updating the page content - typically used in multi-page apps that do not use Pages.\n * Use 'callback-nav' if you are updating the URL in a callback, or a different\n * callback will respond to the new Location with updated content. This is\n * typical with multi-page apps that use Pages. This will allow for\n * navigating to a new page without refreshing the page.\n */\n refresh: PropTypes.oneOfType([\n PropTypes.oneOf(['callback-nav']),\n PropTypes.bool,\n ]),\n\n /**\n * Dash-assigned callback that gets fired when the value changes.\n */\n setProps: PropTypes.func,\n};\n\nLocation.defaultProps = {\n refresh: true,\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./radioitems.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./radioitems.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {useMemo} from 'react';\nimport {RadioItemsProps, PersistedProps, PersistenceTypes} from '../types';\nimport './css/radioitems.css';\n\nimport {sanitizeOptions} from '../utils/optionTypes';\nimport LoadingElement from '../utils/_LoadingElement';\nimport {OptionsList} from '../utils/optionRendering';\nimport {isNil} from 'ramda';\n\n/**\n * RadioItems is a component that encapsulates several radio item inputs.\n * The values and labels of the RadioItems is specified in the `options`\n * property and the seleced item is specified with the `value` property.\n * Each radio item is rendered as an input with a surrounding label.\n */\nexport default function RadioItems({\n className,\n id,\n style,\n setProps,\n value,\n inputStyle = {},\n inputClassName = '',\n labelStyle = {},\n labelClassName = '',\n options = [],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n inline = false,\n}: RadioItemsProps) {\n const sanitizedOptions = useMemo(() => {\n return sanitizeOptions(options).options;\n }, [options]);\n\n const stylingProps = {\n id,\n className: 'dash-radioitems ' + (className ?? ''),\n style,\n optionClassName: inline ? 'dash-radioitems-inline' : undefined,\n inputStyle,\n inputClassName,\n labelStyle,\n labelClassName,\n };\n\n return (\n \n {loadingProps => (\n {\n if (selection.length) {\n setProps({value: selection[selection.length - 1]});\n }\n }}\n {...stylingProps}\n />\n )}\n \n );\n}\n\nRadioItems.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n","export default () =>\n import(/* webpackChunkName: \"slider\" */ '../../fragments/RangeSlider');\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./sliders.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./sliders.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {lazy, Suspense} from 'react';\nimport {PersistedProps, PersistenceTypes, RangeSliderProps} from '../types';\nimport rangeSlider from '../utils/LazyLoader/rangeSlider';\n\nimport './css/sliders.css';\n\nconst RealRangeSlider = lazy(rangeSlider);\n\n/**\n * A double slider with two handles.\n * Used for specifying a range of numerical values.\n */\nexport default function RangeSlider({\n updatemode = 'mouseup',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n // eslint-disable-next-line no-magic-numbers\n verticalHeight = 400,\n step = undefined,\n allow_direct_input = true,\n ...props\n}: RangeSliderProps) {\n // Some considerations for the default value of `step`:\n // If the range consists of integers, default to a value of `1`\n // Otherwise, leave it undefined\n if (\n typeof step === 'undefined' &&\n Number.isInteger(props.min) &&\n Number.isInteger(props.max)\n ) {\n step = 1;\n }\n\n return (\n \n \n \n );\n}\n\nRangeSlider.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n","import {omit} from 'ramda';\nimport React, {lazy, Suspense, useCallback, useMemo} from 'react';\nimport {\n PersistedProps,\n PersistenceTypes,\n RangeSliderProps,\n SliderProps,\n} from '../types';\nimport rangeSlider from '../utils/LazyLoader/rangeSlider';\nimport './css/sliders.css';\n\nconst RealSlider = lazy(rangeSlider);\n\n/**\n * A slider component with a single handle.\n */\nexport default function Slider({\n updatemode = 'mouseup',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n // eslint-disable-next-line no-magic-numbers\n verticalHeight = 400,\n step = undefined,\n allow_direct_input = true,\n setProps,\n value,\n drag_value,\n ...props\n}: SliderProps) {\n // This is actually a wrapper around a RangeSlider.\n // We'll modify key `Slider` props to be compatible with a Range Slider.\n\n // Some considerations for the default value of `step`:\n // If the range consists of integers, default to a value of `1`\n // Otherwise, leave it undefined\n if (\n typeof step === 'undefined' &&\n Number.isInteger(props.min) &&\n Number.isInteger(props.max)\n ) {\n step = 1;\n }\n\n const mappedValue: RangeSliderProps['value'] = useMemo(() => {\n return typeof value === 'number' ? [value] : value;\n }, [value]);\n\n const mappedDragValue: RangeSliderProps['drag_value'] = useMemo(() => {\n return typeof drag_value === 'number' ? [drag_value] : drag_value;\n }, [drag_value]);\n\n const mappedSetProps: RangeSliderProps['setProps'] = useCallback(\n newProps => {\n const {value, drag_value} = newProps;\n const mappedProps: Partial = omit(\n ['value', 'drag_value', 'setProps'],\n newProps\n );\n if ('value' in newProps) {\n mappedProps.value = value ? value[0] : value;\n }\n if ('drag_value' in newProps) {\n mappedProps.drag_value = drag_value\n ? drag_value[0]\n : drag_value;\n }\n\n setProps(mappedProps);\n },\n [setProps]\n );\n\n return (\n \n \n \n );\n}\n\nSlider.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n","import {equals, isNil} from 'ramda';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Abstraction for the memory storage_type to work the same way as local/session\n *\n * Each memory Store component get it's own MemStore.\n */\nclass MemStore {\n constructor() {\n this._data = {};\n this._modified = -1;\n }\n\n getItem(key) {\n return this._data[key];\n }\n\n setItem(key, value) {\n this._data[key] = value;\n this.setModified(key);\n }\n\n removeItem(key) {\n delete this._data[key];\n this.setModified(key);\n }\n\n // noinspection JSUnusedLocalSymbols\n setModified(_) {\n this._modified = Date.now();\n }\n\n // noinspection JSUnusedLocalSymbols\n getModified(_) {\n return this._modified;\n }\n}\n\n/**\n * Abstraction for local/session storage_type.\n *\n * Single instances for localStorage, sessionStorage\n */\nclass WebStore {\n constructor(storage) {\n this._storage = storage;\n }\n\n getItem(key) {\n try {\n return JSON.parse(this._storage.getItem(key));\n } catch (e) {\n // in case we somehow got a non-JSON value in storage,\n // just ignore it.\n return null;\n }\n }\n\n setItem(key, value) {\n this._storage.setItem(key, JSON.stringify(value));\n this.setModified(key);\n }\n\n removeItem(key) {\n this._storage.removeItem(key);\n this._storage.removeItem(`${key}-timestamp`);\n }\n\n setModified(key) {\n this._storage.setItem(`${key}-timestamp`, Date.now());\n }\n\n getModified(key) {\n return (\n Number.parseInt(this._storage.getItem(`${key}-timestamp`), 10) || -1\n );\n }\n}\n\n/**\n * Easily keep data on the client side with this component.\n * The data is not inserted in the DOM.\n * Data can be in memory, localStorage or sessionStorage.\n * The data will be kept with the id as key.\n */\nexport default class Store extends React.Component {\n constructor(props) {\n super(props);\n\n if (props.storage_type === 'local') {\n this._backstore = new WebStore(window.localStorage);\n } else if (props.storage_type === 'session') {\n this._backstore = new WebStore(window.sessionStorage);\n } else if (props.storage_type === 'memory') {\n this._backstore = new MemStore();\n }\n\n this.onStorageChange = this.onStorageChange.bind(this);\n }\n\n onStorageChange(e) {\n const {id, setProps} = this.props;\n if (e.key === id && setProps && e.newValue !== e.oldValue) {\n setProps({\n data: JSON.parse(e.newValue),\n modified_timestamp: this._backstore.getModified(id),\n });\n }\n }\n\n UNSAFE_componentWillMount() {\n const {setProps, id, data, storage_type} = this.props;\n if (storage_type !== 'memory') {\n window.addEventListener('storage', this.onStorageChange);\n }\n\n const old = this._backstore.getItem(id);\n if (isNil(old) && !isNil(data)) {\n // Initial data mount\n this._backstore.setItem(id, data);\n setProps({\n modified_timestamp: this._backstore.getModified(id),\n });\n return;\n }\n\n if (!equals(old, data)) {\n setProps({\n data: old,\n modified_timestamp: this._backstore.getModified(id),\n });\n }\n }\n\n componentWillUnmount() {\n if (this.props.storage_type !== 'memory') {\n window.removeEventListener('storage', this.onStorageChange);\n }\n }\n\n componentDidUpdate() {\n const {data, id, clear_data, setProps} = this.props;\n if (clear_data) {\n this._backstore.removeItem(id);\n setProps({\n clear_data: false,\n data: null,\n modified_timestamp: this._backstore.getModified(id),\n });\n return;\n }\n const old = this._backstore.getItem(id);\n // Only set the data if it's not the same data.\n // If the new data is undefined, we got here by overwriting the entire\n // component with a new copy that has no `data` specified - so pull back\n // out the old value.\n // Note: this still allows you to set data to null\n if (!equals(data, old)) {\n if (data === undefined) {\n setProps({data: old});\n } else {\n this._backstore.setItem(id, data);\n setProps({\n modified_timestamp: this._backstore.getModified(id),\n });\n }\n }\n }\n\n render() {\n return null;\n }\n}\n\nStore.defaultProps = {\n storage_type: 'memory',\n clear_data: false,\n modified_timestamp: -1,\n};\n\nStore.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: PropTypes.string.isRequired,\n\n /**\n * The type of the web storage.\n *\n * memory: only kept in memory, reset on page refresh.\n * local: window.localStorage, data is kept after the browser quit.\n * session: window.sessionStorage, data is cleared once the browser quit.\n */\n storage_type: PropTypes.oneOf(['local', 'session', 'memory']),\n\n /**\n * The stored data for the id.\n */\n data: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.array,\n PropTypes.number,\n PropTypes.string,\n PropTypes.bool,\n ]),\n\n /**\n * Set to true to remove the data contained in `data_key`.\n */\n clear_data: PropTypes.bool,\n\n /**\n * The last time the storage was modified.\n */\n modified_timestamp: PropTypes.number,\n\n /**\n * Dash-assigned callback that gets fired when the value changes.\n */\n setProps: PropTypes.func,\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./tabs.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./tabs.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport './css/tabs.css';\nimport {TabProps} from '../types';\n\n/**\n * Part of dcc.Tabs - this is the child Tab component used to render a tabbed page.\n * Its children will be set as the content of that tab, which if clicked will become visible.\n */\nfunction Tab({\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n disabled = false,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n disabled_style = {color: 'var(--Dash-Text-Disabled)'},\n}: TabProps) {\n return <>{children};\n}\n\nexport default Tab;\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {has, isNil} from 'ramda';\n\nimport LoadingElement from '../utils/_LoadingElement';\nimport {PersistedProps, PersistenceTypes, TabProps, TabsProps} from '../types';\nimport './css/tabs.css';\nimport {DashComponent} from '@dash-renderer/types';\n\ninterface EnhancedTabProps extends TabProps {\n selected: boolean;\n componentPath?: (string | number)[];\n}\n\n// EnhancedTab is defined here instead of in Tab.tsx because if exported there,\n// it will mess up the Python imports and metadata.json\nconst EnhancedTab = ({\n id,\n label,\n selected,\n className,\n style,\n selected_className,\n selected_style,\n setProps: selectHandler,\n value,\n disabled = false,\n disabled_style = {color: 'var(--Dash-Text-Disabled)'},\n disabled_className,\n componentPath,\n}: EnhancedTabProps) => {\n const ExternalWrapper = window.dash_component_api.ExternalWrapper;\n const ctx = window.dash_component_api.useDashContext();\n componentPath = componentPath ?? ctx.componentPath;\n // We use the raw path here since it's up one level from\n // the tabs child.\n const isLoading = ctx.useLoading({rawPath: componentPath});\n const tabStyle = useMemo(() => {\n return {\n ...style,\n ...(disabled ? disabled_style : {}),\n ...(selected ? selected_style : {}),\n };\n }, [style, disabled, disabled_style, selected, selected_style]);\n\n const tabClassNames = useMemo(() => {\n let names = 'tab';\n if (disabled) {\n names += ' tab--disabled';\n if (disabled_className) {\n names += ` ${disabled_className}`;\n }\n }\n if (selected) {\n names += ' tab--selected';\n if (selected_className) {\n names += ` ${selected_className}`;\n }\n }\n if (className) {\n names += ` ${className}`;\n }\n return names;\n }, [className, disabled, disabled_className, selected, selected_className]);\n\n let labelDisplay;\n if (typeof label === 'object') {\n labelDisplay = (\n \n );\n } else {\n labelDisplay = {label};\n }\n\n return (\n {\n if (!disabled) {\n selectHandler({value});\n }\n }}\n >\n {labelDisplay}\n
\n );\n};\n\n/**\n * A Dash component that lets you render pages with tabs - the Tabs component's children\n * can be dcc.Tab components, which can hold a label that will be displayed as a tab, and can in turn hold\n * children components that will be that tab's content.\n */\nfunction Tabs({\n // eslint-disable-next-line no-magic-numbers\n mobile_breakpoint = 800,\n colors = {\n border: 'var(--Dash-Stroke-Weak)',\n primary: 'var(--Dash-Fill-Interactive-Strong)',\n background: 'var(--Dash-Fill-Interactive-Weak)',\n },\n vertical = false,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persisted_props = [PersistedProps.value],\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persistence_type = PersistenceTypes.local,\n children,\n ...props\n}: TabsProps) {\n const initializedRef = useRef(false);\n const [isAboveBreakpoint, setIsAboveBreakpoint] = useState(false);\n\n const parseChildrenToArray = useCallback((): DashComponent[] => {\n if (!children) {\n return [];\n }\n if (children instanceof Array) {\n return children;\n }\n return [children];\n }, [children]);\n\n const valueOrDefault = (): string | undefined => {\n if (has('value', props)) {\n return props.value;\n }\n const children = parseChildrenToArray();\n if (children && children.length && children[0].props.componentPath) {\n const firstChildren: TabProps = window.dash_component_api.getLayout(\n [...children[0].props.componentPath, 'props']\n );\n return firstChildren.value ?? 'tab-1';\n }\n return 'tab-1';\n };\n\n // Initialize value on mount if not set\n useEffect(() => {\n if (!initializedRef.current && !has('value', props)) {\n props.setProps({\n value: `${valueOrDefault()}`,\n });\n initializedRef.current = true;\n }\n }, []);\n\n // Setup matchMedia for responsive breakpoint\n useEffect(() => {\n const mediaQuery = window.matchMedia(\n `(min-width: ${mobile_breakpoint}px)`\n );\n\n // Set initial value\n setIsAboveBreakpoint(mediaQuery.matches);\n\n // Listen for changes\n const handler = (e: MediaQueryListEvent) =>\n setIsAboveBreakpoint(e.matches);\n mediaQuery.addEventListener('change', handler);\n\n return () => mediaQuery.removeEventListener('change', handler);\n }, [mobile_breakpoint]);\n\n let EnhancedTabs: JSX.Element[];\n let selectedTab;\n\n const value = valueOrDefault();\n\n if (children) {\n const children = parseChildrenToArray();\n\n EnhancedTabs = children.map((child, index) => {\n // TODO: handle components that are not dcc.Tab components (throw error)\n // enhance Tab components coming from Dash (as dcc.Tab) with methods needed for handling logic\n let childProps: Omit;\n\n if (React.isValidElement(child) && child.props.componentPath) {\n childProps = window.dash_component_api.getLayout([\n ...child.props.componentPath,\n 'props',\n ]);\n } else {\n // In case the selected tab is a string.\n childProps = {};\n }\n\n if (!childProps.value) {\n childProps = {...childProps, value: `tab-${index + 1}`};\n }\n\n // check if this child/Tab is currently selected\n if (childProps.value === value) {\n selectedTab = child;\n }\n\n const style = childProps.style ?? {};\n if (typeof childProps.width === 'number') {\n style.width = `${childProps.width}px`;\n style.flex = '0 0 auto';\n } else if (typeof childProps.width === 'string') {\n style.width = childProps.width;\n style.flex = '0 0 auto';\n }\n\n return (\n \n );\n });\n }\n\n const selectedTabContent = !isNil(selectedTab) ? selectedTab : '';\n\n const tabContainerClassNames = useMemo(() => {\n let names = 'tab-container';\n if (vertical) {\n names += ` tab-container--vert`;\n }\n if (props.className) {\n names += ` ${props.className}`;\n }\n return names;\n }, [vertical, props.className]);\n\n const tabContentClassNames = useMemo(() => {\n let names = 'tab-content';\n if (vertical) {\n names += ` tab-content--vert`;\n }\n if (props.content_className) {\n names += ` ${props.content_className}`;\n }\n return names;\n }, [vertical, props.content_className]);\n\n const tabParentClassNames = useMemo(() => {\n let names = 'tab-parent';\n if (vertical) {\n names += ` tab-parent--vert`;\n }\n if (isAboveBreakpoint) {\n names += ' tab-parent--above-breakpoint';\n }\n if (props.parent_className) {\n names += ` ${props.parent_className}`;\n }\n return names;\n }, [vertical, isAboveBreakpoint, props.parent_className]);\n\n // Set CSS variables for dynamic styling\n const cssVars = {\n '--tabs-border': colors.border,\n '--tabs-primary': colors.primary,\n '--tabs-background': colors.background,\n } as const;\n\n return (\n \n {loadingProps => (\n \n \n {EnhancedTabs}\n
\n \n {selectedTabContent || ''}\n
\n
\n )}\n \n );\n}\n\nTabs.dashPersistence = {\n persisted_props: [PersistedProps.value],\n persistence_type: PersistenceTypes.local,\n};\n\nTabs.dashChildrenUpdate = true;\n\nexport default Tabs;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./textarea.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./textarea.css\";\n export default content && content.locals ? content.locals : undefined;\n","/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport {pick} from 'ramda';\nimport {PersistedProps, PersistenceTypes, TextAreaProps} from '../types';\nimport './css/textarea.css';\n\nconst textAreaProps = [\n 'id',\n 'cols',\n 'rows',\n 'minLength',\n 'maxLength',\n 'contentEditable',\n 'tabIndex',\n 'form',\n 'name',\n 'placeholder',\n 'wrap',\n 'accessKey',\n 'contextMenu',\n 'dir',\n 'draggable',\n 'lang',\n 'spellCheck',\n 'style',\n 'title',\n] as const;\n\n/**\n * A basic HTML textarea for entering multiline text.\n *\n */\nconst Textarea = ({\n setProps,\n n_blur = 0,\n n_blur_timestamp = -1,\n n_clicks = 0,\n n_clicks_timestamp = -1,\n ...props\n}: TextAreaProps) => {\n const ctx = window.dash_component_api.useDashContext();\n const isLoading = ctx.useLoading();\n\n return (\n
\n
\n \n );\n};\n\nexport default Tooltip;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n \n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./dcc.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = function insertAtTop(element) {\n var parent = document.querySelector('head');\n // eslint-disable-next-line no-underscore-dangle\n var lastInsertedElement =\n window._lastElementInsertedByStyleLoader;\n\n if (!lastInsertedElement) {\n parent.insertBefore(element, parent.firstChild);\n } else if (lastInsertedElement.nextSibling) {\n parent.insertBefore(element, lastInsertedElement.nextSibling);\n } else {\n parent.appendChild(element);\n }\n\n // eslint-disable-next-line no-underscore-dangle\n window._lastElementInsertedByStyleLoader = element;\n };\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./dcc.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","$defineProperty","$SyntaxError","$TypeError","gopd","module","exports","obj","property","value","arguments","length","nonEnumerable","nonWritable","nonConfigurable","loose","desc","configurable","enumerable","writable","Function","prototype","call","Math","round","undefined","$Object","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","abs","floor","max","min","pow","sign","$Function","getEvalledConstructor","expressionSyntax","e","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","get","gOPDthrows","hasSymbols","$ObjectGPO","$ReflectGPO","$apply","$call","needsEval","TypedArray","Uint8Array","INTRINSICS","__proto__","AggregateError","Array","ArrayBuffer","Symbol","iterator","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Number","parseFloat","parseInt","Promise","Proxy","Reflect","RegExp","Set","SharedArrayBuffer","String","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","error","errorProto","doEval","name","fn","gen","LEGACY_ALIASES","bind","hasOwn","$concat","concat","$spliceApply","splice","$replace","replace","$strSlice","slice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","allowMissing","alias","intrinsicName","parts","string","first","last","result","match","number","quote","subString","stringToPath","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","i","isOwn","part","___CSS_LOADER_EXPORT___","push","id","setFunctionLength","callBindBasic","applyBind","originalFunction","func","adjustedLength","apply","getOwnPropertyDescriptors","Object","keys","descriptors","getOwnPropertyDescriptor","formatRegExp","format","f","isString","objects","inspect","join","args","len","str","x","stringify","_","isNull","isObject","deprecate","msg","process","noDeprecation","this","warned","throwDeprecation","Error","traceDeprecation","console","trace","debugs","debugEnvRegex","env","NODE_DEBUG","debugEnv","toUpperCase","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","isFunction","constructor","ret","primitive","simple","isNumber","formatPrimitive","visibleKeys","array","hash","forEach","val","idx","arrayToHash","getOwnPropertyNames","isError","indexOf","formatError","isRegExp","toString","isDate","output","base","braces","isArray","toUTCString","l","hasOwnProperty","formatProperty","key","formatArray","map","pop","reduce","prev","cur","reduceToSingleString","set","split","line","ar","arg","re","objectToString","d","o","pad","n","debuglog","test","pid","types","isNullOrUndefined","isSymbol","isNativeError","isPrimitive","isBuffer","months","prop","log","time","getHours","getMinutes","getSeconds","getDate","getMonth","inherits","origin","add","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","cb","newReason","promisify","original","TypeError","defineProperty","promiseResolve","promiseReject","promise","resolve","reject","err","setPrototypeOf","getPrototypeOf","defineProperties","custom","callbackify","callbackified","maybeCb","self","then","nextTick","rej","options","element","document","createElement","setAttributes","attributes","insert","hasPropertyDescriptors","hasArrayLengthDefineBug","getWeek","date","_date","toDate","in","diff","startOfWeek","_ref","_ref2","_ref3","_options$firstWeekCon","_options$locale","_defaultOptions$local","defaultOptions","getDefaultOptions","firstWeekContainsDate","locale","year","getWeekYear","firstWeek","constructFrom","setFullYear","setHours","startOfWeekYear","millisecondsInWeek","dateLongFormatter","pattern","formatLong","width","timeLongFormatter","longFormatters","p","P","dateTimeLongFormatter","dateTimeFormat","matchResult","datePattern","timePattern","dateTime","_isObject","_dispatchable","methodNames","transducerCreator","_isArray","_isTransformer","transducer","_has","toStr","isArgs","callee","css","styleElement","styleSheet","cssText","firstChild","removeChild","appendChild","createTextNode","copy","fill","readUInt8","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMilliseconds","setUTCFullYear","origKeys","keysShim","originalKeys","shim","keysWorksWithArguments","object","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","normalizeDates","laterStartOfDay","startOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","millisecondsInDay","EvalError","type","getOwnPropertySymbols","sym","symObj","syms","propertyIsEnumerable","descriptor","item","content","cssMapping","btoa","base64","unescape","data","sourceMapping","includes","_curry2","pred","filterable","filter","window","isNil","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","context","formattingValues","defaultFormattingWidth","values","argumentCallback","localize","ordinalNumber","dirtyNumber","_options","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","predicate","findIndex","findKey","valueCallback","rest","parsePattern","parseResult","any","index","enUS","code","formatDistance","token","count","tokenValue","addSuffix","comparison","formatRelative","_baseDate","weekStartsOn","init","xf","RealUpload","lazy","upload","Upload","Component","render","React","Suspense","fallback","props","propTypes","PropTypes","contents","filename","last_modified","children","accept","disabled","disable_click","max_size","min_size","multiple","enable_folder_selection","className","className_active","className_reject","className_disabled","style_active","style_reject","style_disabled","setProps","defaultProps","borderStyle","borderColor","backgroundColor","opacity","additionalProps","dash_component_api","useDashContext","useLoading","actualApply","f2","a","b","_b","_a","_slicedToArray","arr","_arrayWithHoles","r","t","u","next","done","return","_iterableToArrayLimit","minLen","_arrayLikeToArray","from","_unsupportedIterableToArray","_nonIterableRest","arr2","_typeof","regexFlagsSupported","flags","arrayFromSet","arrayFromMap","objectIs","is","objectGetOwnPropertySymbols","numberIsNaN","uncurryThis","_require$types","isAnyArrayBuffer","isArrayBufferView","isMap","isSet","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","charCodeAt","getOwnNonIndexProperties","compare","y","innerDeepEqual","val1","val2","strict","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","getTime","source","message","byteLength","buffer","byteOffset","areSimilarTypedArrays","offset","areSimilarFloatArrays","_keys","_keys2","size","valueOf","isEqualBoxedPrimitive","getEnumerables","k","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","position","val2MemoA","val2MemoB","areEq","memo","aValues","has","setMightHaveLoosePrim","bValues","_i","_val","setHasEqualElement","setEquiv","aEntries","_aEntries$i","item1","item2","mapMightHaveLoosePrim","bEntries","_i2","_bEntries$_i","_key","mapHasEqualEntry","mapEquiv","keysA","_key2","objEquiv","delete","setValues","findLooseMatchingPrimitives","prim","altValue","curB","key1","key2","isDeepEqual","isDeepStrictEqual","define","getPolyfill","polyfill","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","contains","list","nIdx","ks","checkArgsLength","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","constructFromSymbol","for","isCallable","thisArg","receiver","forEachArray","charAt","forEachString","forEachObject","_isPlaceholder","getISOWeek","startOfISOWeek","getISOWeekYear","fourthOfJanuary","startOfISOWeekYear","parseISO","argument","_options$additionalDi","invalidDate","NaN","additionalDigits","dateStrings","dateString","timeString","patterns","dateTimeDelimiter","timeZoneDelimiter","substr","timezone","splitDateString","parseYearResult","regex","captures","restDateString","century","parseYear","dateRegex","isWeekDate","dayOfYear","parseDateUnit","week","dayOfWeek","_year","validateWeekDate","isoWeekYear","getUTCDay","setUTCDate","getUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseDate","timestamp","timeRegex","hours","parseTimeUnit","minutes","seconds","validateTime","parseTime","tmpDate","getUTCFullYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","timezoneString","timezoneRegex","_hours","validateTimezone","parseTimezone","$isNaN","$actualApply","$reflectApply","_extends","assign","_assertThisInitialized","ReferenceError","_setPrototypeOf","safeIsNaN","isEqual","second","areInputsEqual","newInputs","lastInputs","resultFn","lastThis","lastResult","lastArgs","calledOnce","newArgs","now","performance","cancelTimeout","timeoutID","cancelAnimationFrame","getScrollbarSize","recalculate","div","height","overflow","body","offsetWidth","clientWidth","cachedRTLResult","getRTLOffsetType","outerDiv","outerStyle","direction","innerDiv","innerStyle","scrollLeft","defaultItemKey$1","createListComponent","_class","getItemOffset","getEstimatedTotalSize","getItemSize","getOffsetForIndexAndAlignment","getStartIndexForOffset","getStopIndexForStartIndex","initInstanceProps","shouldResetStyleCacheOnItemSizeChange","validateProps","_PureComponent","List","_this","_instanceProps","_outerRef","_resetIsScrollingTimeoutId","state","instance","isScrolling","scrollDirection","scrollOffset","initialScrollOffset","scrollUpdateWasRequested","_callOnItemsRendered","memoizeOne","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","onItemsRendered","_callOnScroll","onScroll","_getItemStyle","_this$props","itemSize","layout","itemStyleCache","_getItemStyleCache","_offset","isHorizontal","isRtl","offsetHorizontal","left","right","top","__","___","_onScrollHorizontal","event","_event$currentTarget","currentTarget","scrollWidth","setState","prevState","_resetIsScrollingDebounced","_onScrollVertical","_event$currentTarget2","clientHeight","scrollHeight","scrollTop","_outerRefSetter","ref","outerRef","current","callback","delay","start","_resetIsScrolling","requestAnimationFrame","tick","create","getDerivedStateFromProps","nextProps","validateSharedProps$1","_proto","scrollTo","scrollToItem","align","_this$props2","itemCount","scrollbarSize","componentDidMount","_this$props3","_callPropsCallbacks","componentDidUpdate","_this$props4","_this$state","componentWillUnmount","_this$props5","innerRef","innerElementType","innerTagName","itemData","_this$props5$itemKey","itemKey","outerElementType","outerTagName","useIsScrolling","_this$_getRangeToRend","_getRangeToRender","startIndex","stopIndex","items","_index","estimatedTotalSize","WebkitOverflowScrolling","willChange","pointerEvents","_this$_getRangeToRend2","_overscanStartIndex","_overscanStopIndex","_visibleStartIndex","_visibleStopIndex","_this$state2","_scrollDirection","_scrollOffset","_scrollUpdateWasRequested","_this$props6","overscanCount","_this$state3","overscanBackward","overscanForward","PureComponent","getItemMetadata$1","instanceProps","itemMetadataMap","lastMeasuredIndex","itemMetadata","findNearestItemBinarySearch$1","high","low","middle","currentOffset","estimatedItemSize","totalSizeOfMeasuredItems","VariableSizeList","maxOffset","minOffset","interval","findNearestItemExponentialSearch$1","findNearestItem$1","resetAfterIndex","shouldForceUpdate","forceUpdate","_ref5","styleTagTransform","parent","querySelector","lastInsertedElement","_lastElementInsertedByStyleLoader","nextSibling","insertBefore","domAPI","insertStyleElement","locals","OptionLabel","label","title","ExternalWrapper","labels","component","componentPath","displayLabel","Option","option","isSelected","onChange","optionClassName","optionStyle","inputType","inputClassName","inputStyle","labelClassName","labelStyle","classNames","inputClassNames","labelClassNames","role","checked","onKeyUp","readOnly","Row","selected","passThruProps","setOptionHeight","measureRef","useCallback","el","immediateHeight","getBoundingClientRect","ResizeObserver","_ref4","_entry$borderBoxSize$","_entry$borderBoxSize","entry","borderBoxSize","blockSize","contentRect","observe","displayName","OptionsList","forwardRef","onSelectionChange","optionHeight","maxHeight","innerHeight","_objectWithoutProperties","_excluded","listRef","useRef","containerRef","pendingFocusRef","heightsRef","measuredHeight","setMeasuredHeight","useState","defaultOptionHeight","getOptionHeight","_heightsRef$current$g","_listRef$current","useLayoutEffect","_listRef$current2","h","defaultListHeight","listHeight","focusOption","optionIndex","_containerRef$current","deferred","HTMLElement","focus","useImperativeHandle","focusItem","handleChange","newValue","without","append","handleItemsRendered","sizerDiv","useMemo","step","longestOption","maxLen","_objectSpread","sanitizeOptions","valueSet","opt","isOptionValue","entries","_curry1","f1","reflectGetProto","originalGetProto","getDunderProto","O","_isFunction","ownKeys","_toPropertyKey","_defineProperties","target","input","toPrimitive","res","hint","_toPrimitive","_possibleConstructorReturn","_wrapNativeSuper","Class","_cache","Wrapper","_construct","_getPrototypeOf","Parent","_isNativeReflectConstruct","construct","sham","ERR_INVALID_ARG_TYPE","codes","endsWith","search","this_len","substring","blue","green","red","white","kReadableOperator","deepStrictEqual","strictEqual","strictEqualObject","deepEqual","equal","notDeepStrictEqual","notStrictEqual","notStrictEqualObject","notDeepEqual","notEqual","notIdentical","copyError","inspectValue","compact","maxArrayLength","Infinity","breakLength","showProxy","sorted","getters","AssertionError","_Error","_inspect$custom","subClass","superClass","_inherits","Derived","hasNativeReflectConstruct","Constructor","protoProps","_super","Super","NewTarget","_classCallCheck","operator","stackStartFn","actual","expected","limit","stackTraceLimit","stderr","isTTY","getColorDepth","lastPos","end","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","columns","maxCount","repeat","maxLines","_actualLines","printedLines","skippedMsg","expectedLine","actualLine","divergingLines","createErrDiff","_res","knownOperators","generatedMessage","captureStackTrace","stack","PersistenceTypes","PersistedProps","HTMLInputTypes","CalendarDirection","origSymbol","hasSymbolSham","callBind","implementation","_createClass","staticProps","_require$codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","isPromise","objectAssign","RegExpPrototypeTest","lazyLoadComparison","assert","ok","NO_EXCEPTION_SENTINEL","innerFail","innerOk","argLen","_len","fail","internalMessage","argsLen","emitWarning","warn","errArgs","Comparison","expectedException","compareExceptionKey","isPrototypeOf","getActual","checkIsPromise","catch","waitForActual","promiseFn","resultPromise","expectsError","details","fnType","expectsNoError","internalMatch","regexp","fnName","_len6","_key6","throws","_len2","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","tmp2","shift","tmp1","pos","doesNotMatch","_arrayFromIterator","iter","_includesWith","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","typeA","equals","global","ignoreCase","multiline","sticky","unicode","extendedStackA","extendedStackB","privatePropTypes","_dashprivate_transformConfig","_dashprivate_transformFigure","_dashprivate_onFigureModified","EMPTY_DATA","PlotlyGraph","super","mathjax","_loadMathjax","prependData","extendData","clearState","UNSAFE_componentWillReceiveProps","figure","dataKey","ControlledPlotlyGraph","RealPlotlyGraph","asyncDecorator","all","Plotly","timeoutId","src","_dashPlotlyJSURL","async","onload","clearTimeout","onerror","setTimeout","lazyLoadMathJax","graph","extendedClassName","responsive","clickData","clickAnnotationData","hoverData","clear_on_unhover","selectedData","relayoutData","restyleData","frames","animate","animation_options","config","staticPlot","plotlyServerURL","editable","editSelection","edits","annotationPosition","annotationTail","annotationText","axisTitleText","colorbarPosition","colorbarTitleText","legendPosition","legendText","shapePosition","titleText","autosizable","queueLength","fillFrame","frameMargins","scrollZoom","doubleClick","doubleClickDelay","showTips","showAxisDragHandles","showAxisRangeEntryBoxes","showLink","sendData","linkText","displayModeBar","showSendToCloud","showEditInChartStudio","modeBarButtonsToRemove","modeBarButtonsToAdd","modeBarButtons","toImageButtonOptions","scale","displaylogo","watermark","plotGlPixelRatio","topojsonURL","mapboxAccessToken","locales","c","frame","redraw","transition","duration","ease","graphPropTypes","graphDefaultProps","XMLHttpRequest","open","responseType","g","response","send","status","dispatchEvent","MouseEvent","createEvent","initMouseEvent","navigator","userAgent","saveAs","HTMLAnchorElement","URL","webkitURL","j","download","rel","href","location","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","innerText","safari","FileReader","onloadend","readAsDataURL","m","toStringTag","__esModule","default","s","isReady","regeneratorRuntime","mark","wrap","stop","_dashprivate_isLazyComponentReady","CustomEvent","addEventListener","removeEventListener","_isArguments","nonce","setAttribute","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","indexByIdentifier","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","api","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","_message","subject","toLowerCase","RangeError","URIError","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","omit","names","whichTypedArray","availableTypedArrays","callBound","gOPD","$toString","hasToStringTag","globalThis","typedArrays","$slice","$indexOf","cache","typedArray","proto","superProto","tag","found","getter","trySlices","tryTypedArrays","dates","normalize","find","_includes","inf","_indexOf","cssWithMappingToString","needLayer","modules","dedupe","alreadyImportedModules","_k","_options$weekStartsOn","getDay","setDate","GetIntrinsic","ctor","superCtor","super_","TempCtor","util","times","functions","expression","tuple","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","xs","toRemove","convert","fastIsNumeric","isNumeric","isEquivalent","v1","v2","inputProps","Input","text","inputMode","n_blur","n_blur_timestamp","n_submit","n_submit_timestamp","debounce","autoComplete","persisted_props","persistence_type","local","setValue","pendingEvent","setPendingEvent","inputId","uniqid","valprops","setPropValue","checkValidity","onEvent","inputValue","valueAsNumber","propValue","onBlur","onKeyPress","setInputValue","debounceEvent","handleStepperClick","currentValue","stepAsNum","decimalPlaces","constrainedValue","roundedValue","toFixed","useEffect","selectionStart","cursorPosition","setSelectionRange","disabledAsBool","pickedInputs","pick","isNumberInput","currentNumericValue","minValue","maxValue","isDecrementDisabled","isIncrementDisabled","LoadingElement","loadingProps","hidden","trim","onClick","dashPersistence","elementType","loading","givenProps","hasDescriptors","$floor","functionLengthIsConfigurable","functionLengthIsWritable","hasProtoAccessor","$getPrototypeOf","isStandardArguments","isLegacyArguments","supportsStandardArguments","allBlankCharCodes","isValid","b64","tmp","lens","validLen","getLens","placeHoldersLen","Arr","_byteLength","curByte","revLookup","lookup","_map","functor","_quote","toISOString","_toString","recur","mapPairs","sort","repr","parentNode","removeStyleElement","params","bubbles","cancelable","detail","evt","initCustomEvent","Event","Link","refresh","cleanUrl","dash_clientside","clean_url","sanitizedUrl","_dash_error","metaKey","shiftKey","altKey","ctrlKey","preventDefault","history","pushState","isRequired","loading_state","is_loading","prop_name","component_name","SyntaxError","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","MathJax","GeneratorFunction","fnToStr","isFnRegex","generatorFunc","getGeneratorFunc","_isString","RealDropdown","dropdown","defaultLabels","select_all","deselect_all","selected_count","clear_search","clear_selection","no_options_found","Dropdown","clearable","multi","searchable","closeOnSelect","set1","set2","len1","len2","_concat","objectKeys","toObject","$push","$propIsEnumerable","originalGetSymbols","source1","to","getSymbols","nextKey","defineDataProperty","supportsDescriptors","predicates","_path","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isArguments","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","XFilter","_xfBase","_xfilter","reducer","acc","_arrayReduce","_filter","isArgumentsObject","isGeneratorFunction","isTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","method","letters","lacksProperEnumerationOrder","preventExtensions","thrower","assignHasPendingExceptions","possibleNames","out","getDayOfYear","date_","startOfYear","addLeadingZeros","targetLength","padStart","lightFormatters","signedYear","M","dayPeriodEnumValue","H","S","numberOfDigits","milliseconds","trunc","formatters","G","unit","Y","signedWeekYear","weekYear","R","Q","ceil","q","L","w","I","isoWeek","D","E","localDayOfWeek","isoDayOfWeek","B","K","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","z","T","delimiter","absOffset","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","_options$locale2","_ref6","_ref7","_options$locale3","_defaultOptions$local2","defaultLocale","originalDate","firstCharacter","longFormatter","isToken","matched","preprocessor","formatterOptions","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","formatter","concatty","that","bound","arrLike","slicy","boundLength","boundArgs","joiny","Empty","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","thing","determiner","inspected","badArrayLike","isCallableMarker","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","strClass","DashMarkdown","RealDashMarkdown","dangerously_allow_html","link_target","dedent","highlight_config","theme","md","prefix","suffix","$hasOwn","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","mode","ns","def","definition","chunkId","promises","url","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","nc","onScriptComplete","doneFns","head","scriptUrl","importScripts","currentScript","tagName","getCurrentScript","doc_scripts","textContent","jsonpScriptSrc","__jsonpScriptSrc__","isLocal","srcFragments","fileFragments","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","n_clicks","n_clicks_timestamp","isLoading","Checklist","inline","sanitizedOptions","stylingProps","selection","_defineProperty","_arr","_n","_d","_e","_s","_WINDOW","_DOCUMENT","_PERFORMANCE","measure","MutationObserver","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","documentElement","NAMESPACE_IDENTIFIER","DEFAULT_REPLACEMENT_CLASS","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","FontAwesomeConfig","attr","coerce","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","hooks","shims","namespace","doScroll","readyState","listener","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","invokeCallback","subscriber","owner","settled","_state","_data","handleThenable","resolved","fulfill","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","results","remaining","race","meaninglessTransform","rotate","flipX","flipY","nextUniqueId","random","htmlEscape","joinStyles","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","fillBlack","abstract","force","initialValue","thisContext","bindInternal4","defineIcons","icons","_params$skipHooks","skipHooks","normalized","iconName","icon","addPack","build","ligatures","ligature","hasRegular","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","joinAttributes","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","asFoundIcon","vectorData","class","cx","cy","Library","definitions","additions","_pullDefinitions","_normalized$key","ensureCss","_cssInserted","innerHTML","headChildren","childNodes","beforeChild","child","insertCss","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","findIconDefinition","iconLookup","_iconLookup$prefix","library","parse","transformString","parseTransformString","iconDefinition","abstractCreator","_params$transform","_params$symbol","symbol","_params$mask","mask","_params$maskId","maskId","_params$title","_params$titleId","titleId","_params$classes","classes","_params$attributes","_params$styles","_params$icons","main","extra","_params$watchable","watchable","isUploadedIcon","widthClass","attrClass","uploadedIconWidthStyle","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","makeInlineSvgAbstract","container","html","maybeIconDefinition","enumerableOnly","symbols","_objectSpread2","excluded","sourceKeys","sourceSymbolKeys","camelize","chr","_excluded$1","normalizeIconArgs","objectWithKey","FontAwesomeIcon","forwardedRef","iconArgs","maskArgs","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","classList","renderedIcon","_console","extraProps","convertCurry","mixins","attrs","pair","startsWith","_extraProps$style","existingStyle","faCheckCircle","faCopy","clipboardAPI","clipboard","wait","ms","Clipboard","copyToClipboard","onClickHandler","copySuccess","getTargetText","stringifyId","copied","prevProps","v","wild","htmlContent","_asyncToGenerator","blobHtml","blobText","ClipboardItem","write","writeText","target_id","getElementById","_this2","_this3","html_content","copied_children","button_children","DashContext","ConfirmDialog","_update","displayed","shouldTriggerDisplay","cancel_n_clicks","submit_n_clicks","confirm","submit_n_clicks_timestamp","cancel_n_clicks_timestamp","ConfirmDialogProvider","wrapClick","extract","parsed","storedValue","RealDatePickerRange","datePickerRange","DatePickerRange","calendar_orientation","is_RTL","day_size","with_portal","with_full_screen_portal","first_day_of_week","number_of_months_shown","stay_open_on_select","reopen_calendar_on_clear","show_outside_days","updatemode","start_date","end_date","disabled_days","persistenceTransforms","transformDate","RealDatePickerSingle","datePickerSingle","DatePickerSingle","placeholder","getValue","Download","toByteArray","blob","Geolocation","success","updatePosition","update_now","geolocation","positionOptions","enableHighAccuracy","high_accuracy","maximumAge","maximum_age","getCurrentPosition","_crd$latitude","_crd$longitude","_crd$accuracy","_crd$altitude","_crd$altitudeAccuracy","_crd$speed","_crd$heading","crd","coords","position_obj","lat","latitude","lon","longitude","accuracy","alt","altitude","alt_accuracy","altitudeAccuracy","speed","heading","local_date","toLocaleString","position_error","show_alert","alert","Interval","intervalId","reportInterval","handleTimer","max_intervals","n_intervals","clearTimer","setInterval","resetTimer","clearInterval","pairs","XAny","_xany","DebugTitle","spinnerComponentOptions","debugTitle","fullscreen","debug","spinnerClass","cube","color","circle","dot","coveringSpinner","visibility","display","justifyContent","alignItems","targetComponents","parent_className","parent_style","overlay_style","show_initially","spinnerType","delay_hide","delay_show","target_components","custom_spinner","useSelector","stringPath","loadingChildren","toPairs","load","showSpinner","setShowSpinner","dismissTimer","showTimer","containerStyle","Spinner","getSpinner","Location","updateLocation","onLocationChange","pathname","propsToSet","checkExistsUpdateWindowLocation","fieldName","propVal","pathnameUpdated","hrefUpdated","hashUpdated","searchUpdated","searchVal","hashVal","propsToChange","History","dispatchChangeEvent","RadioItems","RealRangeSlider","rangeSlider","RangeSlider","verticalHeight","allow_direct_input","isInteger","RealSlider","Slider","drag_value","mappedValue","mappedDragValue","mappedSetProps","newProps","mappedProps","MemStore","_modified","getItem","setItem","setModified","removeItem","getModified","WebStore","storage","_storage","Store","storage_type","_backstore","localStorage","sessionStorage","onStorageChange","oldValue","modified_timestamp","UNSAFE_componentWillMount","old","clear_data","disabled_style","EnhancedTab","selected_className","selected_style","selectHandler","disabled_className","labelDisplay","rawPath","tabStyle","tabClassNames","Tabs","EnhancedTabs","selectedTab","mobile_breakpoint","primary","background","vertical","initializedRef","isAboveBreakpoint","setIsAboveBreakpoint","parseChildrenToArray","valueOrDefault","_firstChildren$value","getLayout","mediaQuery","matchMedia","matches","handler","_childProps$style","childProps","flex","selectedTabContent","tabContainerClassNames","tabContentClassNames","content_className","tabParentClassNames","cssVars","content_style","dashChildrenUpdate","textAreaProps","Textarea","required","autoFocus","show","targetable","border_color","background_color","zindex","loading_text","bbox","show_tooltip","x0","x1","y0","y1"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dash/dcc/metadata.json b/dash/dcc/metadata.json index a339448405..4894cb463f 100644 --- a/dash/dcc/metadata.json +++ b/dash/dcc/metadata.json @@ -1 +1 @@ -{"src/components/Clipboard.react.js":{"description":"The Clipboard component copies text to the clipboard","displayName":"Clipboard","methods":[{"name":"onClickHandler","docblock":null,"modifiers":[],"params":[],"returns":null},{"name":"stringifyId","docblock":null,"modifiers":[],"params":[{"name":"id","type":null}],"returns":null},{"name":"copySuccess","docblock":null,"modifiers":["async"],"params":[{"name":"content","type":null},{"name":"htmlContent","type":null}],"returns":null},{"name":"getTargetText","docblock":null,"modifiers":[],"params":[],"returns":null},{"name":"loading","docblock":null,"modifiers":["async"],"params":[],"returns":null},{"name":"copyToClipboard","docblock":null,"modifiers":["async"],"params":[],"returns":null}],"props":{"id":{"type":{"name":"string"},"required":false,"description":"The ID used to identify this component."},"children":{"type":{"name":"node"},"required":false,"description":"Children rendered inside the Clipboard button before copying. By default, a copy icon."},"copied_children":{"type":{"name":"node"},"required":false,"description":"Children rendered inside the Clipboard button after the value has been copied. By default, a check icon."},"target_id":{"type":{"name":"union","value":[{"name":"string"},{"name":"object"}]},"required":false,"description":"The id of target component containing text to copy to the clipboard.\nThe inner text of the `children` prop will be copied to the clipboard. If none, then the text from the\n `value` prop will be copied.","defaultValue":{"value":"null","computed":false}},"content":{"type":{"name":"string"},"required":false,"description":"The text to be copied to the clipboard if the `target_id` is None.","defaultValue":{"value":"null","computed":false}},"n_clicks":{"type":{"name":"number"},"required":false,"description":"The number of times Clipboard button was clicked","defaultValue":{"value":"0","computed":false}},"html_content":{"type":{"name":"string"},"required":false,"description":"The clipboard html text be copied to the clipboard if the `target_id` is None.","defaultValue":{"value":"null","computed":false}},"title":{"type":{"name":"string"},"required":false,"description":"The text shown as a tooltip when hovering over the copy icon."},"style":{"type":{"name":"object"},"required":false,"description":"The icon's styles"},"className":{"type":{"name":"string"},"required":false,"description":"The class name of the icon element"},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash-assigned callback that gets fired when the value changes."}}},"src/components/ConfirmDialog.react.js":{"description":"ConfirmDialog is used to display the browser's native \"confirm\" modal,\nwith an optional message and two buttons (\"OK\" and \"Cancel\").\nThis ConfirmDialog can be used in conjunction with buttons when the user\nis performing an action that should require an extra step of verification.","displayName":"ConfirmDialog","methods":[{"name":"_update","docblock":null,"modifiers":[],"params":[{"name":"shouldTriggerDisplay","type":null}],"returns":null}],"props":{"id":{"type":{"name":"string"},"required":false,"description":"The ID of this component, used to identify dash components\nin callbacks. The ID needs to be unique across all of the\ncomponents in an app."},"message":{"type":{"name":"string"},"required":false,"description":"Message to show in the popup."},"submit_n_clicks":{"type":{"name":"number"},"required":false,"description":"Number of times the submit button was clicked","defaultValue":{"value":"0","computed":false}},"submit_n_clicks_timestamp":{"type":{"name":"number"},"required":false,"description":"Last time the submit button was clicked.","defaultValue":{"value":"-1","computed":false}},"cancel_n_clicks":{"type":{"name":"number"},"required":false,"description":"Number of times the popup was canceled.","defaultValue":{"value":"0","computed":false}},"cancel_n_clicks_timestamp":{"type":{"name":"number"},"required":false,"description":"Last time the cancel button was clicked.","defaultValue":{"value":"-1","computed":false}},"displayed":{"type":{"name":"bool"},"required":false,"description":"Set to true to send the ConfirmDialog."},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash-assigned callback that gets fired when the value changes."}}},"src/components/ConfirmDialogProvider.react.js":{"description":"A wrapper component that will display a confirmation dialog\nwhen its child component has been clicked on.\n\nFor example:\n```\ndcc.ConfirmDialogProvider(\n html.Button('click me', id='btn'),\n message='Danger - Are you sure you want to continue.'\n id='confirm')\n```","displayName":"ConfirmDialogProvider","methods":[],"props":{"id":{"type":{"name":"string"},"required":false,"description":"The ID of this component, used to identify dash components\nin callbacks. The ID needs to be unique across all of the\ncomponents in an app."},"message":{"type":{"name":"string"},"required":false,"description":"Message to show in the popup."},"submit_n_clicks":{"type":{"name":"number"},"required":false,"description":"Number of times the submit was clicked","defaultValue":{"value":"0","computed":false}},"submit_n_clicks_timestamp":{"type":{"name":"number"},"required":false,"description":"Last time the submit button was clicked.","defaultValue":{"value":"-1","computed":false}},"cancel_n_clicks":{"type":{"name":"number"},"required":false,"description":"Number of times the popup was canceled.","defaultValue":{"value":"0","computed":false}},"cancel_n_clicks_timestamp":{"type":{"name":"number"},"required":false,"description":"Last time the cancel button was clicked.","defaultValue":{"value":"-1","computed":false}},"displayed":{"type":{"name":"bool"},"required":false,"description":"Is the modal currently displayed."},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash-assigned callback that gets fired when the value changes."},"children":{"type":{"name":"any"},"required":false,"description":"The children to hijack clicks from and display the popup."}}},"src/components/Download.react.js":{"description":"The Download component opens a download dialog when the data property changes.","displayName":"Download","methods":[],"props":{"id":{"type":{"name":"string"},"required":false,"description":"The ID of this component, used to identify dash components in callbacks."},"data":{"type":{"name":"exact","value":{"filename":{"name":"string","description":"Suggested filename in the download dialogue.","required":true},"content":{"name":"string","description":"File content.","required":true},"base64":{"name":"bool","description":"Set to true, when data is base64 encoded.","required":false},"type":{"name":"string","description":"Blob type, usually a MIME-type.","required":false}}},"required":false,"description":"On change, a download is invoked."},"base64":{"type":{"name":"bool"},"required":false,"description":"Default value for base64, used when not set as part of the data property.","defaultValue":{"value":"false","computed":false}},"type":{"type":{"name":"string"},"required":false,"description":"Default value for type, used when not set as part of the data property.","defaultValue":{"value":"'text/plain'","computed":false}},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash-supplied function for updating props."}}},"src/components/Geolocation.react.js":{"description":"The CurrentLocation component gets geolocation of the device from the web browser. See more info here:\nhttps://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API","displayName":"Geolocation","methods":[{"name":"updatePosition","docblock":null,"modifiers":[],"params":[],"returns":null},{"name":"success","docblock":null,"modifiers":[],"params":[{"name":"pos","type":null}],"returns":null},{"name":"error","docblock":null,"modifiers":[],"params":[{"name":"err","type":null}],"returns":null}],"props":{"id":{"type":{"name":"string"},"required":false,"description":"The ID used to identify this component in Dash callbacks."},"local_date":{"type":{"name":"string"},"required":false,"description":"The local date and time when the device position was updated.\nFormat: MM/DD/YYYY, hh:mm:ss p where p is AM or PM"},"timestamp":{"type":{"name":"number"},"required":false,"description":"The Unix timestamp from when the position was updated"},"position":{"type":{"name":"shape","value":{"lat":{"name":"number","required":false},"lon":{"name":"number","required":false},"accuracy":{"name":"number","required":false},"alt":{"name":"number","required":false},"alt_accuracy":{"name":"number","required":false},"heading":{"name":"number","required":false},"speed":{"name":"number","required":false}}},"required":false,"description":"The position of the device. `lat`, `lon`, and `accuracy` will always be returned. The other data will be included\nwhen available, otherwise it will be NaN.\n\n `lat` is latitude in degrees.\n `lon` is longitude in degrees.\n `accuracy` is the accuracy of the lat/lon in meters. *\n\n `alt` is altitude above mean sea level in meters.\n `alt_accuracy` is the accuracy of the altitude in meters.\n `heading` is the compass heading in degrees.\n `speed` is the speed in meters per second."},"position_error":{"type":{"name":"shape","value":{"code":{"name":"number","required":false},"message":{"name":"string","required":false}}},"required":false,"description":"Position error","defaultValue":{"value":"null","computed":false}},"show_alert":{"type":{"name":"bool"},"required":false,"description":"If true, error messages will be displayed as an alert","defaultValue":{"value":"false","computed":false}},"update_now":{"type":{"name":"bool"},"required":false,"description":"Forces a one-time update of the position data. If set to True in a callback, the browser\n will update the position data and reset update_now back to False. This can, for example, be used to update the\n position with a button or an interval timer.","defaultValue":{"value":"false","computed":false}},"high_accuracy":{"type":{"name":"bool"},"required":false,"description":"If true and if the device is able to provide a more accurate position,\n it will do so. Note that this can result in slower response times or increased power consumption (with a GPS\n chip on a mobile device for example). If false (the default value), the device can save resources by\n responding more quickly and/or using less power.","defaultValue":{"value":"false","computed":false}},"maximum_age":{"type":{"name":"number"},"required":false,"description":"The maximum age in milliseconds of a possible cached position that is acceptable to return. If set to 0,\nit means that the device cannot use a cached position and must attempt to retrieve the real current position.\nIf set to Infinity the device must return a cached position regardless of its age. Default: 0.","defaultValue":{"value":"0","computed":false}},"timeout":{"type":{"name":"number"},"required":false,"description":"The maximum length of time (in milliseconds) the device is allowed to take in order to return a position.\nThe default value is Infinity, meaning that data will not be return until the position is available.","defaultValue":{"value":"Infinity","computed":true}},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash-assigned callback that should be called to report property changes\nto Dash, to make them available for callbacks."}}},"src/components/Graph.react.js":{"description":"Graph can be used to render any plotly.js-powered data visualization.\n\nYou can define callbacks based on user interaction with Graphs such as\nhovering, clicking or selecting","displayName":"PlotlyGraph","methods":[{"name":"clearState","docblock":null,"modifiers":[],"params":[{"name":"dataKey","type":null}],"returns":null}],"props":{"id":{"type":{"name":"string"},"required":false,"description":"The ID of this component, used to identify dash components\nin callbacks. The ID needs to be unique across all of the\ncomponents in an app."},"responsive":{"type":{"name":"enum","value":[{"value":"true","computed":false},{"value":"false","computed":false},{"value":"'auto'","computed":false}]},"required":false,"description":"If True, the Plotly.js plot will be fully responsive to window resize\nand parent element resize event. This is achieved by overriding\n`config.responsive` to True, `figure.layout.autosize` to True and unsetting\n`figure.layout.height` and `figure.layout.width`.\nIf False, the Plotly.js plot not be responsive to window resize and\nparent element resize event. This is achieved by overriding `config.responsive`\nto False and `figure.layout.autosize` to False.\nIf 'auto' (default), the Graph will determine if the Plotly.js plot can be made fully\nresponsive (True) or not (False) based on the values in `config.responsive`,\n`figure.layout.autosize`, `figure.layout.height`, `figure.layout.width`.\nThis is the legacy behavior of the Graph component.\n\nNeeds to be combined with appropriate dimension / styling through the `style` prop\nto fully take effect.","defaultValue":{"value":"'auto'","computed":false}},"clickData":{"type":{"name":"object"},"required":false,"description":"Data from latest click event. Read-only.","defaultValue":{"value":"null","computed":false}},"clickAnnotationData":{"type":{"name":"object"},"required":false,"description":"Data from latest click annotation event. Read-only.","defaultValue":{"value":"null","computed":false}},"hoverData":{"type":{"name":"object"},"required":false,"description":"Data from latest hover event. Read-only.","defaultValue":{"value":"null","computed":false}},"clear_on_unhover":{"type":{"name":"bool"},"required":false,"description":"If True, `clear_on_unhover` will clear the `hoverData` property\nwhen the user \"unhovers\" from a point.\nIf False, then the `hoverData` property will be equal to the\ndata from the last point that was hovered over.","defaultValue":{"value":"false","computed":false}},"selectedData":{"type":{"name":"object"},"required":false,"description":"Data from latest select event. Read-only.","defaultValue":{"value":"null","computed":false}},"relayoutData":{"type":{"name":"object"},"required":false,"description":"Data from latest relayout event which occurs\nwhen the user zooms or pans on the plot or other\nlayout-level edits. Has the form `{: }`\ndescribing the changes made. Read-only.","defaultValue":{"value":"null","computed":false}},"extendData":{"type":{"name":"union","value":[{"name":"array"},{"name":"object"}]},"required":false,"description":"Data that should be appended to existing traces. Has the form\n`[updateData, traceIndices, maxPoints]`, where `updateData` is an object\ncontaining the data to extend, `traceIndices` (optional) is an array of\ntrace indices that should be extended, and `maxPoints` (optional) is\neither an integer defining the maximum number of points allowed or an\nobject with key:value pairs matching `updateData`\nReference the Plotly.extendTraces API for full usage:\nhttps://plotly.com/javascript/plotlyjs-function-reference/#plotlyextendtraces","defaultValue":{"value":"null","computed":false}},"prependData":{"type":{"name":"union","value":[{"name":"array"},{"name":"object"}]},"required":false,"description":"Data that should be prepended to existing traces. Has the form\n`[updateData, traceIndices, maxPoints]`, where `updateData` is an object\ncontaining the data to prepend, `traceIndices` (optional) is an array of\ntrace indices that should be prepended, and `maxPoints` (optional) is\neither an integer defining the maximum number of points allowed or an\nobject with key:value pairs matching `updateData`\nReference the Plotly.prependTraces API for full usage:\nhttps://plotly.com/javascript/plotlyjs-function-reference/#plotlyprependtraces","defaultValue":{"value":"null","computed":false}},"restyleData":{"type":{"name":"array"},"required":false,"description":"Data from latest restyle event which occurs\nwhen the user toggles a legend item, changes\nparcoords selections, or other trace-level edits.\nHas the form `[edits, indices]`, where `edits` is an object\n`{: }` describing the changes made,\nand `indices` is an array of trace indices that were edited.\nRead-only.","defaultValue":{"value":"null","computed":false}},"figure":{"type":{"name":"exact","value":{"data":{"name":"arrayOf","value":{"name":"object"},"required":false},"layout":{"name":"object","required":false},"frames":{"name":"arrayOf","value":{"name":"object"},"required":false}}},"required":false,"description":"Plotly `figure` object. See schema:\nhttps://plotly.com/javascript/reference\n\n`config` is set separately by the `config` property","defaultValue":{"value":"{\n data: [],\n layout: {},\n frames: [],\n}","computed":false}},"style":{"type":{"name":"object"},"required":false,"description":"Generic style overrides on the plot div"},"className":{"type":{"name":"string"},"required":false,"description":"className of the parent div"},"mathjax":{"type":{"name":"bool"},"required":false,"description":"If true, loads mathjax v3 (tex-svg) into the page and use it in the graph","defaultValue":{"value":"false","computed":false}},"animate":{"type":{"name":"bool"},"required":false,"description":"Beta: If true, animate between updates using\nplotly.js's `animate` function","defaultValue":{"value":"false","computed":false}},"animation_options":{"type":{"name":"object"},"required":false,"description":"Beta: Object containing animation settings.\nOnly applies if `animate` is `true`","defaultValue":{"value":"{\n frame: {\n redraw: false,\n },\n transition: {\n duration: 750,\n ease: 'cubic-in-out',\n },\n}","computed":false}},"config":{"type":{"name":"exact","value":{"staticPlot":{"name":"bool","description":"No interactivity, for export or image generation","required":false},"plotlyServerURL":{"name":"string","description":"Base URL for a Plotly cloud instance, if `showSendToCloud` is enabled","required":false},"editable":{"name":"bool","description":"We can edit titles, move annotations, etc - sets all pieces of `edits`\nunless a separate `edits` config item overrides individual parts","required":false},"editSelection":{"name":"bool","description":"Enables moving selections","required":false},"edits":{"name":"exact","value":{"annotationPosition":{"name":"bool","description":"The main anchor of the annotation, which is the\ntext (if no arrow) or the arrow (which drags the whole thing leaving\nthe arrow length & direction unchanged)","required":false},"annotationTail":{"name":"bool","description":"Just for annotations with arrows, change the length and direction of the arrow","required":false},"annotationText":{"name":"bool","required":false},"axisTitleText":{"name":"bool","required":false},"colorbarPosition":{"name":"bool","required":false},"colorbarTitleText":{"name":"bool","required":false},"legendPosition":{"name":"bool","required":false},"legendText":{"name":"bool","description":"Edit the trace name fields from the legend","required":false},"shapePosition":{"name":"bool","required":false},"titleText":{"name":"bool","description":"The global `layout.title`","required":false}},"description":"A set of editable properties","required":false},"autosizable":{"name":"bool","description":"DO autosize once regardless of layout.autosize\n(use default width or height values otherwise)","required":false},"responsive":{"name":"bool","description":"Whether to change layout size when the window size changes","required":false},"queueLength":{"name":"number","description":"Set the length of the undo/redo queue","required":false},"fillFrame":{"name":"bool","description":"If we DO autosize, do we fill the container or the screen?","required":false},"frameMargins":{"name":"number","description":"If we DO autosize, set the frame margins in percents of plot size","required":false},"scrollZoom":{"name":"bool","description":"Mousewheel or two-finger scroll zooms the plot","required":false},"doubleClick":{"name":"enum","value":[{"value":"false","computed":false},{"value":"'reset'","computed":false},{"value":"'autosize'","computed":false},{"value":"'reset+autosize'","computed":false}],"description":"Double click interaction (false, 'reset', 'autosize' or 'reset+autosize')","required":false},"doubleClickDelay":{"name":"number","description":"Delay for registering a double-click event in ms. The\nminimum value is 100 and the maximum value is 1000. By\ndefault this is 300.","required":false},"showTips":{"name":"bool","description":"New users see some hints about interactivity","required":false},"showAxisDragHandles":{"name":"bool","description":"Enable axis pan/zoom drag handles","required":false},"showAxisRangeEntryBoxes":{"name":"bool","description":"Enable direct range entry at the pan/zoom drag points\n(drag handles must be enabled above)","required":false},"showLink":{"name":"bool","description":"Link to open this plot in plotly","required":false},"sendData":{"name":"bool","description":"If we show a link, does it contain data or just link to a plotly file?","required":false},"linkText":{"name":"string","description":"Text appearing in the sendData link","required":false},"displayModeBar":{"name":"enum","value":[{"value":"true","computed":false},{"value":"false","computed":false},{"value":"'hover'","computed":false}],"description":"Display the mode bar (true, false, or 'hover')","required":false},"showSendToCloud":{"name":"bool","description":"Should we include a modebar button to send this data to a\nPlotly Cloud instance, linked by `plotlyServerURL`.\nBy default this is false.","required":false},"showEditInChartStudio":{"name":"bool","description":"Should we show a modebar button to send this data to a\nPlotly Chart Studio plot. If both this and showSendToCloud\nare selected, only showEditInChartStudio will be\nhonored. By default this is false.","required":false},"modeBarButtonsToRemove":{"name":"array","description":"Remove mode bar button by name.\nAll modebar button names at https://github.com/plotly/plotly.js/blob/master/src/components/modebar/buttons.js\nCommon names include:\nsendDataToCloud;\n(2D) zoom2d, pan2d, select2d, lasso2d, zoomIn2d, zoomOut2d, autoScale2d, resetScale2d;\n(Cartesian) hoverClosestCartesian, hoverCompareCartesian;\n(3D) zoom3d, pan3d, orbitRotation, tableRotation, handleDrag3d, resetCameraDefault3d, resetCameraLastSave3d, hoverClosest3d;\n(Geo) zoomInGeo, zoomOutGeo, resetGeo, hoverClosestGeo;\nhoverClosestGl2d, hoverClosestPie, toggleHover, resetViews.","required":false},"modeBarButtonsToAdd":{"name":"array","description":"Add mode bar button using config objects","required":false},"modeBarButtons":{"name":"any","description":"Fully custom mode bar buttons as nested array,\nwhere the outer arrays represents button groups, and\nthe inner arrays have buttons config objects or names of default buttons","required":false},"toImageButtonOptions":{"name":"exact","value":{"format":{"name":"enum","value":[{"value":"'jpeg'","computed":false},{"value":"'png'","computed":false},{"value":"'webp'","computed":false},{"value":"'svg'","computed":false}],"description":"The file format to create","required":false},"filename":{"name":"string","description":"The name given to the downloaded file","required":false},"width":{"name":"number","description":"Width of the downloaded file, in px","required":false},"height":{"name":"number","description":"Height of the downloaded file, in px","required":false},"scale":{"name":"number","description":"Extra resolution to give the file after\nrendering it with the given width and height","required":false}},"description":"Modifications to how the toImage modebar button works","required":false},"displaylogo":{"name":"bool","description":"Add the plotly logo on the end of the mode bar","required":false},"watermark":{"name":"bool","description":"Add the plotly logo even with no modebar","required":false},"plotGlPixelRatio":{"name":"number","description":"Increase the pixel ratio for Gl plot images","required":false},"topojsonURL":{"name":"string","description":"URL to topojson files used in geo charts","required":false},"mapboxAccessToken":{"name":"any","description":"Mapbox access token (required to plot mapbox trace types)\nIf using an Mapbox Atlas server, set this option to '',\nso that plotly.js won't attempt to authenticate to the public Mapbox server.","required":false},"locale":{"name":"string","description":"The locale to use. Locales may be provided with the plot\n(`locales` below) or by loading them on the page, see:\nhttps://github.com/plotly/plotly.js/blob/master/dist/README.md#to-include-localization","required":false},"locales":{"name":"object","description":"Localization definitions, if you choose to provide them with the\nplot rather than registering them globally.","required":false}}},"required":false,"description":"Plotly.js config options.\nSee https://plotly.com/javascript/configuration-options/\nfor more info.","defaultValue":{"value":"{}","computed":false}},"setProps":{"type":{"name":"func"},"required":false,"description":"Function that updates the state tree."}},"composes":["../fragments/Graph.privateprops"]},"src/components/Interval.react.js":{"description":"A component that repeatedly increments a counter `n_intervals`\nwith a fixed time delay between each increment.\nInterval is good for triggering a component on a recurring basis.\nThe time delay is set with the property \"interval\" in milliseconds.","displayName":"Interval","methods":[{"name":"handleTimer","docblock":null,"modifiers":[],"params":[{"name":"props","type":null}],"returns":null},{"name":"resetTimer","docblock":null,"modifiers":[],"params":[{"name":"props","type":null}],"returns":null},{"name":"clearTimer","docblock":null,"modifiers":[],"params":[],"returns":null},{"name":"reportInterval","docblock":null,"modifiers":[],"params":[],"returns":null}],"props":{"id":{"type":{"name":"string"},"required":false,"description":"The ID of this component, used to identify dash components\nin callbacks. The ID needs to be unique across all of the\ncomponents in an app."},"interval":{"type":{"name":"number"},"required":false,"description":"This component will increment the counter `n_intervals` every\n`interval` milliseconds","defaultValue":{"value":"1000","computed":false}},"disabled":{"type":{"name":"bool"},"required":false,"description":"If True, the counter will no longer update"},"n_intervals":{"type":{"name":"number"},"required":false,"description":"Number of times the interval has passed","defaultValue":{"value":"0","computed":false}},"max_intervals":{"type":{"name":"number"},"required":false,"description":"Number of times the interval will be fired.\nIf -1, then the interval has no limit (the default)\nand if 0 then the interval stops running.","defaultValue":{"value":"-1","computed":false}},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash assigned callback"}}},"src/components/Link.react.js":{"description":"Link allows you to create a clickable link within a multi-page app.\n\nFor links with destinations outside the current app, `html.A` is a better\ncomponent to use.","displayName":"Link","methods":[],"props":{"children":{"type":{"name":"node"},"required":false,"description":"The children of this component"},"href":{"type":{"name":"string"},"required":true,"description":"The URL of a linked resource."},"target":{"type":{"name":"string"},"required":false,"description":"Specifies where to open the link reference."},"refresh":{"type":{"name":"bool"},"required":false,"description":"Controls whether or not the page will refresh when the link is clicked","defaultValue":{"value":"false","computed":false}},"title":{"type":{"name":"string"},"required":false,"description":"Adds the title attribute to your link, which can contain supplementary\ninformation."},"className":{"type":{"name":"string"},"required":false,"description":"Often used with CSS to style elements with common properties."},"style":{"type":{"name":"object"},"required":false,"description":"Defines CSS styles which will override styles previously set."},"id":{"type":{"name":"string"},"required":false,"description":"The ID of this component, used to identify dash components\nin callbacks. The ID needs to be unique across all of the\ncomponents in an app."},"loading_state":{"type":{"name":"shape","value":{"is_loading":{"name":"bool","description":"Determines if the component is loading or not","required":false},"prop_name":{"name":"string","description":"Holds which property is loading","required":false},"component_name":{"name":"string","description":"Holds the name of the component that is loading","required":false}}},"required":false,"description":"Object that holds the loading state object coming from dash-renderer"},"setProps":{"type":{"name":"func"},"required":false,"description":""}}},"src/components/Location.react.js":{"description":"Update and track the current window.location object through the window.history state.\nUse in conjunction with the `dash_core_components.Link` component to make apps with multiple pages.","displayName":"Location","methods":[{"name":"updateLocation","docblock":null,"modifiers":[],"params":[{"name":"props","type":null}],"returns":null},{"name":"onLocationChange","docblock":null,"modifiers":[],"params":[],"returns":null}],"props":{"id":{"type":{"name":"string"},"required":true,"description":"The ID of this component, used to identify dash components\nin callbacks. The ID needs to be unique across all of the\ncomponents in an app."},"pathname":{"type":{"name":"string"},"required":false,"description":"pathname in window.location - e.g., \"/my/full/pathname\""},"search":{"type":{"name":"string"},"required":false,"description":"search in window.location - e.g., \"?myargument=1\""},"hash":{"type":{"name":"string"},"required":false,"description":"hash in window.location - e.g., \"#myhash\""},"href":{"type":{"name":"string"},"required":false,"description":"href in window.location - e.g., \"/my/full/pathname?myargument=1#myhash\""},"refresh":{"type":{"name":"union","value":[{"name":"enum","value":[{"value":"'callback-nav'","computed":false}]},{"name":"bool"}]},"required":false,"description":"Use `True` to navigate outside the Dash app or to manually refresh a page.\nUse `False` if the same callback that updates the Location component is also\nupdating the page content - typically used in multi-page apps that do not use Pages.\nUse 'callback-nav' if you are updating the URL in a callback, or a different\ncallback will respond to the new Location with updated content. This is\ntypical with multi-page apps that use Pages. This will allow for\nnavigating to a new page without refreshing the page.","defaultValue":{"value":"true","computed":false}},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash-assigned callback that gets fired when the value changes."}}},"src/components/Markdown.react.js":{"description":"A component that renders Markdown text as specified by the\nGitHub Markdown spec. These component uses\n[react-markdown](https://rexxars.github.io/react-markdown/) under the hood.","displayName":"DashMarkdown","methods":[],"props":{"id":{"type":{"name":"string"},"required":false,"description":"The ID of this component, used to identify dash components\nin callbacks. The ID needs to be unique across all of the\ncomponents in an app."},"className":{"type":{"name":"string"},"required":false,"description":"Class name of the container element"},"mathjax":{"type":{"name":"bool"},"required":false,"description":"If true, loads mathjax v3 (tex-svg) into the page and use it in the markdown","defaultValue":{"value":"false","computed":false}},"dangerously_allow_html":{"type":{"name":"bool"},"required":false,"description":"A boolean to control raw HTML escaping.\nSetting HTML from code is risky because it's easy to\ninadvertently expose your users to a cross-site scripting (XSS)\n(https://en.wikipedia.org/wiki/Cross-site_scripting) attack.","defaultValue":{"value":"false","computed":false}},"link_target":{"type":{"name":"string"},"required":false,"description":"A string for the target attribute to use on links (such as \"_blank\")"},"children":{"type":{"name":"union","value":[{"name":"string"},{"name":"arrayOf","value":{"name":"string"}}]},"required":false,"description":"A markdown string (or array of strings) that adheres to the CommonMark spec"},"dedent":{"type":{"name":"bool"},"required":false,"description":"Remove matching leading whitespace from all lines.\nLines that are empty, or contain *only* whitespace, are ignored.\nBoth spaces and tab characters are removed, but only if they match;\nwe will not convert tabs to spaces or vice versa.","defaultValue":{"value":"true","computed":false}},"highlight_config":{"type":{"name":"exact","value":{"theme":{"name":"enum","value":[{"value":"'dark'","computed":false},{"value":"'light'","computed":false}],"description":"Color scheme; default 'light'","required":false}}},"required":false,"description":"Config options for syntax highlighting.","defaultValue":{"value":"{}","computed":false}},"style":{"type":{"name":"object"},"required":false,"description":"User-defined inline styles for the rendered Markdown"}}},"src/components/Store.react.js":{"description":"Easily keep data on the client side with this component.\nThe data is not inserted in the DOM.\nData can be in memory, localStorage or sessionStorage.\nThe data will be kept with the id as key.","displayName":"Store","methods":[{"name":"onStorageChange","docblock":null,"modifiers":[],"params":[{"name":"e","type":null}],"returns":null}],"props":{"id":{"type":{"name":"string"},"required":true,"description":"The ID of this component, used to identify dash components\nin callbacks. The ID needs to be unique across all of the\ncomponents in an app."},"storage_type":{"type":{"name":"enum","value":[{"value":"'local'","computed":false},{"value":"'session'","computed":false},{"value":"'memory'","computed":false}]},"required":false,"description":"The type of the web storage.\n\nmemory: only kept in memory, reset on page refresh.\nlocal: window.localStorage, data is kept after the browser quit.\nsession: window.sessionStorage, data is cleared once the browser quit.","defaultValue":{"value":"'memory'","computed":false}},"data":{"type":{"name":"union","value":[{"name":"object"},{"name":"array"},{"name":"number"},{"name":"string"},{"name":"bool"}]},"required":false,"description":"The stored data for the id."},"clear_data":{"type":{"name":"bool"},"required":false,"description":"Set to true to remove the data contained in `data_key`.","defaultValue":{"value":"false","computed":false}},"modified_timestamp":{"type":{"name":"number"},"required":false,"description":"The last time the storage was modified.","defaultValue":{"value":"-1","computed":false}},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash-assigned callback that gets fired when the value changes."}}},"src/components/Upload.react.js":{"description":"Upload components allow your app to accept user-uploaded files via drag'n'drop","displayName":"Upload","methods":[],"props":{"id":{"type":{"name":"string"},"required":false,"description":"The ID of this component, used to identify dash components\nin callbacks. The ID needs to be unique across all of the\ncomponents in an app."},"contents":{"type":{"name":"union","value":[{"name":"string","description":"If `multiple` is `false`, then the contents will be a string"},{"name":"arrayOf","value":{"name":"string"},"description":"If `multiple` is `true`, then the contents will be a list of strings"}]},"required":false,"description":"The contents of the uploaded file as a binary string"},"filename":{"type":{"name":"union","value":[{"name":"string","description":"If `multiple` is `false`, then the contents will be a string"},{"name":"arrayOf","value":{"name":"string"},"description":"If `multiple` is `true`, then the contents will be a list of strings"}]},"required":false,"description":"The name of the file(s) that was(were) uploaded.\nNote that this does not include the path of the file\n(for security reasons)."},"last_modified":{"type":{"name":"union","value":[{"name":"number","description":"If `multiple` is `false`, then the contents will be a number"},{"name":"arrayOf","value":{"name":"number"},"description":"If `multiple` is `true`, then the contents will be a list of numbers"}]},"required":false,"description":"The last modified date of the file that was uploaded in unix time\n(seconds since 1970)."},"children":{"type":{"name":"union","value":[{"name":"node"},{"name":"string"}]},"required":false,"description":"Contents of the upload component"},"accept":{"type":{"name":"string"},"required":false,"description":"Allow specific types of files.\nSee https://github.com/okonet/attr-accept for more information.\nKeep in mind that mime type determination is not reliable across\nplatforms. CSV files, for example, are reported as text/plain\nunder macOS but as application/vnd.ms-excel under Windows.\nIn some cases there might not be a mime type set at all.\nSee: https://github.com/react-dropzone/react-dropzone/issues/276"},"disabled":{"type":{"name":"bool"},"required":false,"description":"Enable/disable the upload component entirely","defaultValue":{"value":"false","computed":false}},"disable_click":{"type":{"name":"bool"},"required":false,"description":"Disallow clicking on the component to open the file dialog","defaultValue":{"value":"false","computed":false}},"max_size":{"type":{"name":"number"},"required":false,"description":"Maximum file size in bytes. If `-1`, then infinite","defaultValue":{"value":"-1","computed":false}},"min_size":{"type":{"name":"number"},"required":false,"description":"Minimum file size in bytes","defaultValue":{"value":"0","computed":false}},"multiple":{"type":{"name":"bool"},"required":false,"description":"Allow dropping multiple files.\nWhen true, enables folder drag-and-drop support.\nThe folder hierarchy is preserved in filenames (e.g., 'folder/subfolder/file.txt').\nNote: Folder drag-and-drop is supported in Chrome, Edge, and Opera.","defaultValue":{"value":"false","computed":false}},"enable_folder_selection":{"type":{"name":"bool"},"required":false,"description":"Enable folder selection in the file picker dialog.\nWhen true with multiple=True, the file picker allows selecting folders instead of files.\nNote: When folder selection is enabled, individual files cannot be selected via the button.\nUse separate Upload components if you need both file and folder selection options.\nFolder selection is supported in Chrome, Edge, and Opera.","defaultValue":{"value":"false","computed":false}},"className":{"type":{"name":"string"},"required":false,"description":"HTML class name of the component"},"className_active":{"type":{"name":"string"},"required":false,"description":"HTML class name of the component while active"},"className_reject":{"type":{"name":"string"},"required":false,"description":"HTML class name of the component if rejected"},"className_disabled":{"type":{"name":"string"},"required":false,"description":"HTML class name of the component if disabled"},"style":{"type":{"name":"object"},"required":false,"description":"CSS styles to apply","defaultValue":{"value":"{}","computed":false}},"style_active":{"type":{"name":"object"},"required":false,"description":"CSS styles to apply while active","defaultValue":{"value":"{\n borderStyle: 'solid',\n borderColor: '#6c6',\n backgroundColor: '#eee',\n}","computed":false}},"style_reject":{"type":{"name":"object"},"required":false,"description":"CSS styles if rejected","defaultValue":{"value":"{\n borderStyle: 'solid',\n borderColor: '#c66',\n backgroundColor: '#eee',\n}","computed":false}},"style_disabled":{"type":{"name":"object"},"required":false,"description":"CSS styles if disabled","defaultValue":{"value":"{\n opacity: 0.5,\n}","computed":false}},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash-supplied function for updating props"}}},"src/components/Button.tsx":{"displayName":"Button","description":"Similar to dash.html.Button, but with theming and styles applied.","props":{"className":{"description":"Additional CSS class for the root DOM node","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"setProps":{"description":"Dash-assigned callback that gets fired when component properties change","required":true,"type":{"name":"func","raw":"(props: Partial) => void"}},"persistence":{"description":"Used to allow user interactions in this component to be persisted when\nthe component - or the page - is refreshed. If `persisted` is truthy and\nhasn't changed from its previous value, a `value` that the user has\nchanged while using the app will keep that change, as long as\nthe new `value` also matches what was given originally.\nUsed in conjunction with `persistence_type`.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"},{"name":"number","raw":"number"},{"name":"bool","raw":"false"}],"raw":"string | number | boolean | undefined"}},"persisted_props":{"description":"Properties whose user interactions will persist after refreshing the\ncomponent or the page. Since only `value` is allowed this prop can\nnormally be ignored.","required":false,"type":{"name":"any","raw":"PersistedProps[] | undefined"}},"persistence_type":{"description":"Where persisted user changes will be stored:\nmemory: only kept in memory, reset on page refresh.\nlocal: window.localStorage, data is kept after the browser quit.\nsession: window.sessionStorage, data is cleared once the browser quit.","required":false,"type":{"name":"enum","value":[{"computed":false},{"value":"'local'","computed":false},{"value":"'session'","computed":false},{"value":"'memory'","computed":false}],"raw":"PersistenceTypes | undefined"}},"id":{"description":"The ID of this component, used to identify dash components in callbacks.\nThe ID needs to be unique across all of the components in an app.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"componentPath":{"description":"","required":false,"type":{"name":"any","raw":"DashLayoutPath | undefined"}},"children":{"description":"The children of this component.","required":false,"type":{"name":"node","raw":"ReactNode"}},"type":{"description":"Defines the type of the element.","required":false,"defaultValue":{"value":"'button'","computed":false},"type":{"name":"enum","value":[{"computed":false},{"value":"'submit'","computed":false},{"value":"'reset'","computed":false},{"value":"'button'","computed":false}],"raw":"\"submit\" | \"reset\" | \"button\" | undefined"}},"autoFocus":{"description":"The element should be automatically focused after the page loaded.","required":false,"type":{"name":"union","value":[{"name":"bool","raw":"false"}],"raw":"boolean | undefined"}},"disabled":{"description":"Indicates whether the user can interact with the element.","required":false,"type":{"name":"union","value":[{"name":"bool","raw":"false"}],"raw":"boolean | undefined"}},"form":{"description":"Indicates the form that is the owner of the element.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"formAction":{"description":"Indicates the action of the element, overriding the action defined in the .","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"formEncType":{"description":"If the button/input is a submit button (type=\"submit\"), this attribute sets the encoding type to use during form submission. If this attribute is specified, it overrides the enctype attribute of the button's form owner.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"formMethod":{"description":"If the button/input is a submit button (type=\"submit\"), this attribute sets the submission method to use during form submission (GET, POST, etc.). If this attribute is specified, it overrides the method attribute of the button's form owner.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"formNoValidate":{"description":"If the button/input is a submit button (type=\"submit\"), this boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the novalidate attribute of the button's form owner.","required":false,"type":{"name":"union","value":[{"name":"bool","raw":"false"}],"raw":"boolean | undefined"}},"formTarget":{"description":"If the button/input is a submit button (type=\"submit\"), this attribute specifies the browsing context (for example, tab, window, or inline frame) in which to display the response that is received after submitting the form. If this attribute is specified, it overrides the target attribute of the button's form owner.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"name":{"description":"Name of the element. For example used by the server to identify the fields in form submits.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"value":{"description":"Defines a default value which will be displayed in the element on page load.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"},{"name":"number","raw":"number"},{"name":"arrayOf","value":{"name":"string","raw":"string"},"raw":"string[]"}],"raw":"string | number | string[] | undefined"}},"accessKey":{"description":"Keyboard shortcut to activate or add focus to the element.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"contentEditable":{"description":"Indicates whether the element's content is editable.","required":false,"type":{"name":"union","value":[{"name":"bool","raw":"false"},{"name":"literal","value":"true"},{"name":"literal","value":"false"},{"name":"literal","value":"inherit"}],"raw":"boolean | \"true\" | \"false\" | \"inherit\" | undefined"}},"dir":{"description":"Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left).","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"draggable":{"description":"Defines whether the element can be dragged.","required":false,"type":{"name":"union","value":[{"name":"bool","raw":"false"}],"raw":"boolean | undefined"}},"hidden":{"description":"Prevents rendering of given element, while keeping child elements, e.g. script elements, active.","required":false,"type":{"name":"union","value":[{"name":"bool","raw":"false"}],"raw":"boolean | undefined"}},"lang":{"description":"Defines the language used in the element.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"role":{"description":"Defines the role of an element in the context of accessibility.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"spellCheck":{"description":"Indicates whether spell checking is allowed for the element.","required":false,"type":{"name":"union","value":[{"name":"bool","raw":"false"}],"raw":"boolean | undefined"}},"style":{"description":"Defines CSS styles which will override styles previously set.","required":false,"type":{"name":"any","raw":"CSSProperties | undefined"}},"tabIndex":{"description":"Overrides the browser's default tab order and follows the one specified instead.","required":false,"type":{"name":"union","value":[{"name":"number","raw":"number"}],"raw":"number | undefined"}},"title":{"description":"Text to be displayed in a tooltip when hovering over the element.","required":false,"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"n_blur":{"description":"Number of times the button lost focus.","required":false,"defaultValue":{"value":"0","computed":false},"type":{"name":"union","value":[{"name":"number","raw":"number"}],"raw":"number | undefined"}},"n_blur_timestamp":{"description":"Last time the button lost focus.","required":false,"defaultValue":{"value":"-1","computed":false},"type":{"name":"union","value":[{"name":"number","raw":"number"}],"raw":"number | undefined"}},"n_clicks":{"description":"Number of times the button has been clicked.","required":false,"defaultValue":{"value":"0","computed":false},"type":{"name":"union","value":[{"name":"number","raw":"number"}],"raw":"number | undefined"}},"n_clicks_timestamp":{"description":"Last time the button was clicked.","required":false,"defaultValue":{"value":"-1","computed":false},"type":{"name":"union","value":[{"name":"number","raw":"number"}],"raw":"number | undefined"}}},"isContext":false},"src/components/Checklist.tsx":{"displayName":"Checklist","description":"Checklist is a component that encapsulates several checkboxes.\nThe values and labels of the checklist are specified in the `options`\nproperty and the checked items are specified with the `value` property.\nEach checkbox is rendered as an input with a surrounding label.","props":{"options":{"description":"An array of options","required":false,"defaultValue":{"value":"[]","computed":false},"type":{"name":"any","raw":"OptionsArray | OptionsDict | undefined"}},"value":{"description":"The currently selected value","required":false,"defaultValue":{"value":"[]","computed":false},"type":{"name":"union","value":[{"name":"arrayOf","value":{"name":"union","value":[{"name":"string","raw":"string"},{"name":"number","raw":"number"},{"name":"bool","raw":"false"}],"raw":"OptionValue"},"raw":"OptionValue[]"}],"raw":"OptionValue[] | null | undefined"}},"inline":{"description":"Indicates whether the options labels should be displayed inline (true=horizontal)\nor in a block (false=vertical).","required":false,"defaultValue":{"value":"false","computed":false},"type":{"name":"union","value":[{"name":"bool","raw":"false"}],"raw":"boolean | undefined"}},"style":{"description":"The style of the container (div)","required":false,"type":{"name":"any","raw":"CSSProperties | undefined"}},"inputStyle":{"description":"The style of the checkbox element","required":false,"defaultValue":{"value":"{}","computed":false},"type":{"name":"any","raw":"CSSProperties | undefined"}},"inputClassName":{"description":"The class of the checkbox element","required":false,"defaultValue":{"value":"''","computed":false},"type":{"name":"union","value":[{"name":"string","raw":"string"}],"raw":"string | undefined"}},"labelStyle":{"description":"The style of the