diff --git a/apps/OpenSign/.babelrc b/apps/OpenSign/.babelrc new file mode 100644 index 000000000..76957d6a9 --- /dev/null +++ b/apps/OpenSign/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/preset-env", "@babel/preset-react"] + } \ No newline at end of file diff --git a/apps/OpenSign/babel.config.js b/apps/OpenSign/babel.config.js new file mode 100644 index 000000000..8db75ad87 --- /dev/null +++ b/apps/OpenSign/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ["@babel/preset-env", "@babel/preset-react"] +}; diff --git a/apps/OpenSign/package-lock.json b/apps/OpenSign/package-lock.json index dbc39ab7b..feaef4860 100644 --- a/apps/OpenSign/package-lock.json +++ b/apps/OpenSign/package-lock.json @@ -56,18 +56,30 @@ "ws": "^8.18.0" }, "devDependencies": { + "@babel/core": "^7.24.6", + "@babel/preset-env": "^7.24.6", + "@babel/preset-react": "^7.24.6", "@babel/runtime-corejs2": "^7.24.7", "autoprefixer": "^10.4.19", + "babel-loader": "^9.1.3", + "clean-webpack-plugin": "^4.0.0", "commitizen": "^4.3.0", + "concurrently": "^8.2.2", + "css-loader": "^7.1.2", "daisyui": "^4.12.10", + "dotenv": "^16.4.5", + "dotenv-webpack": "^8.1.0", "eslint": "^8.57.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react": "^7.34.3", "lint-staged": "^15.2.7", + "mini-css-extract-plugin": "^2.9.0", "postcss": "^8.4.39", "prettier": "^3.3.2", "pretty-quick": "^4.0.0", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.4", + "terser-webpack-plugin": "^5.3.10", + "webpack-cli": "^5.1.4" } }, "node_modules/@alloc/quick-lru": { @@ -2459,6 +2471,15 @@ "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", @@ -9959,6 +9980,16 @@ "@types/send": "*" } }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -10030,6 +10061,12 @@ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, "node_modules/@types/node": { "version": "20.14.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.0.tgz", @@ -10502,6 +10539,50 @@ "@xtuc/long": "4.2.2" } }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -10880,6 +10961,15 @@ "node": ">=8" } }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", @@ -11204,66 +11294,20 @@ } }, "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 8.9" + "node": ">= 14.15.0" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/babel-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/babel-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "@babel/core": "^7.12.0", + "webpack": ">=5" } }, "node_modules/babel-plugin-istanbul": { @@ -12195,6 +12239,21 @@ "node": ">=0.10.0" } }, + "node_modules/clean-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", + "dev": true, + "dependencies": { + "del": "^4.1.1" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" + } + }, "node_modules/cli-boxes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", @@ -12431,6 +12490,20 @@ "node": ">=0.8" } }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -12571,6 +12644,12 @@ "node": ">= 12" } }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, "node_modules/common-tags": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", @@ -12635,6 +12714,169 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "node_modules/concurrently": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/concurrently/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/concurrently/node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/concurrently/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/concurrently/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", @@ -12861,6 +13103,53 @@ "postcss": "^8.4" } }, + "node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/css-minimizer-webpack-plugin": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", @@ -13583,6 +13872,83 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -13888,9 +14254,31 @@ } }, "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-defaults": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz", + "integrity": "sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==", + "dev": true, + "dependencies": { + "dotenv": "^8.2.0" + } + }, + "node_modules/dotenv-defaults/node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true, "engines": { "node": ">=10" } @@ -13900,6 +14288,21 @@ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" }, + "node_modules/dotenv-webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-8.1.0.tgz", + "integrity": "sha512-owK1JcsPkIobeqjVrk6h7jPED/W6ZpdFsMPR+5ursB7/SdgDyO+VzAU+szK8C8u3qUhtENyYnj8eyXMR5kkGag==", + "dev": true, + "dependencies": { + "dotenv-defaults": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "webpack": "^4 || ^5" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -13996,6 +14399,18 @@ "node": ">=6" } }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -14824,6 +15239,15 @@ "punycode": "^1.3.2" } }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, "node_modules/fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", @@ -15029,19 +15453,116 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-node-modules": { @@ -15089,6 +15610,15 @@ "node": ">= 8" } }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, "node_modules/flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", @@ -16477,6 +17007,15 @@ "node": ">= 0.4" } }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -16773,6 +17312,39 @@ "node": ">=0.10.0" } }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -16792,6 +17364,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-port-reachable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", @@ -17018,6 +17602,15 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -21047,6 +21640,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", @@ -21317,6 +21919,27 @@ "node": ">=0.10.0" } }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", @@ -24148,6 +24771,64 @@ "node": ">=4.0" } }, + "node_modules/react-scripts/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/react-scripts/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/react-scripts/node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/react-scripts/node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/react-scripts/node_modules/css-loader": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", @@ -24182,6 +24863,14 @@ } } }, + "node_modules/react-scripts/node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, "node_modules/react-scripts/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -24378,6 +25067,22 @@ "webpack": "^5.0.0" } }, + "node_modules/react-scripts/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, "node_modules/react-scripts/node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -24457,6 +25162,11 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/react-scripts/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/react-scripts/node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -24675,6 +25385,35 @@ "node": ">=8.10.0" } }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rechoir/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/recursive-readdir": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", @@ -25737,6 +26476,18 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -25975,6 +26726,12 @@ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "deprecated": "Please use @jridgewell/sourcemap-codec instead" }, + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -27083,6 +27840,15 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/trim-canvas": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/trim-canvas/-/trim-canvas-0.1.2.tgz", @@ -27768,6 +28534,60 @@ } } }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/webpack-dev-middleware": { "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", @@ -27891,6 +28711,20 @@ "node": ">=10.13.0" } }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", @@ -28175,6 +29009,12 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", diff --git a/apps/OpenSign/package.json b/apps/OpenSign/package.json index fef19780f..2ea02e21e 100644 --- a/apps/OpenSign/package.json +++ b/apps/OpenSign/package.json @@ -51,12 +51,14 @@ "ws": "^8.18.0" }, "scripts": { + "build-webpack": "webpack --config webpack.config.js", + "build": "npm run version && npm run build-webpack && react-scripts build", + "build-watch": "webpack --config webpack.config.js --watch", + "start-dev": "concurrently \"npm run build-watch\" \"react-scripts start\"", "start": "serve -s build", - "start-dev": "react-scripts start", "version": "curl -s https://api.github.com/repos/opensignlabs/opensign/releases/latest | grep '\"tag_name\":' | awk -F '\"' '{print $4}' > ./public/version.txt", "version-win": "powershell -Command \"Invoke-RestMethod -Uri 'https://api.github.com/repos/opensignlabs/opensign/releases/latest' | Select-Object -ExpandProperty tag_name | Out-File -FilePath ./public/version.txt\"", - "build": "npm run version && react-scripts build", - "build-win": "npm run version-win && react-scripts build", + "build-win": "npm run version-win && npm run build-webpack && react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject", "release": "standard-version", @@ -86,18 +88,30 @@ } }, "devDependencies": { + "@babel/core": "^7.24.6", + "@babel/preset-env": "^7.24.6", + "@babel/preset-react": "^7.24.6", "@babel/runtime-corejs2": "^7.24.7", "autoprefixer": "^10.4.19", + "babel-loader": "^9.1.3", + "clean-webpack-plugin": "^4.0.0", "commitizen": "^4.3.0", + "concurrently": "^8.2.2", + "css-loader": "^7.1.2", "daisyui": "^4.12.10", + "dotenv": "^16.4.5", + "dotenv-webpack": "^8.1.0", "eslint": "^8.57.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react": "^7.34.3", "lint-staged": "^15.2.7", + "mini-css-extract-plugin": "^2.9.0", "postcss": "^8.4.39", "prettier": "^3.3.2", "pretty-quick": "^4.0.0", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.4", + "terser-webpack-plugin": "^5.3.10", + "webpack-cli": "^5.1.4" }, "overrides": { "nth-check": "$nth-check", diff --git a/apps/OpenSign/public/css/fonts.css b/apps/OpenSign/public/css/fonts.css index 05a721f49..4f72f7615 100644 --- a/apps/OpenSign/public/css/fonts.css +++ b/apps/OpenSign/public/css/fonts.css @@ -28356,7 +28356,7 @@ :root { --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Pro"; } -/* @font-face { +@font-face { font-family: "Font Awesome 6 Pro"; font-style: normal; font-weight: 900; @@ -28364,7 +28364,7 @@ src: url(../webfonts/fa-solid-900.woff2) format("woff2"), url(../webfonts/fa-solid-900.ttf) format("truetype"); -} */ +} .fa-solid, .fas { font-weight: 900; @@ -28395,14 +28395,14 @@ url(../webfonts/fa-brands-400.woff2) format("woff2"), url(../webfonts/fa-brands-400.ttf) format("truetype"); } -/* @font-face { +@font-face { font-family: "Font Awesome 5 Pro"; font-display: block; font-weight: 900; src: url(../webfonts/fa-solid-900.woff2) format("woff2"), url(../webfonts/fa-solid-900.ttf) format("truetype"); -} */ +} /* @font-face { font-family: "Font Awesome 5 Pro"; font-display: block; @@ -28427,13 +28427,13 @@ url(../webfonts/fa-duotone-900.woff2) format("woff2"), url(../webfonts/fa-duotone-900.ttf) format("truetype"); } */ -/* @font-face { +@font-face { font-family: "FontAwesome"; font-display: block; src: url(../webfonts/fa-solid-900.woff2) format("woff2"), url(../webfonts/fa-solid-900.ttf) format("truetype"); -} */ +} @font-face { font-family: "FontAwesome"; font-display: block; diff --git a/apps/OpenSign/public/static/js/assets/images/logo.2a7bff0c1189183fafe71d7d5b94e0cd.png b/apps/OpenSign/public/static/js/assets/images/logo.2a7bff0c1189183fafe71d7d5b94e0cd.png new file mode 100644 index 000000000..8db538124 Binary files /dev/null and b/apps/OpenSign/public/static/js/assets/images/logo.2a7bff0c1189183fafe71d7d5b94e0cd.png differ diff --git a/apps/OpenSign/public/static/js/public-template.bundle.js b/apps/OpenSign/public/static/js/public-template.bundle.js new file mode 100644 index 000000000..abcc54518 --- /dev/null +++ b/apps/OpenSign/public/static/js/public-template.bundle.js @@ -0,0 +1,216930 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("PublicTemplate", [], factory); + else if(typeof exports === 'object') + exports["PublicTemplate"] = factory(); + else + root["PublicTemplate"] = factory(); +})(this, () => { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/memoize */ "./node_modules/@emotion/is-prop-valid/node_modules/@emotion/memoize/dist/memoize.browser.esm.js"); + + +var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23 + +var index = (0,_emotion_memoize__WEBPACK_IMPORTED_MODULE_0__["default"])(function (prop) { + return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 + /* o */ + && prop.charCodeAt(1) === 110 + /* n */ + && prop.charCodeAt(2) < 91; +} +/* Z+1 */ +); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (index); + + +/***/ }), + +/***/ "./node_modules/@emotion/is-prop-valid/node_modules/@emotion/memoize/dist/memoize.browser.esm.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/@emotion/is-prop-valid/node_modules/@emotion/memoize/dist/memoize.browser.esm.js ***! + \*******************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +function memoize(fn) { + var cache = {}; + return function (arg) { + if (cache[arg] === undefined) cache[arg] = fn(arg); + return cache[arg]; + }; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (memoize); + + +/***/ }), + +/***/ "./node_modules/@floating-ui/react/dist/floating-ui.react.esm.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@floating-ui/react/dist/floating-ui.react.esm.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Composite: () => (/* binding */ Composite), +/* harmony export */ CompositeItem: () => (/* binding */ CompositeItem), +/* harmony export */ FloatingArrow: () => (/* binding */ FloatingArrow), +/* harmony export */ FloatingDelayGroup: () => (/* binding */ FloatingDelayGroup), +/* harmony export */ FloatingFocusManager: () => (/* binding */ FloatingFocusManager), +/* harmony export */ FloatingList: () => (/* binding */ FloatingList), +/* harmony export */ FloatingNode: () => (/* binding */ FloatingNode), +/* harmony export */ FloatingOverlay: () => (/* binding */ FloatingOverlay), +/* harmony export */ FloatingPortal: () => (/* binding */ FloatingPortal), +/* harmony export */ FloatingTree: () => (/* binding */ FloatingTree), +/* harmony export */ arrow: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.arrow), +/* harmony export */ autoPlacement: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.autoPlacement), +/* harmony export */ autoUpdate: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__.autoUpdate), +/* harmony export */ computePosition: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__.computePosition), +/* harmony export */ detectOverflow: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__.detectOverflow), +/* harmony export */ flip: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.flip), +/* harmony export */ getOverflowAncestors: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getOverflowAncestors), +/* harmony export */ hide: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.hide), +/* harmony export */ inline: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.inline), +/* harmony export */ inner: () => (/* binding */ inner), +/* harmony export */ limitShift: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.limitShift), +/* harmony export */ offset: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.offset), +/* harmony export */ platform: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__.platform), +/* harmony export */ safePolygon: () => (/* binding */ safePolygon), +/* harmony export */ shift: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.shift), +/* harmony export */ size: () => (/* reexport safe */ _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.size), +/* harmony export */ useClick: () => (/* binding */ useClick), +/* harmony export */ useClientPoint: () => (/* binding */ useClientPoint), +/* harmony export */ useDelayGroup: () => (/* binding */ useDelayGroup), +/* harmony export */ useDelayGroupContext: () => (/* binding */ useDelayGroupContext), +/* harmony export */ useDismiss: () => (/* binding */ useDismiss), +/* harmony export */ useFloating: () => (/* binding */ useFloating), +/* harmony export */ useFloatingNodeId: () => (/* binding */ useFloatingNodeId), +/* harmony export */ useFloatingParentNodeId: () => (/* binding */ useFloatingParentNodeId), +/* harmony export */ useFloatingPortalNode: () => (/* binding */ useFloatingPortalNode), +/* harmony export */ useFloatingRootContext: () => (/* binding */ useFloatingRootContext), +/* harmony export */ useFloatingTree: () => (/* binding */ useFloatingTree), +/* harmony export */ useFocus: () => (/* binding */ useFocus), +/* harmony export */ useHover: () => (/* binding */ useHover), +/* harmony export */ useId: () => (/* binding */ useId), +/* harmony export */ useInnerOffset: () => (/* binding */ useInnerOffset), +/* harmony export */ useInteractions: () => (/* binding */ useInteractions), +/* harmony export */ useListItem: () => (/* binding */ useListItem), +/* harmony export */ useListNavigation: () => (/* binding */ useListNavigation), +/* harmony export */ useMergeRefs: () => (/* binding */ useMergeRefs), +/* harmony export */ useRole: () => (/* binding */ useRole), +/* harmony export */ useTransitionStatus: () => (/* binding */ useTransitionStatus), +/* harmony export */ useTransitionStyles: () => (/* binding */ useTransitionStyles), +/* harmony export */ useTypeahead: () => (/* binding */ useTypeahead) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @floating-ui/react/utils */ "./node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs"); +/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @floating-ui/utils */ "./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs"); +/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @floating-ui/react-dom */ "./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs"); +/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @floating-ui/utils/dom */ "./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs"); +/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/react-dom */ "./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs"); +/* harmony import */ var tabbable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! tabbable */ "./node_modules/tabbable/dist/index.esm.js"); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js"); + + + + + + + + + + +/** + * Merges an array of refs into a single memoized callback ref or `null`. + * @see https://floating-ui.com/docs/react-utils#usemergerefs + */ +function useMergeRefs(refs) { + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (refs.every(ref => ref == null)) { + return null; + } + return value => { + refs.forEach(ref => { + if (typeof ref === 'function') { + ref(value); + } else if (ref != null) { + ref.current = value; + } + }); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, refs); +} + +// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379 +const SafeReact = { + ...react__WEBPACK_IMPORTED_MODULE_0__ +}; + +const useInsertionEffect = SafeReact.useInsertionEffect; +const useSafeInsertionEffect = useInsertionEffect || (fn => fn()); +function useEffectEvent(callback) { + const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(() => { + if (true) { + throw new Error('Cannot call an event handler while rendering.'); + } + }); + useSafeInsertionEffect(() => { + ref.current = callback; + }); + return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return ref.current == null ? void 0 : ref.current(...args); + }, []); +} + +const ARROW_UP = 'ArrowUp'; +const ARROW_DOWN = 'ArrowDown'; +const ARROW_LEFT = 'ArrowLeft'; +const ARROW_RIGHT = 'ArrowRight'; +function isDifferentRow(index, cols, prevRow) { + return Math.floor(index / cols) !== prevRow; +} +function isIndexOutOfBounds(listRef, index) { + return index < 0 || index >= listRef.current.length; +} +function getMinIndex(listRef, disabledIndices) { + return findNonDisabledIndex(listRef, { + disabledIndices + }); +} +function getMaxIndex(listRef, disabledIndices) { + return findNonDisabledIndex(listRef, { + decrement: true, + startingIndex: listRef.current.length, + disabledIndices + }); +} +function findNonDisabledIndex(listRef, _temp) { + let { + startingIndex = -1, + decrement = false, + disabledIndices, + amount = 1 + } = _temp === void 0 ? {} : _temp; + const list = listRef.current; + let index = startingIndex; + do { + index += decrement ? -amount : amount; + } while (index >= 0 && index <= list.length - 1 && isDisabled(list, index, disabledIndices)); + return index; +} +function getGridNavigatedIndex(elementsRef, _ref) { + let { + event, + orientation, + loop, + cols, + disabledIndices, + minIndex, + maxIndex, + prevIndex, + stopEvent: stop = false + } = _ref; + let nextIndex = prevIndex; + if (event.key === ARROW_UP) { + stop && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + if (prevIndex === -1) { + nextIndex = maxIndex; + } else { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: nextIndex, + amount: cols, + decrement: true, + disabledIndices + }); + if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) { + const col = prevIndex % cols; + const maxCol = maxIndex % cols; + const offset = maxIndex - (maxCol - col); + if (maxCol === col) { + nextIndex = maxIndex; + } else { + nextIndex = maxCol > col ? offset : offset - cols; + } + } + } + if (isIndexOutOfBounds(elementsRef, nextIndex)) { + nextIndex = prevIndex; + } + } + if (event.key === ARROW_DOWN) { + stop && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + if (prevIndex === -1) { + nextIndex = minIndex; + } else { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: prevIndex, + amount: cols, + disabledIndices + }); + if (loop && prevIndex + cols > maxIndex) { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: prevIndex % cols - cols, + amount: cols, + disabledIndices + }); + } + } + if (isIndexOutOfBounds(elementsRef, nextIndex)) { + nextIndex = prevIndex; + } + } + + // Remains on the same row/column. + if (orientation === 'both') { + const prevRow = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_6__.floor)(prevIndex / cols); + if (event.key === ARROW_RIGHT) { + stop && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + if (prevIndex % cols !== cols - 1) { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: prevIndex, + disabledIndices + }); + if (loop && isDifferentRow(nextIndex, cols, prevRow)) { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: prevIndex - prevIndex % cols - 1, + disabledIndices + }); + } + } else if (loop) { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: prevIndex - prevIndex % cols - 1, + disabledIndices + }); + } + if (isDifferentRow(nextIndex, cols, prevRow)) { + nextIndex = prevIndex; + } + } + if (event.key === ARROW_LEFT) { + stop && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + if (prevIndex % cols !== 0) { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: prevIndex, + decrement: true, + disabledIndices + }); + if (loop && isDifferentRow(nextIndex, cols, prevRow)) { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: prevIndex + (cols - prevIndex % cols), + decrement: true, + disabledIndices + }); + } + } else if (loop) { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: prevIndex + (cols - prevIndex % cols), + decrement: true, + disabledIndices + }); + } + if (isDifferentRow(nextIndex, cols, prevRow)) { + nextIndex = prevIndex; + } + } + const lastRow = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_6__.floor)(maxIndex / cols) === prevRow; + if (isIndexOutOfBounds(elementsRef, nextIndex)) { + if (loop && lastRow) { + nextIndex = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(elementsRef, { + startingIndex: prevIndex - prevIndex % cols - 1, + disabledIndices + }); + } else { + nextIndex = prevIndex; + } + } + } + return nextIndex; +} + +/** For each cell index, gets the item index that occupies that cell */ +function buildCellMap(sizes, cols, dense) { + const cellMap = []; + let startIndex = 0; + sizes.forEach((_ref2, index) => { + let { + width, + height + } = _ref2; + if (width > cols) { + if (true) { + throw new Error("[Floating UI]: Invalid grid - item width at index " + index + " is greater than grid columns"); + } + } + let itemPlaced = false; + if (dense) { + startIndex = 0; + } + while (!itemPlaced) { + const targetCells = []; + for (let i = 0; i < width; i++) { + for (let j = 0; j < height; j++) { + targetCells.push(startIndex + i + j * cols); + } + } + if (startIndex % cols + width <= cols && targetCells.every(cell => cellMap[cell] == null)) { + targetCells.forEach(cell => { + cellMap[cell] = index; + }); + itemPlaced = true; + } else { + startIndex++; + } + } + }); + + // convert into a non-sparse array + return [...cellMap]; +} + +/** Gets cell index of an item's corner or -1 when index is -1. */ +function getCellIndexOfCorner(index, sizes, cellMap, cols, corner) { + if (index === -1) return -1; + const firstCellIndex = cellMap.indexOf(index); + const sizeItem = sizes[index]; + switch (corner) { + case 'tl': + return firstCellIndex; + case 'tr': + if (!sizeItem) { + return firstCellIndex; + } + return firstCellIndex + sizeItem.width - 1; + case 'bl': + if (!sizeItem) { + return firstCellIndex; + } + return firstCellIndex + (sizeItem.height - 1) * cols; + case 'br': + return cellMap.lastIndexOf(index); + } +} + +/** Gets all cell indices that correspond to the specified indices */ +function getCellIndices(indices, cellMap) { + return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []); +} +function isDisabled(list, index, disabledIndices) { + if (disabledIndices) { + return disabledIndices.includes(index); + } + const element = list[index]; + return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true'; +} + +let rafId = 0; +function enqueueFocus(el, options) { + if (options === void 0) { + options = {}; + } + const { + preventScroll = false, + cancelPrevious = true, + sync = false + } = options; + cancelPrevious && cancelAnimationFrame(rafId); + const exec = () => el == null ? void 0 : el.focus({ + preventScroll + }); + if (sync) { + exec(); + } else { + rafId = requestAnimationFrame(exec); + } +} + +var index = typeof document !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect; + +function sortByDocumentPosition(a, b) { + const position = a.compareDocumentPosition(b); + if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) { + return -1; + } + if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) { + return 1; + } + return 0; +} +function areMapsEqual(map1, map2) { + if (map1.size !== map2.size) { + return false; + } + for (const [key, value] of map1.entries()) { + if (value !== map2.get(key)) { + return false; + } + } + return true; +} +const FloatingListContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext({ + register: () => {}, + unregister: () => {}, + map: /*#__PURE__*/new Map(), + elementsRef: { + current: [] + } +}); +/** + * Provides context for a list of items within the floating element. + * @see https://floating-ui.com/docs/FloatingList + */ +function FloatingList(props) { + const { + children, + elementsRef, + labelsRef + } = props; + const [map, setMap] = react__WEBPACK_IMPORTED_MODULE_0__.useState(() => new Map()); + const register = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => { + setMap(prevMap => new Map(prevMap).set(node, null)); + }, []); + const unregister = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => { + setMap(prevMap => { + const map = new Map(prevMap); + map.delete(node); + return map; + }); + }, []); + index(() => { + const newMap = new Map(map); + const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition); + nodes.forEach((node, index) => { + newMap.set(node, index); + }); + if (!areMapsEqual(map, newMap)) { + setMap(newMap); + } + }, [map]); + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FloatingListContext.Provider, { + value: react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + register, + unregister, + map, + elementsRef, + labelsRef + }), [register, unregister, map, elementsRef, labelsRef]) + }, children); +} +/** + * Used to register a list item and its index (DOM position) in the + * `FloatingList`. + * @see https://floating-ui.com/docs/FloatingList#uselistitem + */ +function useListItem(props) { + if (props === void 0) { + props = {}; + } + const { + label + } = props; + const { + register, + unregister, + map, + elementsRef, + labelsRef + } = react__WEBPACK_IMPORTED_MODULE_0__.useContext(FloatingListContext); + const [index$1, setIndex] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null); + const componentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const ref = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => { + componentRef.current = node; + if (index$1 !== null) { + elementsRef.current[index$1] = node; + if (labelsRef) { + var _node$textContent; + const isLabelDefined = label !== undefined; + labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null; + } + } + }, [index$1, elementsRef, labelsRef, label]); + index(() => { + const node = componentRef.current; + if (node) { + register(node); + return () => { + unregister(node); + }; + } + }, [register, unregister]); + index(() => { + const index = componentRef.current ? map.get(componentRef.current) : null; + if (index != null) { + setIndex(index); + } + }, [map]); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + ref, + index: index$1 == null ? -1 : index$1 + }), [index$1, ref]); +} + +function renderJsx(render, computedProps) { + if (typeof render === 'function') { + return render(computedProps); + } + if (render) { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(render, computedProps); + } + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", computedProps); +} +const CompositeContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext({ + activeIndex: 0, + onNavigate: () => {} +}); +const horizontalKeys = [ARROW_LEFT, ARROW_RIGHT]; +const verticalKeys = [ARROW_UP, ARROW_DOWN]; +const allKeys = [...horizontalKeys, ...verticalKeys]; + +/** + * Creates a single tab stop whose items are navigated by arrow keys, which + * provides list navigation outside of floating element contexts. + * + * This is useful to enable navigation of a list of items that aren’t part of a + * floating element. A menubar is an example of a composite, with each reference + * element being an item. + * @see https://floating-ui.com/docs/Composite + */ +const Composite = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function Composite(props, forwardedRef) { + const { + render, + orientation = 'both', + loop = true, + cols = 1, + disabledIndices, + activeIndex: externalActiveIndex, + onNavigate: externalSetActiveIndex, + itemSizes, + dense = false, + ...domProps + } = props; + const [internalActiveIndex, internalSetActiveIndex] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0); + const activeIndex = externalActiveIndex != null ? externalActiveIndex : internalActiveIndex; + const onNavigate = useEffectEvent(externalSetActiveIndex != null ? externalSetActiveIndex : internalSetActiveIndex); + const elementsRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef([]); + const renderElementProps = render && typeof render !== 'function' ? render.props : {}; + const contextValue = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + activeIndex, + onNavigate + }), [activeIndex, onNavigate]); + const isGrid = cols > 1; + function handleKeyDown(event) { + if (!allKeys.includes(event.key)) return; + let nextIndex = activeIndex; + const minIndex = getMinIndex(elementsRef, disabledIndices); + const maxIndex = getMaxIndex(elementsRef, disabledIndices); + if (isGrid) { + const sizes = itemSizes || Array.from({ + length: elementsRef.current.length + }, () => ({ + width: 1, + height: 1 + })); + // To calculate movements on the grid, we use hypothetical cell indices + // as if every item was 1x1, then convert back to real indices. + const cellMap = buildCellMap(sizes, cols, dense); + const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(elementsRef.current, index, disabledIndices)); + // last enabled index + const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(elementsRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1); + nextIndex = cellMap[getGridNavigatedIndex({ + current: cellMap.map(itemIndex => itemIndex ? elementsRef.current[itemIndex] : null) + }, { + event, + orientation, + loop, + cols, + // treat undefined (empty grid spaces) as disabled indices so we + // don't end up in them + disabledIndices: getCellIndices([...(disabledIndices || elementsRef.current.map((_, index) => isDisabled(elementsRef.current, index) ? index : undefined)), undefined], cellMap), + minIndex: minGridIndex, + maxIndex: maxGridIndex, + prevIndex: getCellIndexOfCorner(activeIndex > maxIndex ? minIndex : activeIndex, sizes, cellMap, cols, + // use a corner matching the edge closest to the direction we're + // moving in so we don't end up in the same item. Prefer + // top/left over bottom/right. + event.key === ARROW_DOWN ? 'bl' : event.key === ARROW_RIGHT ? 'tr' : 'tl') + })]; // navigated cell will never be nullish + } + const toEndKeys = { + horizontal: [ARROW_RIGHT], + vertical: [ARROW_DOWN], + both: [ARROW_RIGHT, ARROW_DOWN] + }[orientation]; + const toStartKeys = { + horizontal: [ARROW_LEFT], + vertical: [ARROW_UP], + both: [ARROW_LEFT, ARROW_UP] + }[orientation]; + const preventedKeys = isGrid ? allKeys : { + horizontal: horizontalKeys, + vertical: verticalKeys, + both: allKeys + }[orientation]; + if (nextIndex === activeIndex && [...toEndKeys, ...toStartKeys].includes(event.key)) { + if (loop && nextIndex === maxIndex && toEndKeys.includes(event.key)) { + nextIndex = minIndex; + } else if (loop && nextIndex === minIndex && toStartKeys.includes(event.key)) { + nextIndex = maxIndex; + } else { + nextIndex = findNonDisabledIndex(elementsRef, { + startingIndex: nextIndex, + decrement: toStartKeys.includes(event.key), + disabledIndices + }); + } + } + if (nextIndex !== activeIndex && !isIndexOutOfBounds(elementsRef, nextIndex)) { + event.stopPropagation(); + if (preventedKeys.includes(event.key)) { + event.preventDefault(); + } + onNavigate(nextIndex); + + // Wait for FocusManager `returnFocus` to execute. + queueMicrotask(() => { + enqueueFocus(elementsRef.current[nextIndex]); + }); + } + } + const computedProps = { + ...domProps, + ...renderElementProps, + ref: forwardedRef, + 'aria-orientation': orientation === 'both' ? undefined : orientation, + onKeyDown(e) { + domProps.onKeyDown == null || domProps.onKeyDown(e); + renderElementProps.onKeyDown == null || renderElementProps.onKeyDown(e); + handleKeyDown(e); + } + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(CompositeContext.Provider, { + value: contextValue + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FloatingList, { + elementsRef: elementsRef + }, renderJsx(render, computedProps))); +}); +/** + * @see https://floating-ui.com/docs/Composite + */ +const CompositeItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function CompositeItem(props, forwardedRef) { + const { + render, + ...domProps + } = props; + const renderElementProps = render && typeof render !== 'function' ? render.props : {}; + const { + activeIndex, + onNavigate + } = react__WEBPACK_IMPORTED_MODULE_0__.useContext(CompositeContext); + const { + ref, + index + } = useListItem(); + const mergedRef = useMergeRefs([ref, forwardedRef, renderElementProps.ref]); + const isActive = activeIndex === index; + const computedProps = { + ...domProps, + ...renderElementProps, + ref: mergedRef, + tabIndex: isActive ? 0 : -1, + 'data-active': isActive ? '' : undefined, + onFocus(e) { + domProps.onFocus == null || domProps.onFocus(e); + renderElementProps.onFocus == null || renderElementProps.onFocus(e); + onNavigate(index); + } + }; + return renderJsx(render, computedProps); +}); + +function _extends() { + _extends = Object.assign ? Object.assign.bind() : function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); +} + +let serverHandoffComplete = false; +let count = 0; +const genId = () => // Ensure the id is unique with multiple independent versions of Floating UI +// on serverHandoffComplete ? genId() : undefined); + index(() => { + if (id == null) { + setId(genId()); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + serverHandoffComplete = true; + }, []); + return id; +} +const useReactId = SafeReact.useId; + +/** + * Uses React 18's built-in `useId()` when available, or falls back to a + * slightly less performant (requiring a double render) implementation for + * earlier React versions. + * @see https://floating-ui.com/docs/react-utils#useid + */ +const useId = useReactId || useFloatingId; + +let devMessageSet; +if (true) { + devMessageSet = /*#__PURE__*/new Set(); +} +function warn() { + var _devMessageSet; + for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) { + messages[_key] = arguments[_key]; + } + const message = "Floating UI: " + messages.join(' '); + if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(message))) { + var _devMessageSet2; + (_devMessageSet2 = devMessageSet) == null || _devMessageSet2.add(message); + console.warn(message); + } +} +function error() { + var _devMessageSet3; + for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + messages[_key2] = arguments[_key2]; + } + const message = "Floating UI: " + messages.join(' '); + if (!((_devMessageSet3 = devMessageSet) != null && _devMessageSet3.has(message))) { + var _devMessageSet4; + (_devMessageSet4 = devMessageSet) == null || _devMessageSet4.add(message); + console.error(message); + } +} + +/** + * Renders a pointing arrow triangle. + * @see https://floating-ui.com/docs/FloatingArrow + */ +const FloatingArrow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function FloatingArrow(props, ref) { + const { + context: { + placement, + elements: { + floating + }, + middlewareData: { + arrow + } + }, + width = 14, + height = 7, + tipRadius = 0, + strokeWidth = 0, + staticOffset, + stroke, + d, + style: { + transform, + ...restStyle + } = {}, + ...rest + } = props; + if (true) { + if (!ref) { + warn('The `ref` prop is required for `FloatingArrow`.'); + } + } + const clipPathId = useId(); + if (!floating) { + return null; + } + + // Strokes must be double the border width, this ensures the stroke's width + // works as you'd expect. + const computedStrokeWidth = strokeWidth * 2; + const halfStrokeWidth = computedStrokeWidth / 2; + const svgX = width / 2 * (tipRadius / -8 + 1); + const svgY = height / 2 * tipRadius / 4; + const [side, alignment] = placement.split('-'); + const isRTL = _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__.platform.isRTL(floating); + const isCustomShape = !!d; + const isVerticalSide = side === 'top' || side === 'bottom'; + const yOffsetProp = staticOffset && alignment === 'end' ? 'bottom' : 'top'; + let xOffsetProp = staticOffset && alignment === 'end' ? 'right' : 'left'; + if (staticOffset && isRTL) { + xOffsetProp = alignment === 'end' ? 'left' : 'right'; + } + const arrowX = (arrow == null ? void 0 : arrow.x) != null ? staticOffset || arrow.x : ''; + const arrowY = (arrow == null ? void 0 : arrow.y) != null ? staticOffset || arrow.y : ''; + const dValue = d || 'M0,0' + (" H" + width) + (" L" + (width - svgX) + "," + (height - svgY)) + (" Q" + width / 2 + "," + height + " " + svgX + "," + (height - svgY)) + ' Z'; + const rotation = { + top: isCustomShape ? 'rotate(180deg)' : '', + left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)', + bottom: isCustomShape ? '' : 'rotate(180deg)', + right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)' + }[side]; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({}, rest, { + "aria-hidden": true, + ref: ref, + width: isCustomShape ? width : width + computedStrokeWidth, + height: width, + viewBox: "0 0 " + width + " " + (height > width ? height : width), + style: { + position: 'absolute', + pointerEvents: 'none', + [xOffsetProp]: arrowX, + [yOffsetProp]: arrowY, + [side]: isVerticalSide || isCustomShape ? '100%' : "calc(100% - " + computedStrokeWidth / 2 + "px)", + transform: "" + rotation + (transform != null ? transform : ''), + ...restStyle + } + }), computedStrokeWidth > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { + clipPath: "url(#" + clipPathId + ")", + fill: "none", + stroke: stroke + // Account for the stroke on the fill path rendered below. + , + strokeWidth: computedStrokeWidth + (d ? 0 : 1), + d: dValue + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { + stroke: computedStrokeWidth && !d ? rest.fill : 'none', + d: dValue + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("clipPath", { + id: clipPathId + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", { + x: -halfStrokeWidth, + y: halfStrokeWidth * (isCustomShape ? -1 : 1), + width: width + computedStrokeWidth, + height: width + }))); +}); + +function createPubSub() { + const map = new Map(); + return { + emit(event, data) { + var _map$get; + (_map$get = map.get(event)) == null || _map$get.forEach(handler => handler(data)); + }, + on(event, listener) { + map.set(event, [...(map.get(event) || []), listener]); + }, + off(event, listener) { + var _map$get2; + map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []); + } + }; +} + +const FloatingNodeContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null); +const FloatingTreeContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null); + +/** + * Returns the parent node id for nested floating elements, if available. + * Returns `null` for top-level floating elements. + */ +const useFloatingParentNodeId = () => { + var _React$useContext; + return ((_React$useContext = react__WEBPACK_IMPORTED_MODULE_0__.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null; +}; + +/** + * Returns the nearest floating tree context, if available. + */ +const useFloatingTree = () => react__WEBPACK_IMPORTED_MODULE_0__.useContext(FloatingTreeContext); + +/** + * Registers a node into the `FloatingTree`, returning its id. + * @see https://floating-ui.com/docs/FloatingTree + */ +function useFloatingNodeId(customParentId) { + const id = useId(); + const tree = useFloatingTree(); + const reactParentId = useFloatingParentNodeId(); + const parentId = customParentId || reactParentId; + index(() => { + const node = { + id, + parentId + }; + tree == null || tree.addNode(node); + return () => { + tree == null || tree.removeNode(node); + }; + }, [tree, id, parentId]); + return id; +} + +/** + * Provides parent node context for nested floating elements. + * @see https://floating-ui.com/docs/FloatingTree + */ +function FloatingNode(props) { + const { + children, + id + } = props; + const parentId = useFloatingParentNodeId(); + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FloatingNodeContext.Provider, { + value: react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + id, + parentId + }), [id, parentId]) + }, children); +} + +/** + * Provides context for nested floating elements when they are not children of + * each other on the DOM. + * This is not necessary in all cases, except when there must be explicit communication between parent and child floating elements. It is necessary for: + * - The `bubbles` option in the `useDismiss()` Hook + * - Nested virtual list navigation + * - Nested floating elements that each open on hover + * - Custom communication between parent and child floating elements + * @see https://floating-ui.com/docs/FloatingTree + */ +function FloatingTree(props) { + const { + children + } = props; + const nodesRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef([]); + const addNode = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => { + nodesRef.current = [...nodesRef.current, node]; + }, []); + const removeNode = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => { + nodesRef.current = nodesRef.current.filter(n => n !== node); + }, []); + const events = react__WEBPACK_IMPORTED_MODULE_0__.useState(() => createPubSub())[0]; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FloatingTreeContext.Provider, { + value: react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + nodesRef, + addNode, + removeNode, + events + }), [addNode, removeNode, events]) + }, children); +} + +function createAttribute(name) { + return "data-floating-ui-" + name; +} + +function useLatestRef(value) { + const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(value); + index(() => { + ref.current = value; + }); + return ref; +} + +const safePolygonIdentifier = /*#__PURE__*/createAttribute('safe-polygon'); +function getDelay(value, prop, pointerType) { + if (pointerType && !(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isMouseLikePointerType)(pointerType)) { + return 0; + } + if (typeof value === 'number') { + return value; + } + return value == null ? void 0 : value[prop]; +} +/** + * Opens the floating element while hovering over the reference element, like + * CSS `:hover`. + * @see https://floating-ui.com/docs/useHover + */ +function useHover(context, props) { + if (props === void 0) { + props = {}; + } + const { + open, + onOpenChange, + dataRef, + events, + elements: { + domReference, + floating + } + } = context; + const { + enabled = true, + delay = 0, + handleClose = null, + mouseOnly = false, + restMs = 0, + move = true + } = props; + const tree = useFloatingTree(); + const parentId = useFloatingParentNodeId(); + const handleCloseRef = useLatestRef(handleClose); + const delayRef = useLatestRef(delay); + const pointerTypeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(); + const timeoutRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(-1); + const handlerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(); + const restTimeoutRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(-1); + const blockMouseMoveRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true); + const performedPointerEventsMutationRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const unbindMouseMoveRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(() => {}); + const isHoverOpen = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => { + var _dataRef$current$open; + const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type; + return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown'; + }, [dataRef]); + + // When closing before opening, clear the delay timeouts to cancel it + // from showing. + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!enabled) { + return; + } + function onOpenChange(_ref) { + let { + open + } = _ref; + if (!open) { + clearTimeout(timeoutRef.current); + clearTimeout(restTimeoutRef.current); + blockMouseMoveRef.current = true; + } + } + events.on('openchange', onOpenChange); + return () => { + events.off('openchange', onOpenChange); + }; + }, [enabled, events]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!enabled || !handleCloseRef.current || !open) { + return; + } + function onLeave(event) { + if (isHoverOpen()) { + onOpenChange(false, event, 'hover'); + } + } + const html = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating).documentElement; + html.addEventListener('mouseleave', onLeave); + return () => { + html.removeEventListener('mouseleave', onLeave); + }; + }, [floating, open, onOpenChange, enabled, handleCloseRef, isHoverOpen]); + const closeWithDelay = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event, runElseBranch, reason) { + if (runElseBranch === void 0) { + runElseBranch = true; + } + if (reason === void 0) { + reason = 'hover'; + } + const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current); + if (closeDelay && !handlerRef.current) { + clearTimeout(timeoutRef.current); + timeoutRef.current = window.setTimeout(() => onOpenChange(false, event, reason), closeDelay); + } else if (runElseBranch) { + clearTimeout(timeoutRef.current); + onOpenChange(false, event, reason); + } + }, [delayRef, onOpenChange]); + const cleanupMouseMoveHandler = useEffectEvent(() => { + unbindMouseMoveRef.current(); + handlerRef.current = undefined; + }); + const clearPointerEvents = useEffectEvent(() => { + if (performedPointerEventsMutationRef.current) { + const body = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating).body; + body.style.pointerEvents = ''; + body.removeAttribute(safePolygonIdentifier); + performedPointerEventsMutationRef.current = false; + } + }); + + // Registering the mouse events on the reference directly to bypass React's + // delegation system. If the cursor was on a disabled element and then entered + // the reference (no gap), `mouseenter` doesn't fire in the delegation system. + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!enabled) { + return; + } + function isClickLikeOpenEvent() { + return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false; + } + function onMouseEnter(event) { + clearTimeout(timeoutRef.current); + blockMouseMoveRef.current = false; + if (mouseOnly && !(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isMouseLikePointerType)(pointerTypeRef.current) || restMs > 0 && !getDelay(delayRef.current, 'open')) { + return; + } + const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current); + if (openDelay) { + timeoutRef.current = window.setTimeout(() => { + onOpenChange(true, event, 'hover'); + }, openDelay); + } else { + onOpenChange(true, event, 'hover'); + } + } + function onMouseLeave(event) { + if (isClickLikeOpenEvent()) return; + unbindMouseMoveRef.current(); + const doc = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating); + clearTimeout(restTimeoutRef.current); + if (handleCloseRef.current && dataRef.current.floatingContext) { + // Prevent clearing `onScrollMouseLeave` timeout. + if (!open) { + clearTimeout(timeoutRef.current); + } + handlerRef.current = handleCloseRef.current({ + ...dataRef.current.floatingContext, + tree, + x: event.clientX, + y: event.clientY, + onClose() { + clearPointerEvents(); + cleanupMouseMoveHandler(); + closeWithDelay(event, true, 'safe-polygon'); + } + }); + const handler = handlerRef.current; + doc.addEventListener('mousemove', handler); + unbindMouseMoveRef.current = () => { + doc.removeEventListener('mousemove', handler); + }; + return; + } + + // Allow interactivity without `safePolygon` on touch devices. With a + // pointer, a short close delay is an alternative, so it should work + // consistently. + const shouldClose = pointerTypeRef.current === 'touch' ? !(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(floating, event.relatedTarget) : true; + if (shouldClose) { + closeWithDelay(event); + } + } + + // Ensure the floating element closes after scrolling even if the pointer + // did not move. + // https://github.com/floating-ui/floating-ui/discussions/1692 + function onScrollMouseLeave(event) { + if (isClickLikeOpenEvent()) return; + if (!dataRef.current.floatingContext) return; + handleCloseRef.current == null || handleCloseRef.current({ + ...dataRef.current.floatingContext, + tree, + x: event.clientX, + y: event.clientY, + onClose() { + clearPointerEvents(); + cleanupMouseMoveHandler(); + closeWithDelay(event); + } + })(event); + } + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(domReference)) { + const ref = domReference; + open && ref.addEventListener('mouseleave', onScrollMouseLeave); + floating == null || floating.addEventListener('mouseleave', onScrollMouseLeave); + move && ref.addEventListener('mousemove', onMouseEnter, { + once: true + }); + ref.addEventListener('mouseenter', onMouseEnter); + ref.addEventListener('mouseleave', onMouseLeave); + return () => { + open && ref.removeEventListener('mouseleave', onScrollMouseLeave); + floating == null || floating.removeEventListener('mouseleave', onScrollMouseLeave); + move && ref.removeEventListener('mousemove', onMouseEnter); + ref.removeEventListener('mouseenter', onMouseEnter); + ref.removeEventListener('mouseleave', onMouseLeave); + }; + } + }, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]); + + // Block pointer-events of every element other than the reference and floating + // while the floating element is open and has a `handleClose` handler. Also + // handles nested floating elements. + // https://github.com/floating-ui/floating-ui/issues/1722 + index(() => { + var _handleCloseRef$curre; + if (!enabled) { + return; + } + if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) { + const body = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating).body; + body.setAttribute(safePolygonIdentifier, ''); + body.style.pointerEvents = 'none'; + performedPointerEventsMutationRef.current = true; + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(domReference) && floating) { + var _tree$nodesRef$curren; + const ref = domReference; + const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating; + if (parentFloating) { + parentFloating.style.pointerEvents = ''; + } + ref.style.pointerEvents = 'auto'; + floating.style.pointerEvents = 'auto'; + return () => { + ref.style.pointerEvents = ''; + floating.style.pointerEvents = ''; + }; + } + } + }, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, isHoverOpen]); + index(() => { + if (!open) { + pointerTypeRef.current = undefined; + cleanupMouseMoveHandler(); + clearPointerEvents(); + } + }, [open, cleanupMouseMoveHandler, clearPointerEvents]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + return () => { + cleanupMouseMoveHandler(); + clearTimeout(timeoutRef.current); + clearTimeout(restTimeoutRef.current); + clearPointerEvents(); + }; + }, [enabled, domReference, cleanupMouseMoveHandler, clearPointerEvents]); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (!enabled) { + return {}; + } + function setPointerRef(event) { + pointerTypeRef.current = event.pointerType; + } + return { + reference: { + onPointerDown: setPointerRef, + onPointerEnter: setPointerRef, + onMouseMove(event) { + function handleMouseMove() { + if (!blockMouseMoveRef.current) { + onOpenChange(true, event.nativeEvent, 'hover'); + } + } + if (mouseOnly && !(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isMouseLikePointerType)(pointerTypeRef.current)) { + return; + } + if (open || restMs === 0) { + return; + } + clearTimeout(restTimeoutRef.current); + if (pointerTypeRef.current === 'touch') { + handleMouseMove(); + } else { + restTimeoutRef.current = window.setTimeout(handleMouseMove, restMs); + } + } + }, + floating: { + onMouseEnter() { + clearTimeout(timeoutRef.current); + }, + onMouseLeave(event) { + closeWithDelay(event.nativeEvent, false); + } + } + }; + }, [enabled, mouseOnly, open, restMs, onOpenChange, closeWithDelay]); +} + +const NOOP = () => {}; +const FloatingDelayGroupContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext({ + delay: 0, + initialDelay: 0, + timeoutMs: 0, + currentId: null, + setCurrentId: NOOP, + setState: NOOP, + isInstantPhase: false +}); + +/** + * @deprecated + * Use the return value of `useDelayGroup()` instead. + */ +const useDelayGroupContext = () => react__WEBPACK_IMPORTED_MODULE_0__.useContext(FloatingDelayGroupContext); +/** + * Provides context for a group of floating elements that should share a + * `delay`. + * @see https://floating-ui.com/docs/FloatingDelayGroup + */ +function FloatingDelayGroup(props) { + const { + children, + delay, + timeoutMs = 0 + } = props; + const [state, setState] = react__WEBPACK_IMPORTED_MODULE_0__.useReducer((prev, next) => ({ + ...prev, + ...next + }), { + delay, + timeoutMs, + initialDelay: delay, + currentId: null, + isInstantPhase: false + }); + const initialCurrentIdRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const setCurrentId = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(currentId => { + setState({ + currentId + }); + }, []); + index(() => { + if (state.currentId) { + if (initialCurrentIdRef.current === null) { + initialCurrentIdRef.current = state.currentId; + } else if (!state.isInstantPhase) { + setState({ + isInstantPhase: true + }); + } + } else { + if (state.isInstantPhase) { + setState({ + isInstantPhase: false + }); + } + initialCurrentIdRef.current = null; + } + }, [state.currentId, state.isInstantPhase]); + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FloatingDelayGroupContext.Provider, { + value: react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + ...state, + setState, + setCurrentId + }), [state, setCurrentId]) + }, children); +} +/** + * Enables grouping when called inside a component that's a child of a + * `FloatingDelayGroup`. + * @see https://floating-ui.com/docs/FloatingDelayGroup + */ +function useDelayGroup(context, options) { + if (options === void 0) { + options = {}; + } + const { + open, + onOpenChange, + floatingId + } = context; + const { + id: optionId + } = options; + const id = optionId != null ? optionId : floatingId; + const groupContext = useDelayGroupContext(); + const { + currentId, + setCurrentId, + initialDelay, + setState, + timeoutMs + } = groupContext; + index(() => { + if (!currentId) return; + setState({ + delay: { + open: 1, + close: getDelay(initialDelay, 'close') + } + }); + if (currentId !== id) { + onOpenChange(false); + } + }, [id, onOpenChange, setState, currentId, initialDelay]); + index(() => { + function unset() { + onOpenChange(false); + setState({ + delay: initialDelay, + currentId: null + }); + } + if (!currentId) return; + if (!open && currentId === id) { + if (timeoutMs) { + const timeout = window.setTimeout(unset, timeoutMs); + return () => { + clearTimeout(timeout); + }; + } + unset(); + } + }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]); + index(() => { + if (setCurrentId === NOOP || !open) return; + setCurrentId(id); + }, [open, setCurrentId, id]); + return groupContext; +} + +function getAncestors(nodes, id) { + var _nodes$find; + let allAncestors = []; + let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId; + while (currentParentId) { + const currentNode = nodes.find(node => node.id === currentParentId); + currentParentId = currentNode == null ? void 0 : currentNode.parentId; + if (currentNode) { + allAncestors = allAncestors.concat(currentNode); + } + } + return allAncestors; +} + +function getChildren(nodes, id) { + let allChildren = nodes.filter(node => { + var _node$context; + return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open); + }); + let currentChildren = allChildren; + while (currentChildren.length) { + currentChildren = nodes.filter(node => { + var _currentChildren; + return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => { + var _node$context2; + return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open); + }); + }); + allChildren = allChildren.concat(currentChildren); + } + return allChildren; +} +function getDeepestNode(nodes, id) { + let deepestNodeId; + let maxDepth = -1; + function findDeepest(nodeId, depth) { + if (depth > maxDepth) { + deepestNodeId = nodeId; + maxDepth = depth; + } + const children = getChildren(nodes, nodeId); + children.forEach(child => { + findDeepest(child.id, depth + 1); + }); + } + findDeepest(id, 0); + return nodes.find(node => node.id === deepestNodeId); +} + +// Modified to add conditional `aria-hidden` support: +// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts +let counterMap = /*#__PURE__*/new WeakMap(); +let uncontrolledElementsSet = /*#__PURE__*/new WeakSet(); +let markerMap = {}; +let lockCount = 0; +const supportsInert = () => typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype; +const unwrapHost = node => node && (node.host || unwrapHost(node.parentNode)); +const correctElements = (parent, targets) => targets.map(target => { + if (parent.contains(target)) { + return target; + } + const correctedTarget = unwrapHost(target); + if (parent.contains(correctedTarget)) { + return correctedTarget; + } + return null; +}).filter(x => x != null); +function applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) { + const markerName = 'data-floating-ui-inert'; + const controlAttribute = inert ? 'inert' : ariaHidden ? 'aria-hidden' : null; + const avoidElements = correctElements(body, uncorrectedAvoidElements); + const elementsToKeep = new Set(); + const elementsToStop = new Set(avoidElements); + const hiddenElements = []; + if (!markerMap[markerName]) { + markerMap[markerName] = new WeakMap(); + } + const markerCounter = markerMap[markerName]; + avoidElements.forEach(keep); + deep(body); + elementsToKeep.clear(); + function keep(el) { + if (!el || elementsToKeep.has(el)) { + return; + } + elementsToKeep.add(el); + el.parentNode && keep(el.parentNode); + } + function deep(parent) { + if (!parent || elementsToStop.has(parent)) { + return; + } + [].forEach.call(parent.children, node => { + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getNodeName)(node) === 'script') return; + if (elementsToKeep.has(node)) { + deep(node); + } else { + const attr = controlAttribute ? node.getAttribute(controlAttribute) : null; + const alreadyHidden = attr !== null && attr !== 'false'; + const counterValue = (counterMap.get(node) || 0) + 1; + const markerValue = (markerCounter.get(node) || 0) + 1; + counterMap.set(node, counterValue); + markerCounter.set(node, markerValue); + hiddenElements.push(node); + if (counterValue === 1 && alreadyHidden) { + uncontrolledElementsSet.add(node); + } + if (markerValue === 1) { + node.setAttribute(markerName, ''); + } + if (!alreadyHidden && controlAttribute) { + node.setAttribute(controlAttribute, 'true'); + } + } + }); + } + lockCount++; + return () => { + hiddenElements.forEach(element => { + const counterValue = (counterMap.get(element) || 0) - 1; + const markerValue = (markerCounter.get(element) || 0) - 1; + counterMap.set(element, counterValue); + markerCounter.set(element, markerValue); + if (!counterValue) { + if (!uncontrolledElementsSet.has(element) && controlAttribute) { + element.removeAttribute(controlAttribute); + } + uncontrolledElementsSet.delete(element); + } + if (!markerValue) { + element.removeAttribute(markerName); + } + }); + lockCount--; + if (!lockCount) { + counterMap = new WeakMap(); + counterMap = new WeakMap(); + uncontrolledElementsSet = new WeakSet(); + markerMap = {}; + } + }; +} +function markOthers(avoidElements, ariaHidden, inert) { + if (ariaHidden === void 0) { + ariaHidden = false; + } + if (inert === void 0) { + inert = false; + } + const body = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(avoidElements[0]).body; + return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll('[aria-live]'))), body, ariaHidden, inert); +} + +const getTabbableOptions = () => ({ + getShadowRoot: true, + displayCheck: + // JSDOM does not support the `tabbable` library. To solve this we can + // check if `ResizeObserver` is a real function (not polyfilled), which + // determines if the current environment is JSDOM-like. + typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none' +}); +function getTabbableIn(container, direction) { + const allTabbable = (0,tabbable__WEBPACK_IMPORTED_MODULE_7__.tabbable)(container, getTabbableOptions()); + if (direction === 'prev') { + allTabbable.reverse(); + } + const activeIndex = allTabbable.indexOf((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(container))); + const nextTabbableElements = allTabbable.slice(activeIndex + 1); + return nextTabbableElements[0]; +} +function getNextTabbable() { + return getTabbableIn(document.body, 'next'); +} +function getPreviousTabbable() { + return getTabbableIn(document.body, 'prev'); +} +function isOutsideEvent(event, container) { + const containerElement = container || event.currentTarget; + const relatedTarget = event.relatedTarget; + return !relatedTarget || !(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(containerElement, relatedTarget); +} +function disableFocusInside(container) { + const tabbableElements = (0,tabbable__WEBPACK_IMPORTED_MODULE_7__.tabbable)(container, getTabbableOptions()); + tabbableElements.forEach(element => { + element.dataset.tabindex = element.getAttribute('tabindex') || ''; + element.setAttribute('tabindex', '-1'); + }); +} +function enableFocusInside(container) { + const elements = container.querySelectorAll('[data-tabindex]'); + elements.forEach(element => { + const tabindex = element.dataset.tabindex; + delete element.dataset.tabindex; + if (tabindex) { + element.setAttribute('tabindex', tabindex); + } else { + element.removeAttribute('tabindex'); + } + }); +} + +// See Diego Haz's Sandbox for making this logic work well on Safari/iOS: +// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx + +const HIDDEN_STYLES = { + border: 0, + clip: 'rect(0 0 0 0)', + height: '1px', + margin: '-1px', + overflow: 'hidden', + padding: 0, + position: 'fixed', + whiteSpace: 'nowrap', + width: '1px', + top: 0, + left: 0 +}; +let timeoutId; +function setActiveElementOnTab(event) { + if (event.key === 'Tab') { + event.target; + clearTimeout(timeoutId); + } +} +const FocusGuard = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function FocusGuard(props, ref) { + const [role, setRole] = react__WEBPACK_IMPORTED_MODULE_0__.useState(); + index(() => { + if ((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isSafari)()) { + // Unlike other screen readers such as NVDA and JAWS, the virtual cursor + // on VoiceOver does trigger the onFocus event, so we can use the focus + // trap element. On Safari, only buttons trigger the onFocus event. + // NB: "group" role in the Sandbox no longer appears to work, must be a + // button role. + setRole('button'); + } + document.addEventListener('keydown', setActiveElementOnTab); + return () => { + document.removeEventListener('keydown', setActiveElementOnTab); + }; + }, []); + const restProps = { + ref, + tabIndex: 0, + // Role is only for VoiceOver + role, + 'aria-hidden': role ? undefined : true, + [createAttribute('focus-guard')]: '', + style: HIDDEN_STYLES + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", _extends({}, props, restProps)); +}); + +const PortalContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null); +const attr = /*#__PURE__*/createAttribute('portal'); + +/** + * @see https://floating-ui.com/docs/FloatingPortal#usefloatingportalnode + */ +function useFloatingPortalNode(props) { + if (props === void 0) { + props = {}; + } + const { + id, + root + } = props; + const uniqueId = useId(); + const portalContext = usePortalContext(); + const [portalNode, setPortalNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null); + const portalNodeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + index(() => { + return () => { + portalNode == null || portalNode.remove(); + // Allow the subsequent layout effects to create a new node on updates. + // The portal node will still be cleaned up on unmount. + // https://github.com/floating-ui/floating-ui/issues/2454 + queueMicrotask(() => { + portalNodeRef.current = null; + }); + }; + }, [portalNode]); + index(() => { + // Wait for the uniqueId to be generated before creating the portal node in + // React <18 (using `useFloatingId` instead of the native `useId`). + // https://github.com/floating-ui/floating-ui/issues/2778 + if (!uniqueId) return; + if (portalNodeRef.current) return; + const existingIdRoot = id ? document.getElementById(id) : null; + if (!existingIdRoot) return; + const subRoot = document.createElement('div'); + subRoot.id = uniqueId; + subRoot.setAttribute(attr, ''); + existingIdRoot.appendChild(subRoot); + portalNodeRef.current = subRoot; + setPortalNode(subRoot); + }, [id, uniqueId]); + index(() => { + if (!uniqueId) return; + if (portalNodeRef.current) return; + let container = root || (portalContext == null ? void 0 : portalContext.portalNode); + if (container && !(0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(container)) container = container.current; + container = container || document.body; + let idWrapper = null; + if (id) { + idWrapper = document.createElement('div'); + idWrapper.id = id; + container.appendChild(idWrapper); + } + const subRoot = document.createElement('div'); + subRoot.id = uniqueId; + subRoot.setAttribute(attr, ''); + container = idWrapper || container; + container.appendChild(subRoot); + portalNodeRef.current = subRoot; + setPortalNode(subRoot); + }, [id, root, uniqueId, portalContext]); + return portalNode; +} +/** + * Portals the floating element into a given container element — by default, + * outside of the app root and into the body. + * This is necessary to ensure the floating element can appear outside any + * potential parent containers that cause clipping (such as `overflow: hidden`), + * while retaining its location in the React tree. + * @see https://floating-ui.com/docs/FloatingPortal + */ +function FloatingPortal(props) { + const { + children, + id, + root = null, + preserveTabOrder = true + } = props; + const portalNode = useFloatingPortalNode({ + id, + root + }); + const [focusManagerState, setFocusManagerState] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null); + const beforeOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const afterOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const beforeInsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const afterInsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const shouldRenderGuards = + // The FocusManager and therefore floating element are currently open/ + // rendered. + !!focusManagerState && + // Guards are only for non-modal focus management. + !focusManagerState.modal && + // Don't render if unmount is transitioning. + focusManagerState.open && preserveTabOrder && !!(root || portalNode); + + // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) { + return; + } + + // Make sure elements inside the portal element are tabbable only when the + // portal has already been focused, either by tabbing into a focus trap + // element outside or using the mouse. + function onFocus(event) { + if (portalNode && isOutsideEvent(event)) { + const focusing = event.type === 'focusin'; + const manageFocus = focusing ? enableFocusInside : disableFocusInside; + manageFocus(portalNode); + } + } + // Listen to the event on the capture phase so they run before the focus + // trap elements onFocus prop is called. + portalNode.addEventListener('focusin', onFocus, true); + portalNode.addEventListener('focusout', onFocus, true); + return () => { + portalNode.removeEventListener('focusin', onFocus, true); + portalNode.removeEventListener('focusout', onFocus, true); + }; + }, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]); + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(PortalContext.Provider, { + value: react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + preserveTabOrder, + beforeOutsideRef, + afterOutsideRef, + beforeInsideRef, + afterInsideRef, + portalNode, + setFocusManagerState + }), [preserveTabOrder, portalNode]) + }, shouldRenderGuards && portalNode && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FocusGuard, { + "data-type": "outside", + ref: beforeOutsideRef, + onFocus: event => { + if (isOutsideEvent(event, portalNode)) { + var _beforeInsideRef$curr; + (_beforeInsideRef$curr = beforeInsideRef.current) == null || _beforeInsideRef$curr.focus(); + } else { + const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current); + prevTabbable == null || prevTabbable.focus(); + } + } + }), shouldRenderGuards && portalNode && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { + "aria-owns": portalNode.id, + style: HIDDEN_STYLES + }), portalNode && /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_4__.createPortal)(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FocusGuard, { + "data-type": "outside", + ref: afterOutsideRef, + onFocus: event => { + if (isOutsideEvent(event, portalNode)) { + var _afterInsideRef$curre; + (_afterInsideRef$curre = afterInsideRef.current) == null || _afterInsideRef$curre.focus(); + } else { + const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current); + nextTabbable == null || nextTabbable.focus(); + (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent)); + } + } + })); +} +const usePortalContext = () => react__WEBPACK_IMPORTED_MODULE_0__.useContext(PortalContext); + +const LIST_LIMIT = 20; +let previouslyFocusedElements = []; +function addPreviouslyFocusedElement(element) { + previouslyFocusedElements = previouslyFocusedElements.filter(el => el.isConnected); + let tabbableEl = element; + if (!tabbableEl || (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getNodeName)(tabbableEl) === 'body') return; + if (!(0,tabbable__WEBPACK_IMPORTED_MODULE_7__.isTabbable)(tabbableEl, getTabbableOptions())) { + const tabbableChild = (0,tabbable__WEBPACK_IMPORTED_MODULE_7__.tabbable)(tabbableEl, getTabbableOptions())[0]; + if (tabbableChild) { + tabbableEl = tabbableChild; + } + } + previouslyFocusedElements.push(tabbableEl); + if (previouslyFocusedElements.length > LIST_LIMIT) { + previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT); + } +} +function getPreviouslyFocusedElement() { + return previouslyFocusedElements.slice().reverse().find(el => el.isConnected); +} +const VisuallyHiddenDismiss = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function VisuallyHiddenDismiss(props, ref) { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("button", _extends({}, props, { + type: "button", + ref: ref, + tabIndex: -1, + style: HIDDEN_STYLES + })); +}); +/** + * Provides focus management for the floating element. + * @see https://floating-ui.com/docs/FloatingFocusManager + */ +function FloatingFocusManager(props) { + const { + context, + children, + disabled = false, + order = ['content'], + guards: _guards = true, + initialFocus = 0, + returnFocus = true, + modal = true, + visuallyHiddenDismiss = false, + closeOnFocusOut = true + } = props; + const { + open, + refs, + nodeId, + onOpenChange, + events, + dataRef, + elements: { + domReference, + floating + } + } = context; + const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0; + // If the reference is a combobox and is typeable (e.g. input/textarea), + // there are different focus semantics. The guards should not be rendered, but + // aria-hidden should be applied to all nodes still. Further, the visually + // hidden dismiss button should only appear at the end of the list, not the + // start. + const isUntrappedTypeableCombobox = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isTypeableCombobox)(domReference) && ignoreInitialFocus; + + // Force the guards to be rendered if the `inert` attribute is not supported. + const guards = supportsInert() ? _guards : true; + const orderRef = useLatestRef(order); + const initialFocusRef = useLatestRef(initialFocus); + const returnFocusRef = useLatestRef(returnFocus); + const tree = useFloatingTree(); + const portalContext = usePortalContext(); + const startDismissButtonRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const endDismissButtonRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const preventReturnFocusRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const isPointerDownRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const isInsidePortal = portalContext != null; + const getTabbableContent = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (container) { + if (container === void 0) { + container = floating; + } + return container ? (0,tabbable__WEBPACK_IMPORTED_MODULE_7__.tabbable)(container, getTabbableOptions()) : []; + }, [floating]); + const getTabbableElements = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(container => { + const content = getTabbableContent(container); + return orderRef.current.map(type => { + if (domReference && type === 'reference') { + return domReference; + } + if (floating && type === 'floating') { + return floating; + } + return content; + }).filter(Boolean).flat(); + }, [domReference, floating, orderRef, getTabbableContent]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (disabled || !modal) return; + function onKeyDown(event) { + if (event.key === 'Tab') { + // The focus guards have nothing to focus, so we need to stop the event. + if ((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(floating, (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + } + const els = getTabbableElements(); + const target = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getTarget)(event); + if (orderRef.current[0] === 'reference' && target === domReference) { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + if (event.shiftKey) { + enqueueFocus(els[els.length - 1]); + } else { + enqueueFocus(els[1]); + } + } + if (orderRef.current[1] === 'floating' && target === floating && event.shiftKey) { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + enqueueFocus(els[0]); + } + } + } + const doc = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating); + doc.addEventListener('keydown', onKeyDown); + return () => { + doc.removeEventListener('keydown', onKeyDown); + }; + }, [disabled, domReference, floating, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (disabled || !closeOnFocusOut) return; + + // In Safari, buttons lose focus when pressing them. + function handlePointerDown() { + isPointerDownRef.current = true; + setTimeout(() => { + isPointerDownRef.current = false; + }); + } + function handleFocusOutside(event) { + const relatedTarget = event.relatedTarget; + queueMicrotask(() => { + const movedToUnrelatedNode = !((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(domReference, relatedTarget) || (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(floating, relatedTarget) || (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(relatedTarget, floating) || (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute('focus-guard')) || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => { + var _node$context, _node$context2; + return (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget); + }) || getAncestors(tree.nodesRef.current, nodeId).find(node => { + var _node$context3, _node$context4; + return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget; + }))); + + // Focus did not move inside the floating tree, and there are no tabbable + // portal guards to handle closing. + if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current && + // Fix React 18 Strict Mode returnFocus due to double rendering. + relatedTarget !== getPreviouslyFocusedElement()) { + preventReturnFocusRef.current = true; + onOpenChange(false, event); + } + }); + } + if (floating && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(domReference)) { + domReference.addEventListener('focusout', handleFocusOutside); + domReference.addEventListener('pointerdown', handlePointerDown); + !modal && floating.addEventListener('focusout', handleFocusOutside); + return () => { + domReference.removeEventListener('focusout', handleFocusOutside); + domReference.removeEventListener('pointerdown', handlePointerDown); + !modal && floating.removeEventListener('focusout', handleFocusOutside); + }; + } + }, [disabled, domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + var _portalContext$portal; + if (disabled) return; + + // Don't hide portals nested within the parent portal. + const portalNodes = Array.from((portalContext == null || (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll("[" + createAttribute('portal') + "]")) || []); + if (floating) { + const insideElements = [floating, ...portalNodes, startDismissButtonRef.current, endDismissButtonRef.current, orderRef.current.includes('reference') || isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null); + const cleanup = modal || isUntrappedTypeableCombobox ? markOthers(insideElements, guards, !guards) : markOthers(insideElements); + return () => { + cleanup(); + }; + } + }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]); + index(() => { + if (disabled || !floating) return; + const doc = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating); + const previouslyFocusedElement = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)(doc); + + // Wait for any layout effect state setters to execute to set `tabIndex`. + queueMicrotask(() => { + const focusableElements = getTabbableElements(floating); + const initialFocusValue = initialFocusRef.current; + const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floating; + const focusAlreadyInsideFloatingEl = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(floating, previouslyFocusedElement); + if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) { + enqueueFocus(elToFocus, { + preventScroll: elToFocus === floating + }); + } + }); + }, [disabled, open, floating, ignoreInitialFocus, getTabbableElements, initialFocusRef]); + index(() => { + if (disabled || !floating) return; + let preventReturnFocusScroll = false; + const doc = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating); + const previouslyFocusedElement = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)(doc); + const contextData = dataRef.current; + let openEvent = contextData.openEvent; + addPreviouslyFocusedElement(previouslyFocusedElement); + + // Dismissing via outside press should always ignore `returnFocus` to + // prevent unwanted scrolling. + function onOpenChange(_ref) { + let { + open, + reason, + event, + nested + } = _ref; + if (open) { + openEvent = event; + } + if (reason === 'escape-key' && refs.domReference.current) { + addPreviouslyFocusedElement(refs.domReference.current); + } + if (reason === 'hover' && event.type === 'mouseleave') { + preventReturnFocusRef.current = true; + } + if (reason !== 'outside-press') return; + if (nested) { + preventReturnFocusRef.current = false; + preventReturnFocusScroll = true; + } else { + preventReturnFocusRef.current = !((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isVirtualClick)(event) || (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isVirtualPointerEvent)(event)); + } + } + events.on('openchange', onOpenChange); + return () => { + events.off('openchange', onOpenChange); + const activeEl = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)(doc); + const isFocusInsideFloatingTree = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => { + var _node$context5; + return (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl); + }); + const shouldFocusReference = isFocusInsideFloatingTree || openEvent && ['click', 'mousedown'].includes(openEvent.type); + if (shouldFocusReference && refs.domReference.current) { + addPreviouslyFocusedElement(refs.domReference.current); + } + const returnElement = getPreviouslyFocusedElement(); + if ( + // eslint-disable-next-line react-hooks/exhaustive-deps + returnFocusRef.current && !preventReturnFocusRef.current && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(returnElement) && ( + // If the focus moved somewhere else after mount, avoid returning focus + // since it likely entered a different element which should be + // respected: https://github.com/floating-ui/floating-ui/issues/2607 + returnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)) { + enqueueFocus(returnElement, { + // When dismissing nested floating elements, by the time the rAF has + // executed, the menus will all have been unmounted. When they try + // to get focused, the calls get ignored — leaving the root + // reference focused as desired. + cancelPrevious: false, + preventScroll: preventReturnFocusScroll + }); + } + }; + }, [disabled, floating, returnFocusRef, dataRef, refs, events, tree, nodeId]); + + // Synchronize the `context` & `modal` value to the FloatingPortal context. + // It will decide whether or not it needs to render its own guards. + index(() => { + if (disabled || !portalContext) return; + portalContext.setFocusManagerState({ + modal, + closeOnFocusOut, + open, + onOpenChange, + refs + }); + return () => { + portalContext.setFocusManagerState(null); + }; + }, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]); + index(() => { + if (disabled || !floating || typeof MutationObserver !== 'function' || ignoreInitialFocus) { + return; + } + const handleMutation = () => { + const tabIndex = floating.getAttribute('tabindex'); + if (orderRef.current.includes('floating') || (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating)) !== refs.domReference.current && getTabbableContent().length === 0) { + if (tabIndex !== '0') { + floating.setAttribute('tabindex', '0'); + } + } else if (tabIndex !== '-1') { + floating.setAttribute('tabindex', '-1'); + } + }; + handleMutation(); + const observer = new MutationObserver(handleMutation); + observer.observe(floating, { + childList: true, + subtree: true, + attributes: true + }); + return () => { + observer.disconnect(); + }; + }, [disabled, floating, refs, orderRef, getTabbableContent, ignoreInitialFocus]); + function renderDismissButton(location) { + if (disabled || !visuallyHiddenDismiss || !modal) { + return null; + } + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(VisuallyHiddenDismiss, { + ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef, + onClick: event => onOpenChange(false, event.nativeEvent) + }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss'); + } + const shouldRenderGuards = !disabled && guards && (isInsidePortal || modal); + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, shouldRenderGuards && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FocusGuard, { + "data-type": "inside", + ref: portalContext == null ? void 0 : portalContext.beforeInsideRef, + onFocus: event => { + if (modal) { + const els = getTabbableElements(); + enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]); + } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) { + preventReturnFocusRef.current = false; + if (isOutsideEvent(event, portalContext.portalNode)) { + const nextTabbable = getNextTabbable() || domReference; + nextTabbable == null || nextTabbable.focus(); + } else { + var _portalContext$before; + (_portalContext$before = portalContext.beforeOutsideRef.current) == null || _portalContext$before.focus(); + } + } + } + }), !isUntrappedTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FocusGuard, { + "data-type": "inside", + ref: portalContext == null ? void 0 : portalContext.afterInsideRef, + onFocus: event => { + if (modal) { + enqueueFocus(getTabbableElements()[0]); + } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) { + if (closeOnFocusOut) { + preventReturnFocusRef.current = true; + } + if (isOutsideEvent(event, portalContext.portalNode)) { + const prevTabbable = getPreviousTabbable() || domReference; + prevTabbable == null || prevTabbable.focus(); + } else { + var _portalContext$afterO; + (_portalContext$afterO = portalContext.afterOutsideRef.current) == null || _portalContext$afterO.focus(); + } + } + } + })); +} + +const activeLocks = /*#__PURE__*/new Set(); +/** + * Provides base styling for a fixed overlay element to dim content or block + * pointer events behind a floating element. + * It's a regular `
`, so it can be styled via any CSS solution you prefer. + * @see https://floating-ui.com/docs/FloatingOverlay + */ +const FloatingOverlay = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function FloatingOverlay(props, ref) { + const { + lockScroll = false, + ...rest + } = props; + const lockId = useId(); + index(() => { + if (!lockScroll) return; + activeLocks.add(lockId); + const isIOS = /iP(hone|ad|od)|iOS/.test((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getPlatform)()); + const bodyStyle = document.body.style; + // RTL scrollbar + const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft; + const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight'; + const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.pageXOffset; + const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.pageYOffset; + bodyStyle.overflow = 'hidden'; + if (scrollbarWidth) { + bodyStyle[paddingProp] = scrollbarWidth + "px"; + } + + // Only iOS doesn't respect `overflow: hidden` on document.body, and this + // technique has fewer side effects. + if (isIOS) { + var _window$visualViewpor, _window$visualViewpor2; + // iOS 12 does not support `visualViewport`. + const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0; + const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0; + Object.assign(bodyStyle, { + position: 'fixed', + top: -(scrollY - Math.floor(offsetTop)) + "px", + left: -(scrollX - Math.floor(offsetLeft)) + "px", + right: '0' + }); + } + return () => { + activeLocks.delete(lockId); + if (activeLocks.size === 0) { + Object.assign(bodyStyle, { + overflow: '', + [paddingProp]: '' + }); + if (isIOS) { + Object.assign(bodyStyle, { + position: '', + top: '', + left: '', + right: '' + }); + window.scrollTo(scrollX, scrollY); + } + } + }; + }, [lockId, lockScroll]); + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", _extends({ + ref: ref + }, rest, { + style: { + position: 'fixed', + overflow: 'auto', + top: 0, + right: 0, + bottom: 0, + left: 0, + ...rest.style + } + })); +}); + +function isButtonTarget(event) { + return (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(event.target) && event.target.tagName === 'BUTTON'; +} +function isSpaceIgnored(element) { + return (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isTypeableElement)(element); +} +/** + * Opens or closes the floating element when clicking the reference element. + * @see https://floating-ui.com/docs/useClick + */ +function useClick(context, props) { + if (props === void 0) { + props = {}; + } + const { + open, + onOpenChange, + dataRef, + elements: { + domReference + } + } = context; + const { + enabled = true, + event: eventOption = 'click', + toggle = true, + ignoreMouse = false, + keyboardHandlers = true + } = props; + const pointerTypeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(); + const didKeyDownRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (!enabled) return {}; + return { + reference: { + onPointerDown(event) { + pointerTypeRef.current = event.pointerType; + }, + onMouseDown(event) { + // Ignore all buttons except for the "main" button. + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button + if (event.button !== 0) { + return; + } + if ((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isMouseLikePointerType)(pointerTypeRef.current, true) && ignoreMouse) { + return; + } + if (eventOption === 'click') { + return; + } + if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'mousedown' : true)) { + onOpenChange(false, event.nativeEvent, 'click'); + } else { + // Prevent stealing focus from the floating element + event.preventDefault(); + onOpenChange(true, event.nativeEvent, 'click'); + } + }, + onClick(event) { + if (eventOption === 'mousedown' && pointerTypeRef.current) { + pointerTypeRef.current = undefined; + return; + } + if ((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isMouseLikePointerType)(pointerTypeRef.current, true) && ignoreMouse) { + return; + } + if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === 'click' : true)) { + onOpenChange(false, event.nativeEvent, 'click'); + } else { + onOpenChange(true, event.nativeEvent, 'click'); + } + }, + onKeyDown(event) { + pointerTypeRef.current = undefined; + if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) { + return; + } + if (event.key === ' ' && !isSpaceIgnored(domReference)) { + // Prevent scrolling + event.preventDefault(); + didKeyDownRef.current = true; + } + if (event.key === 'Enter') { + if (open && toggle) { + onOpenChange(false, event.nativeEvent, 'click'); + } else { + onOpenChange(true, event.nativeEvent, 'click'); + } + } + }, + onKeyUp(event) { + if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) { + return; + } + if (event.key === ' ' && didKeyDownRef.current) { + didKeyDownRef.current = false; + if (open && toggle) { + onOpenChange(false, event.nativeEvent, 'click'); + } else { + onOpenChange(true, event.nativeEvent, 'click'); + } + } + } + } + }; + }, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]); +} + +function createVirtualElement(domElement, data) { + let offsetX = null; + let offsetY = null; + let isAutoUpdateEvent = false; + return { + contextElement: domElement || undefined, + getBoundingClientRect() { + var _data$dataRef$current; + const domRect = (domElement == null ? void 0 : domElement.getBoundingClientRect()) || { + width: 0, + height: 0, + x: 0, + y: 0 + }; + const isXAxis = data.axis === 'x' || data.axis === 'both'; + const isYAxis = data.axis === 'y' || data.axis === 'both'; + const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch'; + let width = domRect.width; + let height = domRect.height; + let x = domRect.x; + let y = domRect.y; + if (offsetX == null && data.x && isXAxis) { + offsetX = domRect.x - data.x; + } + if (offsetY == null && data.y && isYAxis) { + offsetY = domRect.y - data.y; + } + x -= offsetX || 0; + y -= offsetY || 0; + width = 0; + height = 0; + if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) { + width = data.axis === 'y' ? domRect.width : 0; + height = data.axis === 'x' ? domRect.height : 0; + x = isXAxis && data.x != null ? data.x : x; + y = isYAxis && data.y != null ? data.y : y; + } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) { + height = data.axis === 'x' ? domRect.height : height; + width = data.axis === 'y' ? domRect.width : width; + } + isAutoUpdateEvent = true; + return { + width, + height, + x, + y, + top: y, + right: x + width, + bottom: y + height, + left: x + }; + } + }; +} +function isMouseBasedEvent(event) { + return event != null && event.clientX != null; +} +/** + * Positions the floating element relative to a client point (in the viewport), + * such as the mouse position. By default, it follows the mouse cursor. + * @see https://floating-ui.com/docs/useClientPoint + */ +function useClientPoint(context, props) { + if (props === void 0) { + props = {}; + } + const { + open, + dataRef, + elements: { + floating, + domReference + }, + refs + } = context; + const { + enabled = true, + axis = 'both', + x = null, + y = null + } = props; + const initialRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const cleanupListenerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const [pointerType, setPointerType] = react__WEBPACK_IMPORTED_MODULE_0__.useState(); + const [reactive, setReactive] = react__WEBPACK_IMPORTED_MODULE_0__.useState([]); + const setReference = useEffectEvent((x, y) => { + if (initialRef.current) return; + + // Prevent setting if the open event was not a mouse-like one + // (e.g. focus to open, then hover over the reference element). + // Only apply if the event exists. + if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) { + return; + } + refs.setPositionReference(createVirtualElement(domReference, { + x, + y, + axis, + dataRef, + pointerType + })); + }); + const handleReferenceEnterOrMove = useEffectEvent(event => { + if (x != null || y != null) return; + if (!open) { + setReference(event.clientX, event.clientY); + } else if (!cleanupListenerRef.current) { + // If there's no cleanup, there's no listener, but we want to ensure + // we add the listener if the cursor landed on the floating element and + // then back on the reference (i.e. it's interactive). + setReactive([]); + } + }); + + // If the pointer is a mouse-like pointer, we want to continue following the + // mouse even if the floating element is transitioning out. On touch + // devices, this is undesirable because the floating element will move to + // the dismissal touch point. + const openCheck = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isMouseLikePointerType)(pointerType) ? floating : open; + const addListener = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(() => { + // Explicitly specified `x`/`y` coordinates shouldn't add a listener. + if (!openCheck || !enabled || x != null || y != null) return; + const win = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getWindow)(floating); + function handleMouseMove(event) { + const target = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getTarget)(event); + if (!(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(floating, target)) { + setReference(event.clientX, event.clientY); + } else { + win.removeEventListener('mousemove', handleMouseMove); + cleanupListenerRef.current = null; + } + } + if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) { + win.addEventListener('mousemove', handleMouseMove); + const cleanup = () => { + win.removeEventListener('mousemove', handleMouseMove); + cleanupListenerRef.current = null; + }; + cleanupListenerRef.current = cleanup; + return cleanup; + } + refs.setPositionReference(domReference); + }, [openCheck, enabled, x, y, floating, dataRef, refs, domReference, setReference]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + return addListener(); + }, [addListener, reactive]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (enabled && !floating) { + initialRef.current = false; + } + }, [enabled, floating]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!enabled && open) { + initialRef.current = true; + } + }, [enabled, open]); + index(() => { + if (enabled && (x != null || y != null)) { + initialRef.current = false; + setReference(x, y); + } + }, [enabled, x, y, setReference]); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (!enabled) return {}; + function setPointerTypeRef(_ref) { + let { + pointerType + } = _ref; + setPointerType(pointerType); + } + return { + reference: { + onPointerDown: setPointerTypeRef, + onPointerEnter: setPointerTypeRef, + onMouseMove: handleReferenceEnterOrMove, + onMouseEnter: handleReferenceEnterOrMove + } + }; + }, [enabled, handleReferenceEnterOrMove]); +} + +const bubbleHandlerKeys = { + pointerdown: 'onPointerDown', + mousedown: 'onMouseDown', + click: 'onClick' +}; +const captureHandlerKeys = { + pointerdown: 'onPointerDownCapture', + mousedown: 'onMouseDownCapture', + click: 'onClickCapture' +}; +const normalizeProp = normalizable => { + var _normalizable$escapeK, _normalizable$outside; + return { + escapeKey: typeof normalizable === 'boolean' ? normalizable : (_normalizable$escapeK = normalizable == null ? void 0 : normalizable.escapeKey) != null ? _normalizable$escapeK : false, + outsidePress: typeof normalizable === 'boolean' ? normalizable : (_normalizable$outside = normalizable == null ? void 0 : normalizable.outsidePress) != null ? _normalizable$outside : true + }; +}; +/** + * Closes the floating element when a dismissal is requested — by default, when + * the user presses the `escape` key or outside of the floating element. + * @see https://floating-ui.com/docs/useDismiss + */ +function useDismiss(context, props) { + if (props === void 0) { + props = {}; + } + const { + open, + onOpenChange, + elements: { + reference, + domReference, + floating + }, + dataRef + } = context; + const { + enabled = true, + escapeKey = true, + outsidePress: unstable_outsidePress = true, + outsidePressEvent = 'pointerdown', + referencePress = false, + referencePressEvent = 'pointerdown', + ancestorScroll = false, + bubbles, + capture + } = props; + const tree = useFloatingTree(); + const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false); + const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress; + const insideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const endedOrStartedInsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const { + escapeKey: escapeKeyBubbles, + outsidePress: outsidePressBubbles + } = normalizeProp(bubbles); + const { + escapeKey: escapeKeyCapture, + outsidePress: outsidePressCapture + } = normalizeProp(capture); + const closeOnEscapeKeyDown = useEffectEvent(event => { + var _dataRef$current$floa; + if (!open || !enabled || !escapeKey || event.key !== 'Escape') { + return; + } + const nodeId = (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId; + const children = tree ? getChildren(tree.nodesRef.current, nodeId) : []; + if (!escapeKeyBubbles) { + event.stopPropagation(); + if (children.length > 0) { + let shouldDismiss = true; + children.forEach(child => { + var _child$context; + if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) { + shouldDismiss = false; + return; + } + }); + if (!shouldDismiss) { + return; + } + } + } + onOpenChange(false, (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isReactEvent)(event) ? event.nativeEvent : event, 'escape-key'); + }); + const closeOnEscapeKeyDownCapture = useEffectEvent(event => { + var _getTarget2; + const callback = () => { + var _getTarget; + closeOnEscapeKeyDown(event); + (_getTarget = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getTarget)(event)) == null || _getTarget.removeEventListener('keydown', callback); + }; + (_getTarget2 = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getTarget)(event)) == null || _getTarget2.addEventListener('keydown', callback); + }); + const closeOnPressOutside = useEffectEvent(event => { + var _dataRef$current$floa2; + // Given developers can stop the propagation of the synthetic event, + // we can only be confident with a positive value. + const insideReactTree = insideReactTreeRef.current; + insideReactTreeRef.current = false; + + // When click outside is lazy (`click` event), handle dragging. + // Don't close if: + // - The click started inside the floating element. + // - The click ended inside the floating element. + const endedOrStartedInside = endedOrStartedInsideRef.current; + endedOrStartedInsideRef.current = false; + if (outsidePressEvent === 'click' && endedOrStartedInside) { + return; + } + if (insideReactTree) { + return; + } + if (typeof outsidePress === 'function' && !outsidePress(event)) { + return; + } + const target = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getTarget)(event); + const inertSelector = "[" + createAttribute('inert') + "]"; + const markers = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating).querySelectorAll(inertSelector); + let targetRootAncestor = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(target) ? target : null; + while (targetRootAncestor && !(0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isLastTraversableNode)(targetRootAncestor)) { + const nextParent = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getParentNode)(targetRootAncestor); + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isLastTraversableNode)(nextParent) || !(0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(nextParent)) { + break; + } + targetRootAncestor = nextParent; + } + + // Check if the click occurred on a third-party element injected after the + // floating element rendered. + if (markers.length && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(target) && !(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isRootElement)(target) && + // Clicked on a direct ancestor (e.g. FloatingOverlay). + !(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(target, floating) && + // If the target root element contains none of the markers, then the + // element was injected after the floating element rendered. + Array.from(markers).every(marker => !(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(targetRootAncestor, marker))) { + return; + } + + // Check if the click occurred on the scrollbar + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(target) && floating) { + // In Firefox, `target.scrollWidth > target.clientWidth` for inline + // elements. + const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth; + const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight; + let xCond = canScrollY && event.offsetX > target.clientWidth; + + // In some browsers it is possible to change the (or window) + // scrollbar to the left side, but is very rare and is difficult to + // check for. Plus, for modal dialogs with backdrops, it is more + // important that the backdrop is checked but not so much the window. + if (canScrollY) { + const isRTL = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getComputedStyle)(target).direction === 'rtl'; + if (isRTL) { + xCond = event.offsetX <= target.offsetWidth - target.clientWidth; + } + } + if (xCond || canScrollX && event.offsetY > target.clientHeight) { + return; + } + } + const nodeId = (_dataRef$current$floa2 = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa2.nodeId; + const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => { + var _node$context; + return (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isEventTargetWithin)(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating); + }); + if ((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isEventTargetWithin)(event, floating) || (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isEventTargetWithin)(event, domReference) || targetIsInsideChildren) { + return; + } + const children = tree ? getChildren(tree.nodesRef.current, nodeId) : []; + if (children.length > 0) { + let shouldDismiss = true; + children.forEach(child => { + var _child$context2; + if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) { + shouldDismiss = false; + return; + } + }); + if (!shouldDismiss) { + return; + } + } + onOpenChange(false, event, 'outside-press'); + }); + const closeOnPressOutsideCapture = useEffectEvent(event => { + var _getTarget4; + const callback = () => { + var _getTarget3; + closeOnPressOutside(event); + (_getTarget3 = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getTarget)(event)) == null || _getTarget3.removeEventListener(outsidePressEvent, callback); + }; + (_getTarget4 = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getTarget)(event)) == null || _getTarget4.addEventListener(outsidePressEvent, callback); + }); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!open || !enabled) { + return; + } + dataRef.current.__escapeKeyBubbles = escapeKeyBubbles; + dataRef.current.__outsidePressBubbles = outsidePressBubbles; + function onScroll(event) { + onOpenChange(false, event, 'ancestor-scroll'); + } + const doc = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating); + escapeKey && doc.addEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture); + outsidePress && doc.addEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture); + let ancestors = []; + if (ancestorScroll) { + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(domReference)) { + ancestors = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getOverflowAncestors)(domReference); + } + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(floating)) { + ancestors = ancestors.concat((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getOverflowAncestors)(floating)); + } + if (!(0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(reference) && reference && reference.contextElement) { + ancestors = ancestors.concat((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getOverflowAncestors)(reference.contextElement)); + } + } + + // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom) + ancestors = ancestors.filter(ancestor => { + var _doc$defaultView; + return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport); + }); + ancestors.forEach(ancestor => { + ancestor.addEventListener('scroll', onScroll, { + passive: true + }); + }); + return () => { + escapeKey && doc.removeEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture); + outsidePress && doc.removeEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture); + ancestors.forEach(ancestor => { + ancestor.removeEventListener('scroll', onScroll); + }); + }; + }, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, escapeKeyCapture, closeOnEscapeKeyDownCapture, closeOnPressOutside, outsidePressCapture, closeOnPressOutsideCapture]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + insideReactTreeRef.current = false; + }, [outsidePress, outsidePressEvent]); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (!enabled) { + return {}; + } + return { + reference: { + onKeyDown: closeOnEscapeKeyDown, + [bubbleHandlerKeys[referencePressEvent]]: event => { + if (referencePress) { + onOpenChange(false, event.nativeEvent, 'reference-press'); + } + } + }, + floating: { + onKeyDown: closeOnEscapeKeyDown, + onMouseDown() { + endedOrStartedInsideRef.current = true; + }, + onMouseUp() { + endedOrStartedInsideRef.current = true; + }, + [captureHandlerKeys[outsidePressEvent]]: () => { + insideReactTreeRef.current = true; + } + } + }; + }, [enabled, referencePress, outsidePressEvent, referencePressEvent, onOpenChange, closeOnEscapeKeyDown]); +} + +function useFloatingRootContext(options) { + const { + open = false, + onOpenChange: onOpenChangeProp, + elements: elementsProp + } = options; + const floatingId = useId(); + const dataRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({}); + const [events] = react__WEBPACK_IMPORTED_MODULE_0__.useState(() => createPubSub()); + const nested = useFloatingParentNodeId() != null; + if (true) { + const optionDomReference = elementsProp.reference; + if (optionDomReference && !(0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(optionDomReference)) { + error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `refs.setPositionReference()`', 'instead.'); + } + } + const [positionReference, setPositionReference] = react__WEBPACK_IMPORTED_MODULE_0__.useState(elementsProp.reference); + const onOpenChange = useEffectEvent((open, event, reason) => { + dataRef.current.openEvent = open ? event : undefined; + events.emit('openchange', { + open, + event, + reason, + nested + }); + onOpenChangeProp == null || onOpenChangeProp(open, event, reason); + }); + const refs = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + setPositionReference + }), []); + const elements = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + reference: positionReference || elementsProp.reference || null, + floating: elementsProp.floating || null, + domReference: elementsProp.reference + }), [positionReference, elementsProp.reference, elementsProp.floating]); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + dataRef, + open, + onOpenChange, + elements, + events, + floatingId, + refs + }), [open, onOpenChange, elements, events, floatingId, refs]); +} + +/** + * Provides data to position a floating element and context to add interactions. + * @see https://floating-ui.com/docs/useFloating + */ +function useFloating(options) { + if (options === void 0) { + options = {}; + } + const { + nodeId + } = options; + const internalRootContext = useFloatingRootContext({ + ...options, + elements: { + reference: null, + floating: null, + ...options.elements + } + }); + const rootContext = options.rootContext || internalRootContext; + const computedElements = rootContext.elements; + const [_domReference, setDomReference] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null); + const [positionReference, _setPositionReference] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null); + const optionDomReference = computedElements == null ? void 0 : computedElements.reference; + const domReference = optionDomReference || _domReference; + const domReferenceRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const tree = useFloatingTree(); + index(() => { + if (domReference) { + domReferenceRef.current = domReference; + } + }, [domReference]); + const position = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.useFloating)({ + ...options, + elements: { + ...computedElements, + ...(positionReference && { + reference: positionReference + }) + } + }); + const setPositionReference = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => { + const computedPositionReference = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(node) ? { + getBoundingClientRect: () => node.getBoundingClientRect(), + contextElement: node + } : node; + // Store the positionReference in state if the DOM reference is specified externally via the + // `elements.reference` option. This ensures that it won't be overridden on future renders. + _setPositionReference(computedPositionReference); + position.refs.setReference(computedPositionReference); + }, [position.refs]); + const setReference = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => { + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(node) || node === null) { + domReferenceRef.current = node; + setDomReference(node); + } + + // Backwards-compatibility for passing a virtual element to `reference` + // after it has set the DOM reference. + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(position.refs.reference.current) || position.refs.reference.current === null || + // Don't allow setting virtual elements using the old technique back to + // `null` to support `positionReference` + an unstable `reference` + // callback ref. + node !== null && !(0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(node)) { + position.refs.setReference(node); + } + }, [position.refs]); + const refs = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + ...position.refs, + setReference, + setPositionReference, + domReference: domReferenceRef + }), [position.refs, setReference, setPositionReference]); + const elements = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + ...position.elements, + domReference: domReference + }), [position.elements, domReference]); + const context = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + ...position, + ...rootContext, + refs, + elements, + nodeId + }), [position, refs, elements, nodeId, rootContext]); + index(() => { + rootContext.dataRef.current.floatingContext = context; + const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId); + if (node) { + node.context = context; + } + }); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + ...position, + context, + refs, + elements + }), [position, refs, elements, context]); +} + +/** + * Opens the floating element while the reference element has focus, like CSS + * `:focus`. + * @see https://floating-ui.com/docs/useFocus + */ +function useFocus(context, props) { + if (props === void 0) { + props = {}; + } + const { + open, + onOpenChange, + events, + dataRef, + elements: { + domReference + } + } = context; + const { + enabled = true, + visibleOnly = true + } = props; + const blockFocusRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const timeoutRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(); + const keyboardModalityRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!enabled) { + return; + } + const win = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.getWindow)(domReference); + + // If the reference was focused and the user left the tab/window, and the + // floating element was not open, the focus should be blocked when they + // return to the tab/window. + function onBlur() { + if (!open && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(domReference) && domReference === (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(domReference))) { + blockFocusRef.current = true; + } + } + function onKeyDown() { + keyboardModalityRef.current = true; + } + win.addEventListener('blur', onBlur); + win.addEventListener('keydown', onKeyDown, true); + return () => { + win.removeEventListener('blur', onBlur); + win.removeEventListener('keydown', onKeyDown, true); + }; + }, [domReference, open, enabled]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!enabled) { + return; + } + function onOpenChange(_ref) { + let { + reason + } = _ref; + if (reason === 'reference-press' || reason === 'escape-key') { + blockFocusRef.current = true; + } + } + events.on('openchange', onOpenChange); + return () => { + events.off('openchange', onOpenChange); + }; + }, [events, enabled]); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + return () => { + clearTimeout(timeoutRef.current); + }; + }, []); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (!enabled) { + return {}; + } + return { + reference: { + onPointerDown(event) { + if ((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isVirtualPointerEvent)(event.nativeEvent)) return; + keyboardModalityRef.current = false; + }, + onMouseLeave() { + blockFocusRef.current = false; + }, + onFocus(event) { + if (blockFocusRef.current) return; + const target = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getTarget)(event.nativeEvent); + if (visibleOnly && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(target)) { + try { + // Mac Safari unreliably matches `:focus-visible` on the reference + // if focus was outside the page initially - use the fallback + // instead. + if ((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isSafari)() && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isMac)()) throw Error(); + if (!target.matches(':focus-visible')) return; + } catch (e) { + // Old browsers will throw an error when using `:focus-visible`. + if (!keyboardModalityRef.current && !(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isTypeableElement)(target)) { + return; + } + } + } + onOpenChange(true, event.nativeEvent, 'focus'); + }, + onBlur(event) { + blockFocusRef.current = false; + const relatedTarget = event.relatedTarget; + + // Hit the non-modal focus management portal guard. Focus will be + // moved into the floating element immediately after. + const movedToFocusGuard = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && relatedTarget.getAttribute('data-type') === 'outside'; + + // Wait for the window blur listener to fire. + timeoutRef.current = window.setTimeout(() => { + var _dataRef$current$floa; + const activeEl = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)(domReference ? domReference.ownerDocument : document); + + // Focus left the page, keep it open. + if (!relatedTarget && activeEl === domReference) return; + + // When focusing the reference element (e.g. regular click), then + // clicking into the floating element, prevent it from hiding. + // Note: it must be focusable, e.g. `tabindex="-1"`. + // We can not rely on relatedTarget to point to the correct element + // as it will only point to the shadow host of the newly focused element + // and not the element that actually has received focus if it is located + // inside a shadow root. + if ((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)((_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.refs.floating.current, activeEl) || (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(domReference, activeEl) || movedToFocusGuard) { + return; + } + onOpenChange(false, event.nativeEvent, 'focus'); + }); + } + } + }; + }, [enabled, visibleOnly, dataRef, domReference, onOpenChange]); +} + +const ACTIVE_KEY = 'active'; +const SELECTED_KEY = 'selected'; +function mergeProps(userProps, propsList, elementKey) { + const map = new Map(); + const isItem = elementKey === 'item'; + let domUserProps = userProps; + if (isItem && userProps) { + const { + [ACTIVE_KEY]: _, + [SELECTED_KEY]: __, + ...validProps + } = userProps; + domUserProps = validProps; + } + return { + ...(elementKey === 'floating' && { + tabIndex: -1 + }), + ...domUserProps, + ...propsList.map(value => { + const propsOrGetProps = value ? value[elementKey] : null; + if (typeof propsOrGetProps === 'function') { + return userProps ? propsOrGetProps(userProps) : null; + } + return propsOrGetProps; + }).concat(userProps).reduce((acc, props) => { + if (!props) { + return acc; + } + Object.entries(props).forEach(_ref => { + let [key, value] = _ref; + if (isItem && [ACTIVE_KEY, SELECTED_KEY].includes(key)) { + return; + } + if (key.indexOf('on') === 0) { + if (!map.has(key)) { + map.set(key, []); + } + if (typeof value === 'function') { + var _map$get; + (_map$get = map.get(key)) == null || _map$get.push(value); + acc[key] = function () { + var _map$get2; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined); + }; + } + } else { + acc[key] = value; + } + }); + return acc; + }, {}) + }; +} +/** + * Merges an array of interaction hooks' props into prop getters, allowing + * event handler functions to be composed together without overwriting one + * another. + * @see https://floating-ui.com/docs/useInteractions + */ +function useInteractions(propsList) { + if (propsList === void 0) { + propsList = []; + } + // The dependencies are a dynamic array, so we can't use the linter's + // suggestion to add it to the deps array. + const deps = propsList; + const getReferenceProps = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(userProps => mergeProps(userProps, propsList, 'reference'), + // eslint-disable-next-line react-hooks/exhaustive-deps + deps); + const getFloatingProps = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(userProps => mergeProps(userProps, propsList, 'floating'), + // eslint-disable-next-line react-hooks/exhaustive-deps + deps); + const getItemProps = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(userProps => mergeProps(userProps, propsList, 'item'), + // Granularly check for `item` changes, because the `getItemProps` getter + // should be as referentially stable as possible since it may be passed as + // a prop to many components. All `item` key values must therefore be + // memoized. + // eslint-disable-next-line react-hooks/exhaustive-deps + propsList.map(key => key == null ? void 0 : key.item)); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + getReferenceProps, + getFloatingProps, + getItemProps + }), [getReferenceProps, getFloatingProps, getItemProps]); +} + +let isPreventScrollSupported = false; +function doSwitch(orientation, vertical, horizontal) { + switch (orientation) { + case 'vertical': + return vertical; + case 'horizontal': + return horizontal; + default: + return vertical || horizontal; + } +} +function isMainOrientationKey(key, orientation) { + const vertical = key === ARROW_UP || key === ARROW_DOWN; + const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT; + return doSwitch(orientation, vertical, horizontal); +} +function isMainOrientationToEndKey(key, orientation, rtl) { + const vertical = key === ARROW_DOWN; + const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT; + return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key === ' ' || key === ''; +} +function isCrossOrientationOpenKey(key, orientation, rtl) { + const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT; + const horizontal = key === ARROW_DOWN; + return doSwitch(orientation, vertical, horizontal); +} +function isCrossOrientationCloseKey(key, orientation, rtl) { + const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT; + const horizontal = key === ARROW_UP; + return doSwitch(orientation, vertical, horizontal); +} +/** + * Adds arrow key-based navigation of a list of items, either using real DOM + * focus or virtual focus. + * @see https://floating-ui.com/docs/useListNavigation + */ +function useListNavigation(context, props) { + const { + open, + onOpenChange, + elements: { + domReference, + floating + } + } = context; + const { + listRef, + activeIndex, + onNavigate: unstable_onNavigate = () => {}, + enabled = true, + selectedIndex = null, + allowEscape = false, + loop = false, + nested = false, + rtl = false, + virtual = false, + focusItemOnOpen = 'auto', + focusItemOnHover = true, + openOnArrowKeyDown = true, + disabledIndices = undefined, + orientation = 'vertical', + cols = 1, + scrollItemIntoView = true, + virtualItemRef, + itemSizes, + dense = false + } = props; + if (true) { + if (allowEscape) { + if (!loop) { + warn('`useListNavigation` looping must be enabled to allow escaping.'); + } + if (!virtual) { + warn('`useListNavigation` must be virtual to allow escaping.'); + } + } + if (orientation === 'vertical' && cols > 1) { + warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either "horizontal" or "both".'); + } + } + const parentId = useFloatingParentNodeId(); + const tree = useFloatingTree(); + const onNavigate = useEffectEvent(unstable_onNavigate); + const focusItemOnOpenRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(focusItemOnOpen); + const indexRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(selectedIndex != null ? selectedIndex : -1); + const keyRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const isPointerModalityRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true); + const previousOnNavigateRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(onNavigate); + const previousMountedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(!!floating); + const forceSyncFocus = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const forceScrollIntoViewRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const disabledIndicesRef = useLatestRef(disabledIndices); + const latestOpenRef = useLatestRef(open); + const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView); + const floatingRef = useLatestRef(floating); + const selectedIndexRef = useLatestRef(selectedIndex); + const [activeId, setActiveId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(); + const [virtualId, setVirtualId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(); + const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) { + if (forceScrollIntoView === void 0) { + forceScrollIntoView = false; + } + function runFocus(item) { + if (virtual) { + setActiveId(item.id); + tree == null || tree.events.emit('virtualfocus', item); + if (virtualItemRef) { + virtualItemRef.current = item; + } + } else { + enqueueFocus(item, { + preventScroll: true, + // Mac Safari does not move the virtual cursor unless the focus call + // is sync. However, for the very first focus call, we need to wait + // for the position to be ready in order to prevent unwanted + // scrolling. This means the virtual cursor will not move to the first + // item when first opening the floating element, but will on + // subsequent calls. `preventScroll` is supported in modern Safari, + // so we can use that instead. + // iOS Safari must be async or the first item will not be focused. + sync: (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isMac)() && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isSafari)() ? isPreventScrollSupported || forceSyncFocus.current : false + }); + } + } + const initialItem = listRef.current[indexRef.current]; + if (initialItem) { + runFocus(initialItem); + } + requestAnimationFrame(() => { + const waitedItem = listRef.current[indexRef.current] || initialItem; + if (!waitedItem) return; + if (!initialItem) { + runFocus(waitedItem); + } + const scrollIntoViewOptions = scrollItemIntoViewRef.current; + const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current); + if (shouldScrollIntoView) { + // JSDOM doesn't support `.scrollIntoView()` but it's widely supported + // by all browsers. + waitedItem.scrollIntoView == null || waitedItem.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? { + block: 'nearest', + inline: 'nearest' + } : scrollIntoViewOptions); + } + }); + }); + index(() => { + document.createElement('div').focus({ + get preventScroll() { + isPreventScrollSupported = true; + return false; + } + }); + }, []); + + // Sync `selectedIndex` to be the `activeIndex` upon opening the floating + // element. Also, reset `activeIndex` upon closing the floating element. + index(() => { + if (!enabled) { + return; + } + if (open && floating) { + if (focusItemOnOpenRef.current && selectedIndex != null) { + // Regardless of the pointer modality, we want to ensure the selected + // item comes into view when the floating element is opened. + forceScrollIntoViewRef.current = true; + indexRef.current = selectedIndex; + onNavigate(selectedIndex); + } + } else if (previousMountedRef.current) { + // Since the user can specify `onNavigate` conditionally + // (onNavigate: open ? setActiveIndex : setSelectedIndex), + // we store and call the previous function. + indexRef.current = -1; + previousOnNavigateRef.current(null); + } + }, [enabled, open, floating, selectedIndex, onNavigate]); + + // Sync `activeIndex` to be the focused item while the floating element is + // open. + index(() => { + if (!enabled) { + return; + } + if (open && floating) { + if (activeIndex == null) { + forceSyncFocus.current = false; + if (selectedIndexRef.current != null) { + return; + } + + // Reset while the floating element was open (e.g. the list changed). + if (previousMountedRef.current) { + indexRef.current = -1; + focusItem(listRef, indexRef); + } + + // Initial sync. + if (!previousMountedRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) { + let runs = 0; + const waitForListPopulated = () => { + if (listRef.current[0] == null) { + // Avoid letting the browser paint if possible on the first try, + // otherwise use rAF. Don't try more than twice, since something + // is wrong otherwise. + if (runs < 2) { + const scheduler = runs ? requestAnimationFrame : queueMicrotask; + scheduler(waitForListPopulated); + } + runs++; + } else { + indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current); + keyRef.current = null; + onNavigate(indexRef.current); + } + }; + waitForListPopulated(); + } + } else if (!isIndexOutOfBounds(listRef, activeIndex)) { + indexRef.current = activeIndex; + focusItem(listRef, indexRef, forceScrollIntoViewRef.current); + forceScrollIntoViewRef.current = false; + } + } + }, [enabled, open, floating, activeIndex, selectedIndexRef, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]); + + // Ensure the parent floating element has focus when a nested child closes + // to allow arrow key navigation to work after the pointer leaves the child. + index(() => { + var _nodes$find; + if (!enabled || floating || !tree || virtual || !previousMountedRef.current) { + return; + } + const nodes = tree.nodesRef.current; + const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null || (_nodes$find = _nodes$find.context) == null ? void 0 : _nodes$find.elements.floating; + const activeEl = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getDocument)(floating)); + const treeContainsActiveEl = nodes.some(node => node.context && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(node.context.elements.floating, activeEl)); + if (parent && !treeContainsActiveEl && isPointerModalityRef.current) { + parent.focus({ + preventScroll: true + }); + } + }, [enabled, floating, tree, parentId, virtual]); + index(() => { + if (!enabled || !tree || !virtual || parentId) return; + function handleVirtualFocus(item) { + setVirtualId(item.id); + if (virtualItemRef) { + virtualItemRef.current = item; + } + } + tree.events.on('virtualfocus', handleVirtualFocus); + return () => { + tree.events.off('virtualfocus', handleVirtualFocus); + }; + }, [enabled, tree, virtual, parentId, virtualItemRef]); + index(() => { + previousOnNavigateRef.current = onNavigate; + previousMountedRef.current = !!floating; + }); + index(() => { + if (!open) { + keyRef.current = null; + } + }, [open]); + const hasActiveIndex = activeIndex != null; + const item = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + function syncCurrentTarget(currentTarget) { + if (!open) return; + const index = listRef.current.indexOf(currentTarget); + if (index !== -1) { + onNavigate(index); + } + } + const props = { + onFocus(_ref) { + let { + currentTarget + } = _ref; + syncCurrentTarget(currentTarget); + }, + onClick: _ref2 => { + let { + currentTarget + } = _ref2; + return currentTarget.focus({ + preventScroll: true + }); + }, + // Safari + ...(focusItemOnHover && { + onMouseMove(_ref3) { + let { + currentTarget + } = _ref3; + syncCurrentTarget(currentTarget); + }, + onPointerLeave(_ref4) { + let { + pointerType + } = _ref4; + if (!isPointerModalityRef.current || pointerType === 'touch') { + return; + } + indexRef.current = -1; + focusItem(listRef, indexRef); + onNavigate(null); + if (!virtual) { + enqueueFocus(floatingRef.current, { + preventScroll: true + }); + } + } + }) + }; + return props; + }, [open, floatingRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (!enabled) { + return {}; + } + const disabledIndices = disabledIndicesRef.current; + function onKeyDown(event) { + isPointerModalityRef.current = false; + forceSyncFocus.current = true; + + // If the floating element is animating out, ignore navigation. Otherwise, + // the `activeIndex` gets set to 0 despite not being open so the next time + // the user ArrowDowns, the first item won't be focused. + if (!latestOpenRef.current && event.currentTarget === floatingRef.current) { + return; + } + if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + onOpenChange(false, event.nativeEvent, 'list-navigation'); + if ((0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isHTMLElement)(domReference) && !virtual) { + domReference.focus(); + } + return; + } + const currentIndex = indexRef.current; + const minIndex = getMinIndex(listRef, disabledIndices); + const maxIndex = getMaxIndex(listRef, disabledIndices); + if (event.key === 'Home') { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + indexRef.current = minIndex; + onNavigate(indexRef.current); + } + if (event.key === 'End') { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + indexRef.current = maxIndex; + onNavigate(indexRef.current); + } + + // Grid navigation. + if (cols > 1) { + const sizes = itemSizes || Array.from({ + length: listRef.current.length + }, () => ({ + width: 1, + height: 1 + })); + // To calculate movements on the grid, we use hypothetical cell indices + // as if every item was 1x1, then convert back to real indices. + const cellMap = buildCellMap(sizes, cols, dense); + const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(listRef.current, index, disabledIndices)); + // last enabled index + const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(listRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1); + indexRef.current = cellMap[getGridNavigatedIndex({ + current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null) + }, { + event, + orientation, + loop, + cols, + // treat undefined (empty grid spaces) as disabled indices so we + // don't end up in them + disabledIndices: getCellIndices([...(disabledIndices || listRef.current.map((_, index) => isDisabled(listRef.current, index) ? index : undefined)), undefined], cellMap), + minIndex: minGridIndex, + maxIndex: maxGridIndex, + prevIndex: getCellIndexOfCorner(indexRef.current > maxIndex ? minIndex : indexRef.current, sizes, cellMap, cols, + // use a corner matching the edge closest to the direction + // we're moving in so we don't end up in the same item. Prefer + // top/left over bottom/right. + event.key === ARROW_DOWN ? 'bl' : event.key === ARROW_RIGHT ? 'tr' : 'tl'), + stopEvent: true + })]; // navigated cell will never be nullish + + onNavigate(indexRef.current); + if (orientation === 'both') { + return; + } + } + if (isMainOrientationKey(event.key, orientation)) { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + + // Reset the index if no item is focused. + if (open && !virtual && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.activeElement)(event.currentTarget.ownerDocument) === event.currentTarget) { + indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex; + onNavigate(indexRef.current); + return; + } + if (isMainOrientationToEndKey(event.key, orientation, rtl)) { + if (loop) { + indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, { + startingIndex: currentIndex, + disabledIndices + }); + } else { + indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, { + startingIndex: currentIndex, + disabledIndices + })); + } + } else { + if (loop) { + indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, { + startingIndex: currentIndex, + decrement: true, + disabledIndices + }); + } else { + indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, { + startingIndex: currentIndex, + decrement: true, + disabledIndices + })); + } + } + if (isIndexOutOfBounds(listRef, indexRef.current)) { + onNavigate(null); + } else { + onNavigate(indexRef.current); + } + } + } + function checkVirtualMouse(event) { + if (focusItemOnOpen === 'auto' && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isVirtualClick)(event.nativeEvent)) { + focusItemOnOpenRef.current = true; + } + } + function checkVirtualPointer(event) { + // `pointerdown` fires first, reset the state then perform the checks. + focusItemOnOpenRef.current = focusItemOnOpen; + if (focusItemOnOpen === 'auto' && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isVirtualPointerEvent)(event.nativeEvent)) { + focusItemOnOpenRef.current = true; + } + } + const ariaActiveDescendantProp = virtual && open && hasActiveIndex && { + 'aria-activedescendant': virtualId || activeId + }; + const activeItem = listRef.current.find(item => (item == null ? void 0 : item.id) === activeId); + return { + reference: { + ...ariaActiveDescendantProp, + onKeyDown(event) { + isPointerModalityRef.current = false; + const isArrowKey = event.key.indexOf('Arrow') === 0; + const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl); + const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl); + const isMainKey = isMainOrientationKey(event.key, orientation); + const isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === ''; + if (virtual && open) { + const rootNode = tree == null ? void 0 : tree.nodesRef.current.find(node => node.parentId == null); + const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null; + if (isArrowKey && deepestNode && virtualItemRef) { + const eventObject = new KeyboardEvent('keydown', { + key: event.key, + bubbles: true + }); + if (isCrossOpenKey || isCrossCloseKey) { + var _deepestNode$context, _deepestNode$context2; + const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget; + const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? activeItem : null; + if (dispatchItem) { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + dispatchItem.dispatchEvent(eventObject); + setVirtualId(undefined); + } + } + if (isMainKey && deepestNode.context) { + if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) { + var _deepestNode$context$; + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + (_deepestNode$context$ = deepestNode.context.elements.domReference) == null || _deepestNode$context$.dispatchEvent(eventObject); + return; + } + } + } + return onKeyDown(event); + } + + // If a floating element should not open on arrow key down, avoid + // setting `activeIndex` while it's closed. + if (!open && !openOnArrowKeyDown && isArrowKey) { + return; + } + if (isNavigationKey) { + keyRef.current = nested && isMainKey ? null : event.key; + } + if (nested) { + if (isCrossOpenKey) { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + if (open) { + indexRef.current = getMinIndex(listRef, disabledIndices); + onNavigate(indexRef.current); + } else { + onOpenChange(true, event.nativeEvent, 'list-navigation'); + } + } + return; + } + if (isMainKey) { + if (selectedIndex != null) { + indexRef.current = selectedIndex; + } + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + if (!open && openOnArrowKeyDown) { + onOpenChange(true, event.nativeEvent, 'list-navigation'); + } else { + onKeyDown(event); + } + if (open) { + onNavigate(indexRef.current); + } + } + }, + onFocus() { + if (open && !virtual) { + onNavigate(null); + } + }, + onPointerDown: checkVirtualPointer, + onMouseDown: checkVirtualMouse, + onClick: checkVirtualMouse + }, + floating: { + 'aria-orientation': orientation === 'both' ? undefined : orientation, + ...(!(0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.isTypeableCombobox)(domReference) && ariaActiveDescendantProp), + onKeyDown, + onPointerMove() { + isPointerModalityRef.current = true; + } + }, + item + }; + }, [domReference, floatingRef, activeId, virtualId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item, tree, virtualItemRef, itemSizes, dense]); +} + +const componentRoleToAriaRoleMap = /*#__PURE__*/new Map([['select', 'listbox'], ['combobox', 'listbox'], ['label', false]]); + +/** + * Adds base screen reader props to the reference and floating elements for a + * given floating element `role`. + * @see https://floating-ui.com/docs/useRole + */ +function useRole(context, props) { + var _componentRoleToAriaR; + if (props === void 0) { + props = {}; + } + const { + open, + floatingId + } = context; + const { + enabled = true, + role = 'dialog' + } = props; + const ariaRole = (_componentRoleToAriaR = componentRoleToAriaRoleMap.get(role)) != null ? _componentRoleToAriaR : role; + const referenceId = useId(); + const parentId = useFloatingParentNodeId(); + const isNested = parentId != null; + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (!enabled) return {}; + const floatingProps = { + id: floatingId, + ...(ariaRole && { + role: ariaRole + }) + }; + if (ariaRole === 'tooltip' || role === 'label') { + return { + reference: { + ["aria-" + (role === 'label' ? 'labelledby' : 'describedby')]: open ? floatingId : undefined + }, + floating: floatingProps + }; + } + return { + reference: { + 'aria-expanded': open ? 'true' : 'false', + 'aria-haspopup': ariaRole === 'alertdialog' ? 'dialog' : ariaRole, + 'aria-controls': open ? floatingId : undefined, + ...(ariaRole === 'listbox' && { + role: 'combobox' + }), + ...(ariaRole === 'menu' && { + id: referenceId + }), + ...(ariaRole === 'menu' && isNested && { + role: 'menuitem' + }), + ...(role === 'select' && { + 'aria-autocomplete': 'none' + }), + ...(role === 'combobox' && { + 'aria-autocomplete': 'list' + }) + }, + floating: { + ...floatingProps, + ...(ariaRole === 'menu' && { + 'aria-labelledby': referenceId + }) + }, + item(_ref) { + let { + active, + selected + } = _ref; + const commonProps = { + role: 'option', + ...(active && { + id: floatingId + "-option" + }) + }; + + // For `menu`, we are unable to tell if the item is a `menuitemradio` + // or `menuitemcheckbox`. For backwards-compatibility reasons, also + // avoid defaulting to `menuitem` as it may overwrite custom role props. + switch (role) { + case 'select': + return { + ...commonProps, + 'aria-selected': active && selected + }; + case 'combobox': + { + return { + ...commonProps, + ...(active && { + 'aria-selected': true + }) + }; + } + } + return {}; + } + }; + }, [enabled, role, ariaRole, open, floatingId, referenceId, isNested]); +} + +// Converts a JS style key like `backgroundColor` to a CSS transition-property +// like `background-color`. +const camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase()); +function execWithArgsOrReturn(valueOrFn, args) { + return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn; +} +function useDelayUnmount(open, durationMs) { + const [isMounted, setIsMounted] = react__WEBPACK_IMPORTED_MODULE_0__.useState(open); + if (open && !isMounted) { + setIsMounted(true); + } + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!open && isMounted) { + const timeout = setTimeout(() => setIsMounted(false), durationMs); + return () => clearTimeout(timeout); + } + }, [open, isMounted, durationMs]); + return isMounted; +} +/** + * Provides a status string to apply CSS transitions to a floating element, + * correctly handling placement-aware transitions. + * @see https://floating-ui.com/docs/useTransition#usetransitionstatus + */ +function useTransitionStatus(context, props) { + if (props === void 0) { + props = {}; + } + const { + open, + elements: { + floating + } + } = context; + const { + duration = 250 + } = props; + const isNumberDuration = typeof duration === 'number'; + const closeDuration = (isNumberDuration ? duration : duration.close) || 0; + const [status, setStatus] = react__WEBPACK_IMPORTED_MODULE_0__.useState('unmounted'); + const isMounted = useDelayUnmount(open, closeDuration); + if (!isMounted && status === 'close') { + setStatus('unmounted'); + } + index(() => { + if (!floating) return; + if (open) { + setStatus('initial'); + const frame = requestAnimationFrame(() => { + setStatus('open'); + }); + return () => { + cancelAnimationFrame(frame); + }; + } + setStatus('close'); + }, [open, floating]); + return { + isMounted, + status + }; +} +/** + * Provides styles to apply CSS transitions to a floating element, correctly + * handling placement-aware transitions. Wrapper around `useTransitionStatus`. + * @see https://floating-ui.com/docs/useTransition#usetransitionstyles + */ +function useTransitionStyles(context, props) { + if (props === void 0) { + props = {}; + } + const { + initial: unstable_initial = { + opacity: 0 + }, + open: unstable_open, + close: unstable_close, + common: unstable_common, + duration = 250 + } = props; + const placement = context.placement; + const side = placement.split('-')[0]; + const fnArgs = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ + side, + placement + }), [side, placement]); + const isNumberDuration = typeof duration === 'number'; + const openDuration = (isNumberDuration ? duration : duration.open) || 0; + const closeDuration = (isNumberDuration ? duration : duration.close) || 0; + const [styles, setStyles] = react__WEBPACK_IMPORTED_MODULE_0__.useState(() => ({ + ...execWithArgsOrReturn(unstable_common, fnArgs), + ...execWithArgsOrReturn(unstable_initial, fnArgs) + })); + const { + isMounted, + status + } = useTransitionStatus(context, { + duration + }); + const initialRef = useLatestRef(unstable_initial); + const openRef = useLatestRef(unstable_open); + const closeRef = useLatestRef(unstable_close); + const commonRef = useLatestRef(unstable_common); + index(() => { + const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs); + const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs); + const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs); + const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => { + acc[key] = ''; + return acc; + }, {}); + if (status === 'initial') { + setStyles(styles => ({ + transitionProperty: styles.transitionProperty, + ...commonStyles, + ...initialStyles + })); + } + if (status === 'open') { + setStyles({ + transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','), + transitionDuration: openDuration + "ms", + ...commonStyles, + ...openStyles + }); + } + if (status === 'close') { + const styles = closeStyles || initialStyles; + setStyles({ + transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','), + transitionDuration: closeDuration + "ms", + ...commonStyles, + ...styles + }); + } + }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]); + return { + isMounted, + styles + }; +} + +/** + * Provides a matching callback that can be used to focus an item as the user + * types, often used in tandem with `useListNavigation()`. + * @see https://floating-ui.com/docs/useTypeahead + */ +function useTypeahead(context, props) { + var _ref; + const { + open, + dataRef + } = context; + const { + listRef, + activeIndex, + onMatch: unstable_onMatch, + onTypingChange: unstable_onTypingChange, + enabled = true, + findMatch = null, + resetMs = 750, + ignoreKeys = [], + selectedIndex = null + } = props; + const timeoutIdRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(); + const stringRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(''); + const prevIndexRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1); + const matchIndexRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const onMatch = useEffectEvent(unstable_onMatch); + const onTypingChange = useEffectEvent(unstable_onTypingChange); + const findMatchRef = useLatestRef(findMatch); + const ignoreKeysRef = useLatestRef(ignoreKeys); + index(() => { + if (open) { + clearTimeout(timeoutIdRef.current); + matchIndexRef.current = null; + stringRef.current = ''; + } + }, [open]); + index(() => { + // Sync arrow key navigation but not typeahead navigation. + if (open && stringRef.current === '') { + var _ref2; + prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1; + } + }, [open, selectedIndex, activeIndex]); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (!enabled) { + return {}; + } + function setTypingChange(value) { + if (value) { + if (!dataRef.current.typing) { + dataRef.current.typing = value; + onTypingChange(value); + } + } else { + if (dataRef.current.typing) { + dataRef.current.typing = value; + onTypingChange(value); + } + } + } + function getMatchingIndex(list, orderedList, string) { + const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0); + return str ? list.indexOf(str) : -1; + } + function onKeyDown(event) { + const listContent = listRef.current; + if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') { + if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) { + setTypingChange(false); + } else if (event.key === ' ') { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + } + } + if (listContent == null || ignoreKeysRef.current.includes(event.key) || + // Character key. + event.key.length !== 1 || + // Modifier key. + event.ctrlKey || event.metaKey || event.altKey) { + return; + } + if (open && event.key !== ' ') { + (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.stopEvent)(event); + setTypingChange(true); + } + + // Bail out if the list contains a word like "llama" or "aaron". TODO: + // allow it in this case, too. + const allowRapidSuccessionOfFirstLetter = listContent.every(text => { + var _text$, _text$2; + return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true; + }); + + // Allows the user to cycle through items that start with the same letter + // in rapid succession. + if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) { + stringRef.current = ''; + prevIndexRef.current = matchIndexRef.current; + } + stringRef.current += event.key; + clearTimeout(timeoutIdRef.current); + timeoutIdRef.current = setTimeout(() => { + stringRef.current = ''; + prevIndexRef.current = matchIndexRef.current; + setTypingChange(false); + }, resetMs); + const prevIndex = prevIndexRef.current; + const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current); + if (index !== -1) { + onMatch(index); + matchIndexRef.current = index; + } else if (event.key !== ' ') { + stringRef.current = ''; + setTypingChange(false); + } + } + return { + reference: { + onKeyDown + }, + floating: { + onKeyDown, + onKeyUp(event) { + if (event.key === ' ') { + setTypingChange(false); + } + } + } + }; + }, [enabled, open, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, onTypingChange]); +} + +function getArgsWithCustomFloatingHeight(state, height) { + return { + ...state, + rects: { + ...state.rects, + floating: { + ...state.rects.floating, + height + } + } + }; +} +/** + * Positions the floating element such that an inner element inside + * of it is anchored to the reference element. + * @see https://floating-ui.com/docs/inner + */ +const inner = props => ({ + name: 'inner', + options: props, + async fn(state) { + const { + listRef, + overflowRef, + onFallbackChange, + offset: innerOffset = 0, + index = 0, + minItemsVisible = 4, + referenceOverflowThreshold = 0, + scrollRef, + ...detectOverflowOptions + } = props; + const { + rects, + elements: { + floating + } + } = state; + const item = listRef.current[index]; + if (true) { + if (!state.placement.startsWith('bottom')) { + warn('`placement` side must be "bottom" when using the `inner`', 'middleware.'); + } + } + if (!item) { + return {}; + } + const nextArgs = { + ...state, + ...(await (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_1__.offset)(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state)) + }; + const el = (scrollRef == null ? void 0 : scrollRef.current) || floating; + const overflow = await (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__.detectOverflow)(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions); + const refOverflow = await (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__.detectOverflow)(nextArgs, { + ...detectOverflowOptions, + elementContext: 'reference' + }); + const diffY = Math.max(0, overflow.top); + const nextY = nextArgs.y + diffY; + const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom)); + el.style.maxHeight = maxHeight + "px"; + el.scrollTop = diffY; + + // There is not enough space, fallback to standard anchored positioning + if (onFallbackChange) { + if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) { + (0,react_dom__WEBPACK_IMPORTED_MODULE_4__.flushSync)(() => onFallbackChange(true)); + } else { + (0,react_dom__WEBPACK_IMPORTED_MODULE_4__.flushSync)(() => onFallbackChange(false)); + } + } + if (overflowRef) { + overflowRef.current = await (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__.detectOverflow)(getArgsWithCustomFloatingHeight({ + ...nextArgs, + y: nextY + }, el.offsetHeight), detectOverflowOptions); + } + return { + y: nextY + }; + } +}); +/** + * Changes the `inner` middleware's `offset` upon a `wheel` event to + * expand the floating element's height, revealing more list items. + * @see https://floating-ui.com/docs/inner + */ +function useInnerOffset(context, props) { + const { + open, + elements + } = context; + const { + enabled = true, + overflowRef, + scrollRef, + onChange: unstable_onChange + } = props; + const onChange = useEffectEvent(unstable_onChange); + const controlledScrollingRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); + const prevScrollTopRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + const initialOverflowRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + if (!enabled) { + return; + } + function onWheel(e) { + if (e.ctrlKey || !el || overflowRef.current == null) { + return; + } + const dY = e.deltaY; + const isAtTop = overflowRef.current.top >= -0.5; + const isAtBottom = overflowRef.current.bottom >= -0.5; + const remainingScroll = el.scrollHeight - el.clientHeight; + const sign = dY < 0 ? -1 : 1; + const method = dY < 0 ? 'max' : 'min'; + if (el.scrollHeight <= el.clientHeight) { + return; + } + if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) { + e.preventDefault(); + (0,react_dom__WEBPACK_IMPORTED_MODULE_4__.flushSync)(() => { + onChange(d => d + Math[method](dY, remainingScroll * sign)); + }); + } else if (/firefox/i.test((0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getUserAgent)())) { + // Needed to propagate scrolling during momentum scrolling phase once + // it gets limited by the boundary. UX improvement, not critical. + el.scrollTop += dY; + } + } + const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating; + if (open && el) { + el.addEventListener('wheel', onWheel); + + // Wait for the position to be ready. + requestAnimationFrame(() => { + prevScrollTopRef.current = el.scrollTop; + if (overflowRef.current != null) { + initialOverflowRef.current = { + ...overflowRef.current + }; + } + }); + return () => { + prevScrollTopRef.current = null; + initialOverflowRef.current = null; + el.removeEventListener('wheel', onWheel); + }; + } + }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]); + return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + if (!enabled) { + return {}; + } + return { + floating: { + onKeyDown() { + controlledScrollingRef.current = true; + }, + onWheel() { + controlledScrollingRef.current = false; + }, + onPointerMove() { + controlledScrollingRef.current = false; + }, + onScroll() { + const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating; + if (!overflowRef.current || !el || !controlledScrollingRef.current) { + return; + } + if (prevScrollTopRef.current !== null) { + const scrollDiff = el.scrollTop - prevScrollTopRef.current; + if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) { + (0,react_dom__WEBPACK_IMPORTED_MODULE_4__.flushSync)(() => onChange(d => d + scrollDiff)); + } + } + + // [Firefox] Wait for the height change to have been applied. + requestAnimationFrame(() => { + prevScrollTopRef.current = el.scrollTop; + }); + } + } + }; + }, [enabled, overflowRef, elements.floating, scrollRef, onChange]); +} + +function isPointInPolygon(point, polygon) { + const [x, y] = point; + let isInside = false; + const length = polygon.length; + for (let i = 0, j = length - 1; i < length; j = i++) { + const [xi, yi] = polygon[i] || [0, 0]; + const [xj, yj] = polygon[j] || [0, 0]; + const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi; + if (intersect) { + isInside = !isInside; + } + } + return isInside; +} +function isInside(point, rect) { + return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height; +} +/** + * Generates a safe polygon area that the user can traverse without closing the + * floating element once leaving the reference element. + * @see https://floating-ui.com/docs/useHover#safepolygon + */ +function safePolygon(options) { + if (options === void 0) { + options = {}; + } + const { + buffer = 0.5, + blockPointerEvents = false, + requireIntent = true + } = options; + let timeoutId; + let hasLanded = false; + let lastX = null; + let lastY = null; + let lastCursorTime = performance.now(); + function getCursorSpeed(x, y) { + const currentTime = performance.now(); + const elapsedTime = currentTime - lastCursorTime; + if (lastX === null || lastY === null || elapsedTime === 0) { + lastX = x; + lastY = y; + lastCursorTime = currentTime; + return null; + } + const deltaX = x - lastX; + const deltaY = y - lastY; + const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); + const speed = distance / elapsedTime; // px / ms + + lastX = x; + lastY = y; + lastCursorTime = currentTime; + return speed; + } + const fn = _ref => { + let { + x, + y, + placement, + elements, + onClose, + nodeId, + tree + } = _ref; + return function onMouseMove(event) { + function close() { + clearTimeout(timeoutId); + onClose(); + } + clearTimeout(timeoutId); + if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) { + return; + } + const { + clientX, + clientY + } = event; + const clientPoint = [clientX, clientY]; + const target = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.getTarget)(event); + const isLeave = event.type === 'mouseleave'; + const isOverFloatingEl = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(elements.floating, target); + const isOverReferenceEl = (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(elements.domReference, target); + const refRect = elements.domReference.getBoundingClientRect(); + const rect = elements.floating.getBoundingClientRect(); + const side = placement.split('-')[0]; + const cursorLeaveFromRight = x > rect.right - rect.width / 2; + const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2; + const isOverReferenceRect = isInside(clientPoint, refRect); + const isFloatingWider = rect.width > refRect.width; + const isFloatingTaller = rect.height > refRect.height; + const left = (isFloatingWider ? refRect : rect).left; + const right = (isFloatingWider ? refRect : rect).right; + const top = (isFloatingTaller ? refRect : rect).top; + const bottom = (isFloatingTaller ? refRect : rect).bottom; + if (isOverFloatingEl) { + hasLanded = true; + if (!isLeave) { + return; + } + } + if (isOverReferenceEl) { + hasLanded = false; + } + if (isOverReferenceEl && !isLeave) { + hasLanded = true; + return; + } + + // Prevent overlapping floating element from being stuck in an open-close + // loop: https://github.com/floating-ui/floating-ui/issues/1910 + if (isLeave && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__.isElement)(event.relatedTarget) && (0,_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__.contains)(elements.floating, event.relatedTarget)) { + return; + } + + // If any nested child is open, abort. + if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => { + let { + context + } = _ref2; + return context == null ? void 0 : context.open; + })) { + return; + } + + // If the pointer is leaving from the opposite side, the "buffer" logic + // creates a point where the floating element remains open, but should be + // ignored. + // A constant of 1 handles floating point rounding errors. + if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) { + return close(); + } + + // Ignore when the cursor is within the rectangular trough between the + // two elements. Since the triangle is created from the cursor point, + // which can start beyond the ref element's edge, traversing back and + // forth from the ref to the floating element can cause it to close. This + // ensures it always remains open in that case. + let rectPoly = []; + switch (side) { + case 'top': + rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]]; + break; + case 'bottom': + rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]]; + break; + case 'left': + rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]]; + break; + case 'right': + rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]]; + break; + } + function getPolygon(_ref3) { + let [x, y] = _ref3; + switch (side) { + case 'top': + { + const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1]; + const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1]; + const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]]; + return [cursorPointOne, cursorPointTwo, ...commonPoints]; + } + case 'bottom': + { + const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer]; + const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer]; + const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]]; + return [cursorPointOne, cursorPointTwo, ...commonPoints]; + } + case 'left': + { + const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4]; + const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4]; + const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]]; + return [...commonPoints, cursorPointOne, cursorPointTwo]; + } + case 'right': + { + const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4]; + const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4]; + const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]]; + return [cursorPointOne, cursorPointTwo, ...commonPoints]; + } + } + } + if (isPointInPolygon([clientX, clientY], rectPoly)) { + return; + } + if (hasLanded && !isOverReferenceRect) { + return close(); + } + if (!isLeave && requireIntent) { + const cursorSpeed = getCursorSpeed(event.clientX, event.clientY); + const cursorSpeedThreshold = 0.1; + if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) { + return close(); + } + } + if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) { + close(); + } else if (!hasLanded && requireIntent) { + timeoutId = window.setTimeout(close, 40); + } + }; + }; + fn.__options = { + blockPointerEvents + }; + return fn; +} + + + + +/***/ }), + +/***/ "./node_modules/@pdf-lib/standard-fonts/es/Encoding.js": +/*!*************************************************************!*\ + !*** ./node_modules/@pdf-lib/standard-fonts/es/Encoding.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Encodings: () => (/* binding */ Encodings) +/* harmony export */ }); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./node_modules/@pdf-lib/standard-fonts/es/utils.js"); +/* harmony import */ var _all_encodings_compressed_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./all-encodings.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/all-encodings.compressed.json"); +/* tslint:disable max-classes-per-file */ + + +var decompressedEncodings = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.decompressJson)(_all_encodings_compressed_json__WEBPACK_IMPORTED_MODULE_1__); +var allUnicodeMappings = JSON.parse(decompressedEncodings); +var Encoding = /** @class */ (function () { + function Encoding(name, unicodeMappings) { + var _this = this; + this.canEncodeUnicodeCodePoint = function (codePoint) { + return codePoint in _this.unicodeMappings; + }; + this.encodeUnicodeCodePoint = function (codePoint) { + var mapped = _this.unicodeMappings[codePoint]; + if (!mapped) { + var str = String.fromCharCode(codePoint); + var hexCode = "0x" + (0,_utils__WEBPACK_IMPORTED_MODULE_0__.padStart)(codePoint.toString(16), 4, '0'); + var msg = _this.name + " cannot encode \"" + str + "\" (" + hexCode + ")"; + throw new Error(msg); + } + return { code: mapped[0], name: mapped[1] }; + }; + this.name = name; + this.supportedCodePoints = Object.keys(unicodeMappings) + .map(Number) + .sort(function (a, b) { return a - b; }); + this.unicodeMappings = unicodeMappings; + } + return Encoding; +}()); +var Encodings = { + Symbol: new Encoding('Symbol', allUnicodeMappings.symbol), + ZapfDingbats: new Encoding('ZapfDingbats', allUnicodeMappings.zapfdingbats), + WinAnsi: new Encoding('WinAnsi', allUnicodeMappings.win1252), +}; + + +/***/ }), + +/***/ "./node_modules/@pdf-lib/standard-fonts/es/Font.js": +/*!*********************************************************!*\ + !*** ./node_modules/@pdf-lib/standard-fonts/es/Font.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Font: () => (/* binding */ Font), +/* harmony export */ FontNames: () => (/* binding */ FontNames) +/* harmony export */ }); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./node_modules/@pdf-lib/standard-fonts/es/utils.js"); +/* harmony import */ var _Courier_Bold_compressed_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Courier-Bold.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Courier-Bold.compressed.json"); +/* harmony import */ var _Courier_BoldOblique_compressed_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Courier-BoldOblique.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Courier-BoldOblique.compressed.json"); +/* harmony import */ var _Courier_Oblique_compressed_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Courier-Oblique.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Courier-Oblique.compressed.json"); +/* harmony import */ var _Courier_compressed_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Courier.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Courier.compressed.json"); +/* harmony import */ var _Helvetica_Bold_compressed_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Helvetica-Bold.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica-Bold.compressed.json"); +/* harmony import */ var _Helvetica_BoldOblique_compressed_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Helvetica-BoldOblique.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica-BoldOblique.compressed.json"); +/* harmony import */ var _Helvetica_Oblique_compressed_json__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Helvetica-Oblique.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica-Oblique.compressed.json"); +/* harmony import */ var _Helvetica_compressed_json__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Helvetica.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Helvetica.compressed.json"); +/* harmony import */ var _Times_Bold_compressed_json__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Times-Bold.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Times-Bold.compressed.json"); +/* harmony import */ var _Times_BoldItalic_compressed_json__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Times-BoldItalic.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Times-BoldItalic.compressed.json"); +/* harmony import */ var _Times_Italic_compressed_json__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Times-Italic.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Times-Italic.compressed.json"); +/* harmony import */ var _Times_Roman_compressed_json__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Times-Roman.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Times-Roman.compressed.json"); +/* harmony import */ var _Symbol_compressed_json__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Symbol.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/Symbol.compressed.json"); +/* harmony import */ var _ZapfDingbats_compressed_json__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ZapfDingbats.compressed.json */ "./node_modules/@pdf-lib/standard-fonts/es/ZapfDingbats.compressed.json"); + + + + + + + + + + + + + + + +// prettier-ignore +var compressedJsonForFontName = { + 'Courier': _Courier_compressed_json__WEBPACK_IMPORTED_MODULE_4__, + 'Courier-Bold': _Courier_Bold_compressed_json__WEBPACK_IMPORTED_MODULE_1__, + 'Courier-Oblique': _Courier_Oblique_compressed_json__WEBPACK_IMPORTED_MODULE_3__, + 'Courier-BoldOblique': _Courier_BoldOblique_compressed_json__WEBPACK_IMPORTED_MODULE_2__, + 'Helvetica': _Helvetica_compressed_json__WEBPACK_IMPORTED_MODULE_8__, + 'Helvetica-Bold': _Helvetica_Bold_compressed_json__WEBPACK_IMPORTED_MODULE_5__, + 'Helvetica-Oblique': _Helvetica_Oblique_compressed_json__WEBPACK_IMPORTED_MODULE_7__, + 'Helvetica-BoldOblique': _Helvetica_BoldOblique_compressed_json__WEBPACK_IMPORTED_MODULE_6__, + 'Times-Roman': _Times_Roman_compressed_json__WEBPACK_IMPORTED_MODULE_12__, + 'Times-Bold': _Times_Bold_compressed_json__WEBPACK_IMPORTED_MODULE_9__, + 'Times-Italic': _Times_Italic_compressed_json__WEBPACK_IMPORTED_MODULE_11__, + 'Times-BoldItalic': _Times_BoldItalic_compressed_json__WEBPACK_IMPORTED_MODULE_10__, + 'Symbol': _Symbol_compressed_json__WEBPACK_IMPORTED_MODULE_13__, + 'ZapfDingbats': _ZapfDingbats_compressed_json__WEBPACK_IMPORTED_MODULE_14__, +}; +var FontNames; +(function (FontNames) { + FontNames["Courier"] = "Courier"; + FontNames["CourierBold"] = "Courier-Bold"; + FontNames["CourierOblique"] = "Courier-Oblique"; + FontNames["CourierBoldOblique"] = "Courier-BoldOblique"; + FontNames["Helvetica"] = "Helvetica"; + FontNames["HelveticaBold"] = "Helvetica-Bold"; + FontNames["HelveticaOblique"] = "Helvetica-Oblique"; + FontNames["HelveticaBoldOblique"] = "Helvetica-BoldOblique"; + FontNames["TimesRoman"] = "Times-Roman"; + FontNames["TimesRomanBold"] = "Times-Bold"; + FontNames["TimesRomanItalic"] = "Times-Italic"; + FontNames["TimesRomanBoldItalic"] = "Times-BoldItalic"; + FontNames["Symbol"] = "Symbol"; + FontNames["ZapfDingbats"] = "ZapfDingbats"; +})(FontNames || (FontNames = {})); +var fontCache = {}; +var Font = /** @class */ (function () { + function Font() { + var _this = this; + this.getWidthOfGlyph = function (glyphName) { + return _this.CharWidths[glyphName]; + }; + this.getXAxisKerningForPair = function (leftGlyphName, rightGlyphName) { + return (_this.KernPairXAmounts[leftGlyphName] || {})[rightGlyphName]; + }; + } + Font.load = function (fontName) { + var cachedFont = fontCache[fontName]; + if (cachedFont) + return cachedFont; + var json = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.decompressJson)(compressedJsonForFontName[fontName]); + var font = Object.assign(new Font(), JSON.parse(json)); + font.CharWidths = font.CharMetrics.reduce(function (acc, metric) { + acc[metric.N] = metric.WX; + return acc; + }, {}); + font.KernPairXAmounts = font.KernPairs.reduce(function (acc, _a) { + var name1 = _a[0], name2 = _a[1], width = _a[2]; + if (!acc[name1]) + acc[name1] = {}; + acc[name1][name2] = width; + return acc; + }, {}); + fontCache[fontName] = font; + return font; + }; + return Font; +}()); + + + +/***/ }), + +/***/ "./node_modules/@pdf-lib/standard-fonts/es/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/@pdf-lib/standard-fonts/es/index.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Encodings: () => (/* reexport safe */ _Encoding__WEBPACK_IMPORTED_MODULE_1__.Encodings), +/* harmony export */ Font: () => (/* reexport safe */ _Font__WEBPACK_IMPORTED_MODULE_0__.Font), +/* harmony export */ FontNames: () => (/* reexport safe */ _Font__WEBPACK_IMPORTED_MODULE_0__.FontNames) +/* harmony export */ }); +/* harmony import */ var _Font__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Font */ "./node_modules/@pdf-lib/standard-fonts/es/Font.js"); +/* harmony import */ var _Encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Encoding */ "./node_modules/@pdf-lib/standard-fonts/es/Encoding.js"); + + + + +/***/ }), + +/***/ "./node_modules/@pdf-lib/standard-fonts/es/utils.js": +/*!**********************************************************!*\ + !*** ./node_modules/@pdf-lib/standard-fonts/es/utils.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ decodeFromBase64: () => (/* binding */ decodeFromBase64), +/* harmony export */ decompressJson: () => (/* binding */ decompressJson), +/* harmony export */ padStart: () => (/* binding */ padStart) +/* harmony export */ }); +/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pako */ "./node_modules/pako/index.js"); +/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(pako__WEBPACK_IMPORTED_MODULE_0__); +/* + * The `chars`, `lookup`, and `decodeFromBase64` members of this file are + * licensed under the following: + * + * base64-arraybuffer + * https://github.com/niklasvh/base64-arraybuffer + * + * Copyright (c) 2012 Niklas von Hertzen + * Licensed under the MIT license. + * + */ + +var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +// Use a lookup table to find the index. +var lookup = new Uint8Array(256); +for (var i = 0; i < chars.length; i++) { + lookup[chars.charCodeAt(i)] = i; +} +var decodeFromBase64 = function (base64) { + var bufferLength = base64.length * 0.75; + var len = base64.length; + var i; + var p = 0; + var encoded1; + var encoded2; + var encoded3; + var encoded4; + if (base64[base64.length - 1] === '=') { + bufferLength--; + if (base64[base64.length - 2] === '=') { + bufferLength--; + } + } + var bytes = new Uint8Array(bufferLength); + for (i = 0; i < len; i += 4) { + encoded1 = lookup[base64.charCodeAt(i)]; + encoded2 = lookup[base64.charCodeAt(i + 1)]; + encoded3 = lookup[base64.charCodeAt(i + 2)]; + encoded4 = lookup[base64.charCodeAt(i + 3)]; + bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); + bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); + bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); + } + return bytes; +}; +var arrayToString = function (array) { + var str = ''; + for (var i = 0; i < array.length; i++) { + str += String.fromCharCode(array[i]); + } + return str; +}; +var decompressJson = function (compressedJson) { + return arrayToString(pako__WEBPACK_IMPORTED_MODULE_0___default().inflate(decodeFromBase64(compressedJson))); +}; +var padStart = function (value, length, padChar) { + var padding = ''; + for (var idx = 0, len = length - value.length; idx < len; idx++) { + padding += padChar; + } + return padding + value; +}; + + +/***/ }), + +/***/ "./node_modules/@pdf-lib/upng/UPNG.js": +/*!********************************************!*\ + !*** ./node_modules/@pdf-lib/upng/UPNG.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pako */ "./node_modules/pako/index.js"); +/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(pako__WEBPACK_IMPORTED_MODULE_0__); + + +var UPNG = {}; + + + +UPNG.toRGBA8 = function(out) +{ + var w = out.width, h = out.height; + if(out.tabs.acTL==null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer]; + + var frms = []; + if(out.frames[0].data==null) out.frames[0].data = out.data; + + var len = w*h*4, img = new Uint8Array(len), empty = new Uint8Array(len), prev=new Uint8Array(len); + for(var i=0; i>3)]>>(7-((i&7)<<0)))& 1), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>2)]>>(6-((i&3)<<1)))& 3), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>1)]>>(4-((i&1)<<2)))&15), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>>3)]>>>(7 -((x&7) )))& 1), al=(gr==tr*255)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + else if(depth== 2) for(var x=0; x>>2)]>>>(6 -((x&3)<<1)))& 3), al=(gr==tr* 85)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + else if(depth== 4) for(var x=0; x>>1)]>>>(4 -((x&1)<<2)))&15), al=(gr==tr* 17)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + else if(depth== 8) for(var x=0; x>>2<<3);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7); +var D=(d>>>3)+4,q=N[D-4]|N[D-3]<<8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q<<3; +w+=q;continue}if(Z)W=H.H.W(W,w+(1<<17));if(m==1){v=b.J;C=b.h;X=(1<<9)-1;u=(1<<5)-1}if(m==2){J=A(N,d,5)+257; +h=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var E=d,j=1;for(var c=0;c<38;c+=2){b.Q[c]=0;b.Q[c+1]=0}for(var c=0; +cj)j=K}d+=3*Q;M(b.Q,j);I(b.Q,j,b.u);v=b.w;C=b.d; +d=l(b.u,(1<>>4;if(p>>>8==0){W[w++]=p}else if(p==256){break}else{var z=w+p-254; +if(p>264){var _=b.q[p-257];z=w+(_>>>3)+A(N,d,_&7);d+=_&7}var $=C[e(N,d)&u];d+=$&15;var s=$>>>4,Y=b.c[s],a=(Y>>>4)+n(N,d,Y&15); +d+=Y&15;while(w>>4; +if(b<=15){A[I]=b;I++}else{var Z=0,m=0;if(b==16){m=3+l(V,n,2);n+=2;Z=A[I-1]}else if(b==17){m=3+l(V,n,3); +n+=3}else if(b==18){m=11+l(V,n,7);n+=7}var J=I+m;while(I>>1; +while(An)n=M;A++}while(A>1,I=N[l+1],e=M<<4|I,b=W-I,Z=N[l]<>>15-W;R[J]=e;Z++}}};H.H.l=function(N,W){var R=H.H.m.r,V=15-W;for(var n=0;n>>V}};H.H.M=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8}; +H.H.I=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8;N[V+2]|=R>>>16};H.H.e=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8)>>>(W&7)&(1<>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)&(1<>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)}; +H.H.i=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16|N[(W>>>3)+3]<<24)>>>(W&7)};H.H.m=function(){var N=Uint16Array,W=Uint32Array; +return{K:new N(16),j:new N(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new N(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new W(32),J:new N(512),_:[],h:new N(32),$:[],w:new N(32768),C:[],v:[],d:new N(32768),D:[],u:new N(512),Q:[],r:new N(1<<15),s:new W(286),Y:new W(30),a:new W(19),t:new W(15e3),k:new N(1<<16),g:new N(1<<15)}}(); +(function(){var N=H.H.m,W=1<<15;for(var R=0;R>>1|(V&1431655765)<<1; +V=(V&3435973836)>>>2|(V&858993459)<<2;V=(V&4042322160)>>>4|(V&252645135)<<4;V=(V&4278255360)>>>8|(V&16711935)<<8; +N.r[R]=(V>>>16|V<<16)>>>17}function n(A,l,M){while(l--!=0)A.push(0,M)}for(var R=0;R<32;R++){N.q[R]=N.S[R]<<3|N.T[R]; +N.c[R]=N.p[R]<<4|N.z[R]}n(N._,144,8);n(N._,255-143,9);n(N._,279-255,7);n(N._,287-279,8);H.H.n(N._,9); +H.H.A(N._,9,N.J);H.H.l(N._,9);n(N.$,32,5);H.H.n(N.$,5);H.H.A(N.$,5,N.h);H.H.l(N.$,5);n(N.Q,19,0);n(N.C,286,0); +n(N.D,30,0);n(N.v,320,0)}());return H.H.N}() + + +UPNG.decode._readInterlace = function(data, out) +{ + var w = out.width, h = out.height; + var bpp = UPNG.decode._getBPP(out), cbpp = bpp>>3, bpl = Math.ceil(w*bpp/8); + var img = new Uint8Array( h * bpl ); + var di = 0; + + var starting_row = [ 0, 0, 4, 0, 2, 0, 1 ]; + var starting_col = [ 0, 4, 0, 2, 0, 1, 0 ]; + var row_increment = [ 8, 8, 8, 4, 4, 2, 2 ]; + var col_increment = [ 8, 8, 4, 4, 2, 2, 1 ]; + + var pass=0; + while(pass<7) + { + var ri = row_increment[pass], ci = col_increment[pass]; + var sw = 0, sh = 0; + var cr = starting_row[pass]; while(cr>3]; val = (val>>(7-(cdi&7)))&1; + img[row*bpl + (col>>3)] |= (val << (7-((col&7)<<0))); + } + if(bpp==2) { + var val = data[cdi>>3]; val = (val>>(6-(cdi&7)))&3; + img[row*bpl + (col>>2)] |= (val << (6-((col&3)<<1))); + } + if(bpp==4) { + var val = data[cdi>>3]; val = (val>>(4-(cdi&7)))&15; + img[row*bpl + (col>>1)] |= (val << (4-((col&1)<<2))); + } + if(bpp>=8) { + var ii = row*bpl+col*cbpp; + for(var j=0; j>3)+j]; + } + cdi+=bpp; col+=ci; + } + y++; row += ri; + } + if(sw*sh!=0) di += sh * (1 + bpll); + pass = pass + 1; + } + return img; +} + +UPNG.decode._getBPP = function(out) { + var noc = [1,null,3,1,2,null,4][out.ctype]; + return noc * out.depth; +} + +UPNG.decode._filterZero = function(data, out, off, w, h) +{ + var bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth; + bpp = Math.ceil(bpp/8); + + var i=0, di=1, type=data[off], x=0; + + if(type>1) data[off]=[0,0,1][type-2]; + if(type==3) for(x=bpp; x>>1) )&255; + + for(var y=0; y>>1)); + for(; x>>1) ); } + else { for(; x>8)&255; buff[p+1] = n&255; }, + readUint : function(buff,p) { return (buff[p]*(256*256*256)) + ((buff[p+1]<<16) | (buff[p+2]<< 8) | buff[p+3]); }, + writeUint : function(buff,p,n){ buff[p]=(n>>24)&255; buff[p+1]=(n>>16)&255; buff[p+2]=(n>>8)&255; buff[p+3]=n&255; }, + readASCII : function(buff,p,l){ var s = ""; for(var i=0; i=0 && yoff>=0) { si = (y*sw+x)<<2; ti = (( yoff+y)*tw+xoff+x)<<2; } + else { si = ((-yoff+y)*sw-xoff+x)<<2; ti = (y*tw+x)<<2; } + + if (mode==0) { tb[ti] = sb[si]; tb[ti+1] = sb[si+1]; tb[ti+2] = sb[si+2]; tb[ti+3] = sb[si+3]; } + else if(mode==1) { + var fa = sb[si+3]*(1/255), fr=sb[si]*fa, fg=sb[si+1]*fa, fb=sb[si+2]*fa; + var ba = tb[ti+3]*(1/255), br=tb[ti]*ba, bg=tb[ti+1]*ba, bb=tb[ti+2]*ba; + + var ifa=1-fa, oa = fa+ba*ifa, ioa = (oa==0?0:1/oa); + tb[ti+3] = 255*oa; + tb[ti+0] = (fr+br*ifa)*ioa; + tb[ti+1] = (fg+bg*ifa)*ioa; + tb[ti+2] = (fb+bb*ifa)*ioa; + } + else if(mode==2){ // copy only differences, otherwise zero + var fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; + var ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; + if(fa==ba && fr==br && fg==bg && fb==bb) { tb[ti]=0; tb[ti+1]=0; tb[ti+2]=0; tb[ti+3]=0; } + else { tb[ti]=fr; tb[ti+1]=fg; tb[ti+2]=fb; tb[ti+3]=fa; } + } + else if(mode==3){ // check if can be blended + var fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; + var ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; + if(fa==ba && fr==br && fg==bg && fb==bb) continue; + //if(fa!=255 && ba!=0) return false; + if(fa<220 && ba>20) return false; + } + } + return true; +} + + + + +UPNG.encode = function(bufs, w, h, ps, dels, tabs, forbidPlte) +{ + if(ps==null) ps=0; + if(forbidPlte==null) forbidPlte = false; + + var nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte]); + UPNG.encode.compressPNG(nimg, -1); + + return UPNG.encode._main(nimg, w, h, dels, tabs); +} + +UPNG.encodeLL = function(bufs, w, h, cc, ac, depth, dels, tabs) { + var nimg = { ctype: 0 + (cc==1 ? 0 : 2) + (ac==0 ? 0 : 4), depth: depth, frames: [] }; + + var time = Date.now(); + var bipp = (cc+ac)*depth, bipl = bipp * w; + for(var i=0; i1, pltAlpha = false; + + var leng = 8 + (16+5+4) /*+ (9+4)*/ + (anim ? 20 : 0); + if(tabs["sRGB"]!=null) leng += 8+1+4; + if(tabs["pHYs"]!=null) leng += 8+9+4; + if(nimg.ctype==3) { + var dl = nimg.plte.length; + for(var i=0; i>>24)!=255) pltAlpha = true; + leng += (8 + dl*3 + 4) + (pltAlpha ? (8 + dl*1 + 4) : 0); + } + for(var j=0; j>>8)&255, b=(c>>>16)&255; + data[offset+ti+0]=r; data[offset+ti+1]=g; data[offset+ti+2]=b; + } + offset+=dl*3; + wUi(data,offset,crc(data,offset-dl*3-4,dl*3+4)); offset+=4; // crc + + if(pltAlpha) { + wUi(data,offset, dl); offset+=4; + wAs(data,offset,"tRNS"); offset+=4; + for(var i=0; i>>24)&255; + offset+=dl; + wUi(data,offset,crc(data,offset-dl-4,dl+4)); offset+=4; // crc + } + } + + var fi = 0; + for(var j=0; j>2, bln>>2)); + for(var j=0; jnw && c==img32[i-nw]) ind[i]=ind[i-nw]; + else { + var cmc = cmap[c]; + if(cmc==null) { cmap[c]=cmc=plte.length; plte.push(c); if(plte.length>=300) break; } + ind[i]=cmc; + } + } + } + //console.log("make palette", Date.now()-time); time = Date.now(); + } + + var cc=plte.length; //console.log("colors:",cc); + if(cc<=256 && forbidPlte==false) { + if(cc<= 2) depth=1; else if(cc<= 4) depth=2; else if(cc<=16) depth=4; else depth=8; + depth = Math.max(depth, minBits); + } + + for(var j=0; j>1)] |= (inj[ii+x]<<(4-(x&1)*4)); + else if(depth==2) for(var x=0; x>2)] |= (inj[ii+x]<<(6-(x&3)*2)); + else if(depth==1) for(var x=0; x>3)] |= (inj[ii+x]<<(7-(x&7)*1)); + } + cimg=nimg; ctype=3; bpp=1; + } + else if(gotAlpha==false && frms.length==1) { // some next "reduced" frames may contain alpha for blending + var nimg = new Uint8Array(nw*nh*3), area=nw*nh; + for(var i=0; i palette indices", Date.now()-time); time = Date.now(); + + return {ctype:ctype, depth:depth, plte:plte, frames:frms }; +} +UPNG.encode.framize = function(bufs,w,h,alwaysBlend,evenCrd,forbidPrev) { + /* DISPOSE + - 0 : no change + - 1 : clear to transparent + - 2 : retstore to content before rendering (previous frame disposed) + BLEND + - 0 : replace + - 1 : blend + */ + var frms = []; + for(var j=0; jmax) max=x; + if(ymay) may=y; + } + } + if(max==-1) mix=miy=max=may=0; + if(evenCrd) { if((mix&1)==1)mix--; if((miy&1)==1)miy--; } + var sarea = (max-mix+1)*(may-miy+1); + if(sareamax) max=cx; + if(cymay) may=cy; + } + } + if(max==-1) mix=miy=max=may=0; + if(evenCrd) { if((mix&1)==1)mix--; if((miy&1)==1)miy--; } + r = {x:mix, y:miy, width:max-mix+1, height:may-miy+1}; + + var fr = frms[i]; fr.rect = r; fr.blend = 1; fr.img = new Uint8Array(r.width*r.height*4); + if(frms[i-1].dispose==0) { + UPNG._copyTile(pimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0); + UPNG.encode._prepareDiff(cimg,w,h,fr.img,r); + //UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 2); + } + else + UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0); +} +UPNG.encode._prepareDiff = function(cimg, w,h, nimg, rec) { + UPNG._copyTile(cimg,w,h, nimg,rec.width,rec.height, -rec.x,-rec.y, 2); + /* + var n32 = new Uint32Array(nimg.buffer); + var og = new Uint8Array(rec.width*rec.height*4), o32 = new Uint32Array(og.buffer); + UPNG._copyTile(cimg,w,h, og,rec.width,rec.height, -rec.x,-rec.y, 0); + for(var i=4; i>>2]==o32[(i>>>2)-1]) { + n32[i>>>2]=o32[i>>>2]; + //var j = i, c=p32[(i>>>2)-1]; + //while(p32[j>>>2]==c) { n32[j>>>2]=c; j+=4; } + } + } + for(var i=nimg.length-8; i>0; i-=4) { + if(nimg[i+7]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)+1]) { + n32[i>>>2]=o32[i>>>2]; + //var j = i, c=p32[(i>>>2)-1]; + //while(p32[j>>>2]==c) { n32[j>>>2]=c; j+=4; } + } + }*/ +} + +UPNG.encode._filterZero = function(img,h,bpp,bpl,data, filter, levelZero) +{ + var fls = [], ftry=[0,1,2,3,4]; + if (filter!=-1) ftry=[filter]; + else if(h*bpl>500000 || bpp==1) ftry=[0]; + var opts; if(levelZero) opts={level:0}; + + var CMPR = (levelZero && UZIP!=null) ? UZIP : (pako__WEBPACK_IMPORTED_MODULE_0___default()); + + for(var i=0; i>1) +256)&255; + if(type==4) for(var x=bpp; x>1))&255; + for(var x=bpp; x>1))&255; } + if(type==4) { for(var x= 0; x>> 1); + else c = c >>> 1; + } + tab[n] = c; } + return tab; })(), + update : function(c, buf, off, len) { + for (var i=0; i>> 8); + return c; + }, + crc : function(b,o,l) { return UPNG.crc.update(0xffffffff,b,o,l) ^ 0xffffffff; } +} + + +UPNG.quantize = function(abuf, ps) +{ + var oimg = new Uint8Array(abuf), nimg = oimg.slice(0), nimg32 = new Uint32Array(nimg.buffer); + + var KD = UPNG.quantize.getKDtree(nimg, ps); + var root = KD[0], leafs = KD[1]; + + var planeDst = UPNG.quantize.planeDst; + var sb = oimg, tb = nimg32, len=sb.length; + + var inds = new Uint8Array(oimg.length>>2); + for(var i=0; i>2] = nd.ind; + tb[i>>2] = nd.est.rgba; + } + return { abuf:nimg.buffer, inds:inds, plte:leafs }; +} + +UPNG.quantize.getKDtree = function(nimg, ps, err) { + if(err==null) err = 0.0001; + var nimg32 = new Uint32Array(nimg.buffer); + + var root = {i0:0, i1:nimg.length, bst:null, est:null, tdst:0, left:null, right:null }; // basic statistic, extra statistic + root.bst = UPNG.quantize.stats( nimg,root.i0, root.i1 ); root.est = UPNG.quantize.estats( root.bst ); + var leafs = [root]; + + while(leafs.length maxL) { maxL=leafs[i].est.L; mi=i; } + if(maxL=s0 || node.i1<=s0); + //console.log(maxL, leafs.length, mi); + if(s0wrong) { node.est.L=0; continue; } + + + var ln = {i0:node.i0, i1:s0, bst:null, est:null, tdst:0, left:null, right:null }; ln.bst = UPNG.quantize.stats( nimg, ln.i0, ln.i1 ); + ln.est = UPNG.quantize.estats( ln.bst ); + var rn = {i0:s0, i1:node.i1, bst:null, est:null, tdst:0, left:null, right:null }; rn.bst = {R:[], m:[], N:node.bst.N-ln.bst.N}; + for(var i=0; i<16; i++) rn.bst.R[i] = node.bst.R[i]-ln.bst.R[i]; + for(var i=0; i< 4; i++) rn.bst.m[i] = node.bst.m[i]-ln.bst.m[i]; + rn.est = UPNG.quantize.estats( rn.bst ); + + node.left = ln; node.right = rn; + leafs[mi]=ln; leafs.push(rn); + } + leafs.sort(function(a,b) { return b.bst.N-a.bst.N; }); + for(var i=0; i0) { node0=nd.right; node1=nd.left; } + + var ln = UPNG.quantize.getNearest(node0, r,g,b,a); + if(ln.tdst<=planeDst*planeDst) return ln; + var rn = UPNG.quantize.getNearest(node1, r,g,b,a); + return rn.tdst eMq) i1-=4; + if(i0>=i1) break; + + var t = nimg32[i0>>2]; nimg32[i0>>2] = nimg32[i1>>2]; nimg32[i1>>2]=t; + + i0+=4; i1-=4; + } + while(vecDot(nimg, i0, e)>eMq) i0-=4; + return i0+4; +} +UPNG.quantize.vecDot = function(nimg, i, e) +{ + return nimg[i]*e[0] + nimg[i+1]*e[1] + nimg[i+2]*e[2] + nimg[i+3]*e[3]; +} +UPNG.quantize.stats = function(nimg, i0, i1){ + var R = [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]; + var m = [0,0,0,0]; + var N = (i1-i0)>>2; + for(var i=i0; i>>0) }; +} +UPNG.M4 = { + multVec : function(m,v) { + return [ + m[ 0]*v[0] + m[ 1]*v[1] + m[ 2]*v[2] + m[ 3]*v[3], + m[ 4]*v[0] + m[ 5]*v[1] + m[ 6]*v[2] + m[ 7]*v[3], + m[ 8]*v[0] + m[ 9]*v[1] + m[10]*v[2] + m[11]*v[3], + m[12]*v[0] + m[13]*v[1] + m[14]*v[2] + m[15]*v[3] + ]; + }, + dot : function(x,y) { return x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3]; }, + sml : function(a,y) { return [a*y[0],a*y[1],a*y[2],a*y[3]]; } +} + +UPNG.encode.concatRGBA = function(bufs) { + var tlen = 0; + for(var i=0; i { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ hideOthers: () => (/* binding */ hideOthers), +/* harmony export */ inertOthers: () => (/* binding */ inertOthers), +/* harmony export */ supportsInert: () => (/* binding */ supportsInert), +/* harmony export */ suppressOthers: () => (/* binding */ suppressOthers) +/* harmony export */ }); +var getDefaultParent = function (originalTarget) { + if (typeof document === 'undefined') { + return null; + } + var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget; + return sampleTarget.ownerDocument.body; +}; +var counterMap = new WeakMap(); +var uncontrolledNodes = new WeakMap(); +var markerMap = {}; +var lockCount = 0; +var unwrapHost = function (node) { + return node && (node.host || unwrapHost(node.parentNode)); +}; +var correctTargets = function (parent, targets) { + return targets + .map(function (target) { + if (parent.contains(target)) { + return target; + } + var correctedTarget = unwrapHost(target); + if (correctedTarget && parent.contains(correctedTarget)) { + return correctedTarget; + } + console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing'); + return null; + }) + .filter(function (x) { return Boolean(x); }); +}; +/** + * Marks everything except given node(or nodes) as aria-hidden + * @param {Element | Element[]} originalTarget - elements to keep on the page + * @param [parentNode] - top element, defaults to document.body + * @param {String} [markerName] - a special attribute to mark every node + * @param {String} [controlAttribute] - html Attribute to control + * @return {Undo} undo command + */ +var applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) { + var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]); + if (!markerMap[markerName]) { + markerMap[markerName] = new WeakMap(); + } + var markerCounter = markerMap[markerName]; + var hiddenNodes = []; + var elementsToKeep = new Set(); + var elementsToStop = new Set(targets); + var keep = function (el) { + if (!el || elementsToKeep.has(el)) { + return; + } + elementsToKeep.add(el); + keep(el.parentNode); + }; + targets.forEach(keep); + var deep = function (parent) { + if (!parent || elementsToStop.has(parent)) { + return; + } + Array.prototype.forEach.call(parent.children, function (node) { + if (elementsToKeep.has(node)) { + deep(node); + } + else { + try { + var attr = node.getAttribute(controlAttribute); + var alreadyHidden = attr !== null && attr !== 'false'; + var counterValue = (counterMap.get(node) || 0) + 1; + var markerValue = (markerCounter.get(node) || 0) + 1; + counterMap.set(node, counterValue); + markerCounter.set(node, markerValue); + hiddenNodes.push(node); + if (counterValue === 1 && alreadyHidden) { + uncontrolledNodes.set(node, true); + } + if (markerValue === 1) { + node.setAttribute(markerName, 'true'); + } + if (!alreadyHidden) { + node.setAttribute(controlAttribute, 'true'); + } + } + catch (e) { + console.error('aria-hidden: cannot operate on ', node, e); + } + } + }); + }; + deep(parentNode); + elementsToKeep.clear(); + lockCount++; + return function () { + hiddenNodes.forEach(function (node) { + var counterValue = counterMap.get(node) - 1; + var markerValue = markerCounter.get(node) - 1; + counterMap.set(node, counterValue); + markerCounter.set(node, markerValue); + if (!counterValue) { + if (!uncontrolledNodes.has(node)) { + node.removeAttribute(controlAttribute); + } + uncontrolledNodes.delete(node); + } + if (!markerValue) { + node.removeAttribute(markerName); + } + }); + lockCount--; + if (!lockCount) { + // clear + counterMap = new WeakMap(); + counterMap = new WeakMap(); + uncontrolledNodes = new WeakMap(); + markerMap = {}; + } + }; +}; +/** + * Marks everything except given node(or nodes) as aria-hidden + * @param {Element | Element[]} originalTarget - elements to keep on the page + * @param [parentNode] - top element, defaults to document.body + * @param {String} [markerName] - a special attribute to mark every node + * @return {Undo} undo command + */ +var hideOthers = function (originalTarget, parentNode, markerName) { + if (markerName === void 0) { markerName = 'data-aria-hidden'; } + var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]); + var activeParentNode = parentNode || getDefaultParent(originalTarget); + if (!activeParentNode) { + return function () { return null; }; + } + // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10 + targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]'))); + return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden'); +}; +/** + * Marks everything except given node(or nodes) as inert + * @param {Element | Element[]} originalTarget - elements to keep on the page + * @param [parentNode] - top element, defaults to document.body + * @param {String} [markerName] - a special attribute to mark every node + * @return {Undo} undo command + */ +var inertOthers = function (originalTarget, parentNode, markerName) { + if (markerName === void 0) { markerName = 'data-inert-ed'; } + var activeParentNode = parentNode || getDefaultParent(originalTarget); + if (!activeParentNode) { + return function () { return null; }; + } + return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert'); +}; +/** + * @returns if current browser supports inert + */ +var supportsInert = function () { + return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert'); +}; +/** + * Automatic function to "suppress" DOM elements - _hide_ or _inert_ in the best possible way + * @param {Element | Element[]} originalTarget - elements to keep on the page + * @param [parentNode] - top element, defaults to document.body + * @param {String} [markerName] - a special attribute to mark every node + * @return {Undo} undo command + */ +var suppressOthers = function (originalTarget, parentNode, markerName) { + if (markerName === void 0) { markerName = 'data-suppressed'; } + return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName); +}; + + +/***/ }), + +/***/ "./src/components/Title.js": +/*!*********************************!*\ + !*** ./src/components/Title.js ***! + \*********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-helmet */ "./node_modules/react-helmet/es/Helmet.js"); + + +function Title(_ref) { + let { + title, + drive + } = _ref; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_helmet__WEBPACK_IMPORTED_MODULE_1__.Helmet, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("title", null, drive ? title : "".concat(title, " - OpenSign\u2122")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("meta", { + name: "description", + content: "".concat(title, " - OpenSign\u2122") + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("link", { + rel: "icon", + type: "image/png", + href: localStorage.getItem("fev_Icon"), + sizes: "40x40" + })); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Title); + +/***/ }), + +/***/ "./src/components/pdf/BorderResize.js": +/*!********************************************!*\ + !*** ./src/components/pdf/BorderResize.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + +function BorderResize(_ref) { + let { + right, + top + } = _ref; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "".concat(right ? "-right-[12px]" : "-right-[1px]", " ").concat(top ? "-bottom-[11px]" : "-bottom-[1px]", " absolute inline-block w-[14px] h-[14px] hover:cursor-sw-resize border-r-[3px] border-b-[3px] border-[#188ae2]") + }); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BorderResize); + +/***/ }), + +/***/ "./src/components/pdf/DefaultSignature.js": +/*!************************************************!*\ + !*** ./src/components/pdf/DefaultSignature.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + +function DefaultSignature(_ref) { + let { + defaultSignImg, + xyPostion, + setDefaultSignAlert + } = _ref; + const confirmToaddDefaultSign = () => { + if (xyPostion.length > 0) { + setDefaultSignAlert({ + isShow: true, + alertMessage: "Are you sure you want to auto sign at requested all locations?" + }); + } else { + setDefaultSignAlert({ + isShow: true, + alertMessage: "please select position!" + }); + } + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + "data-tut": "reactourThird" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "mx-2 pr-2 pt-2 pb-1 text-[15px] text-base-content font-semibold border-b-[1px] border-base-300" + }, "Signature"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-col items-center mt-[10px] font-semibold" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { + className: "text-base-content" + }, "Your Signature"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "op-card shadow-md h-[111px] w-[90%] p-2" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", { + alt: "signature", + className: "w-full h-full object-contain", + src: defaultSignImg + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-primary op-btn-sm mt-[10px]", + onClick: () => confirmToaddDefaultSign() + }, "Auto Sign All"))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DefaultSignature); + +/***/ }), + +/***/ "./src/components/pdf/PdfHeader.js": +/*!*****************************************!*\ + !*** ./src/components/pdf/PdfHeader.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _PrevNext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PrevNext */ "./src/components/pdf/PrevNext.js"); +/* harmony import */ var _constant_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constant/Utils */ "./src/constant/Utils.js"); +/* harmony import */ var _styles_signature_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../styles/signature.css */ "./src/styles/signature.css"); +/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ "./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs"); +/* harmony import */ var _primitives_ModalUi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../primitives/ModalUi */ "./src/primitives/ModalUi.js"); +/* harmony import */ var _primitives_Loader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../primitives/Loader */ "./src/primitives/Loader.js"); + + + + + + + +function Header(_ref) { + let { + isPdfRequestFiles, + isPlaceholder, + setIsDecline, + pageNumber, + allPages, + changePage, + pdfUrl, + embedWidgetsData, + pdfDetails, + signerPos, + signersdata, + isMailSend, + alertSendEmail, + isCompleted, + isShowHeader, + decline, + currentSigner, + alreadySign, + isSignYourself, + setIsEmail, + completeBtnTitle, + setIsEditTemplate, + isPublicTemplate + } = _ref; + const filterPrefill = signerPos && (signerPos === null || signerPos === void 0 ? void 0 : signerPos.filter(data => data.Role !== "prefill")); + const isMobile = window.innerWidth < 767; + const [isDownloading, setIsDownloading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const isGuestSigner = localStorage.getItem("isGuestSigner"); + + //function for show decline alert + const handleDeclinePdfAlert = async () => { + const currentDecline = { + currnt: "Sure", + isDeclined: true + }; + setIsDecline(currentDecline); + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex py-[5px]" + }, isMobile && isShowHeader ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + id: "navbar", + className: isGuestSigner ? "stickySignerHead" : "stickyHead", + style: { + width: isGuestSigner ? window.innerWidth : window.innerWidth - 30 + "px" + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-between items-center py-[5px] px-[10px] " + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + onClick: () => window.history.go(-2) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-arrow-left text-base-content", + "aria-hidden": "true" + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PrevNext__WEBPACK_IMPORTED_MODULE_1__["default"], { + pageNumber: pageNumber, + allPages: allPages, + changePage: changePage + }), pdfUrl && alreadySign ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Root, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Trigger, { + asChild: true + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "op-link op-link-primary no-underline text-[16px] font-semibold pr-[3px] pl-[5px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-ellipsis-v", + "aria-hidden": "true" + }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Portal, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Content, { + className: "DropdownMenuContent", + sideOffset: 5 + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Item, { + className: "DropdownMenuItem", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleDownloadPdf)(pdfDetails, pdfUrl, setIsDownloading) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-arrow-down mr-[3px]", + "aria-hidden": "true" + }), "Download")), isCompleted && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Item, { + className: "DropdownMenuItem", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleDownloadCertificate)(pdfDetails, setIsDownloading) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "border-none bg-[#fff]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-award mr-[3px]", + "aria-hidden": "true" + }), "Certificate")), isSignYourself && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Item, { + className: "DropdownMenuItem", + onClick: () => setIsEmail(true) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-envelope mr-[3px]", + "aria-hidden": "true" + }), "Mail")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Item, { + className: "DropdownMenuItem", + onClick: e => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleToPrint)(e, pdfUrl, setIsDownloading) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-print mr-[3px]", + "aria-hidden": "true" + }), "Print"))))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-around items-center" + }, currentSigner && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex items-center", + "data-tut": "reactourFifth" + }, decline && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + onClick: () => handleDeclinePdfAlert(), + className: "text-[red] border-none font-[650] text-[14px] mr-2" + }, "Decline"), isPlaceholder ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + onClick: () => { + if (!isMailSend) { + alertSendEmail(); + } + }, + className: "".concat(isMailSend ? "" : "op-link-primary", " op-link no-underline font-[650] text-[14px]"), + "data-tut": "headerArea" + }, completeBtnTitle ? completeBtnTitle : "Send") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + "data-tut": "reactourThird", + onClick: () => { + if (!pdfUrl) { + embedWidgetsData(); + } else if (isPdfRequestFiles) { + embedWidgetsData(); + } + }, + className: "border-none font-[650] text-[14px] op-link op-link-primary no-underline" + }, "Finish"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Root, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Trigger, { + asChild: true + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "font-[650] text-[18px] px-2 ml-[4px] text-base-content no-underline" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-ellipsis-v", + "aria-hidden": "true" + }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Portal, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Content, { + className: "bg-white shadow-md rounded-full px-3 py-2", + sideOffset: 5 + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_6__.Item, { + className: "flex flex-row justify-center items-center text-[13px] focus:outline-none cursor-pointer", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleDownloadPdf)(pdfDetails, pdfUrl, setIsDownloading) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-arrow-down mr-[3px]", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "font-[500]" + }, "Download"))))))))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-wrap justify-between items-center w-full gap-y-1 ml-1" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PrevNext__WEBPACK_IMPORTED_MODULE_1__["default"], { + pageNumber: pageNumber, + allPages: allPages, + changePage: changePage + }), isPlaceholder ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex mx-[100px] lg:mx-0 order-last lg:order-none" + }, !isMailSend && signersdata.length > 0 && signersdata.length !== filterPrefill.length && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, filterPrefill.length === 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "text-[13px] text-[#f5405e]" + }, "Add ", signersdata.length - filterPrefill.length, " ", "recipients signature") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "text-[13px] text-[#f5405e]" + }, "Add ", signersdata.length - filterPrefill.length, " more recipients signature"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex" + }, setIsEditTemplate && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => setIsEditTemplate(true), + className: "outline-none border-none text-center mr-[3px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-gear fa-lg" + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => window.history.go(-2), + type: "button", + className: "op-btn op-btn-ghost op-btn-sm mr-[3px]" + }, "Back"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + disabled: isMailSend && true, + "data-tut": "headerArea", + className: "op-btn op-btn-primary op-btn-sm mr-[3px]", + onClick: () => alertSendEmail() + }, completeBtnTitle ? completeBtnTitle : isMailSend ? "Sent" : "Send"))) : isPdfRequestFiles ? alreadySign ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: e => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleToPrint)(e, pdfUrl, setIsDownloading), + type: "button", + className: "op-btn op-btn-neutral op-btn-sm mr-[3px] shadow" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-print py-[3px]", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block" + }, "Print")), isCompleted && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleDownloadCertificate)(pdfDetails, setIsDownloading), + className: "op-btn op-btn-secondary op-btn-sm mr-[3px] shadow" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-award py-[3px]", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block" + }, "Certificate")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-primary op-btn-sm mr-[3px] shadow", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleDownloadPdf)(pdfDetails, pdfUrl, setIsDownloading) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-download py-[3px]", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block" + }, "Download"))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex", + "data-tut": "reactourFifth" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => window.history.go(-2), + type: "button", + className: "op-btn op-btn-ghost op-btn-sm mr-[3px]" + }, "Back"), currentSigner && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-secondary op-btn-sm mr-[3px] shadow", + onClick: () => handleDeclinePdfAlert() + }, "Decline"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-primary op-btn-sm mr-[3px] shadow", + onClick: () => embedWidgetsData() + }, "Finish"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-neutral op-btn-sm mr-[3px] shadow", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleDownloadPdf)(pdfDetails, pdfUrl, setIsDownloading) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-arrow-down font-semibold lg:hidden" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block" + }, "Download")))) : isCompleted ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row" + }, isCompleted && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleDownloadCertificate)(pdfDetails, setIsDownloading), + className: "op-btn op-btn-secondary op-btn-sm gap-0 font-medium text-[12px] mr-[3px] shadow" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-award", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block ml-1" + }, "Certificate")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: e => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleToPrint)(e, pdfUrl, setIsDownloading), + type: "button", + className: "op-btn op-btn-neutral op-btn-sm gap-0 font-medium text-[12px] mr-[3px] shadow" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-print", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block ml-1" + }, "Print")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-primary op-btn-sm gap-0 font-medium text-[12px] mr-[3px] shadow", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleDownloadPdf)(pdfDetails, pdfUrl, setIsDownloading) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-download", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block ml-1" + }, "Download")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-info op-btn-sm gap-0 font-medium text-[12px] mr-[3px] shadow", + onClick: () => setIsEmail(true) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-envelope", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block ml-1" + }, "Mail"))) : isPublicTemplate ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-primary op-btn-sm shadow", + onClick: () => { + embedWidgetsData(); + } + }, "Sign Now"))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => window.history.go(-2), + type: "button", + className: "op-btn op-btn-ghost op-btn-sm mr-[3px]" + }, "Back"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-primary op-btn-sm mr-[3px]", + onClick: () => { + if (!pdfUrl) { + embedWidgetsData(); + } + } + }, "Finish"))), isDownloading === "pdf" && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "fixed z-[200] inset-0 flex justify-center items-center bg-black bg-opacity-30" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_Loader__WEBPACK_IMPORTED_MODULE_5__["default"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_ModalUi__WEBPACK_IMPORTED_MODULE_4__["default"], { + isOpen: isDownloading === "certificate", + title: isDownloading === "certificate" ? "Generating certificate" : "PDF Download", + handleClose: () => setIsDownloading("") + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "p-3 md:p-5 text-[13px] md:text-base text-center text-base-content" + }, isDownloading === "certificate", " ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Your completion certificate is being generated. Please wait momentarily. If the download doesn't start shortly, click the button again.")))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Header); + +/***/ }), + +/***/ "./src/components/pdf/PdfZoom.js": +/*!***************************************!*\ + !*** ./src/components/pdf/PdfZoom.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + +function PdfZoom(props) { + const onClickZoomIn = () => { + props.setScale(props.scale + 0.1 * props.scale); + props.setZoomPercent(props.zoomPercent + 10); + }; + const onClickZoomOut = () => { + if (props.zoomPercent > 0) { + if (props.zoomPercent === 10) { + props.setScale(1); + } else { + props.setScale(props.scale - 0.1 * props.scale); + } + props.setZoomPercent(props.zoomPercent - 10); + } + }; + const handleReset = () => { + props.setScale(1); + props.setZoomPercent(0); + }; + return ( + /*#__PURE__*/ + // md:mt-[41px] xl:mt-[63px]mt=[] + react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden md:flex flex-col gap-1 text-center md:w-[5%] mt-[50px] 2xl:mt-[63px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "bg-gray-50 px-[4px] 2xl:px-[15px] 2xl:py-[10px] cursor-pointer", + onClick: onClickZoomIn, + title: "Zoom in" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-magnifying-glass-plus text-gray-500 2xl:text-[30px]" + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "bg-gray-50 px-[4px] 2xl:px-[15px] 2xl:py-[10px] cursor-pointer", + onClick: handleReset, + title: "Reset" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-magnifying-glass-arrows-rotate text-gray-500 2xl:text-[30px]" + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "bg-gray-50 px-[4px] 2xl:px-[15px] 2xl:py-[10px]", + onClick: onClickZoomOut, + style: { + cursor: props.zoomPercent > 0 ? "pointer" : "default" + }, + title: "Zoom out" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-magnifying-glass-minus text-gray-500 2xl:text-[30px]" + }))) + ); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PdfZoom); + +/***/ }), + +/***/ "./src/components/pdf/Placeholder.js": +/*!*******************************************!*\ + !*** ./src/components/pdf/Placeholder.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _BorderResize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BorderResize */ "./src/components/pdf/BorderResize.js"); +/* harmony import */ var _PlaceholderBorder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PlaceholderBorder */ "./src/components/pdf/PlaceholderBorder.js"); +/* harmony import */ var react_rnd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-rnd */ "./node_modules/react-rnd/lib/index.js"); +/* harmony import */ var _constant_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../constant/Utils */ "./src/constant/Utils.js"); +/* harmony import */ var _PlaceholderType__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./PlaceholderType */ "./src/components/pdf/PlaceholderType.js"); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js"); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _styles_opensigndrive_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../styles/opensigndrive.css */ "./src/styles/opensigndrive.css"); + + + + + + + + +const selectFormat = data => { + switch (data) { + case "L": + return "MM/dd/yyyy"; + case "DD-MM-YYYY": + return "dd-MM-yyyy"; + case "DD/MM/YYYY": + return "dd/MM/yyyy"; + case "LL": + return "MMMM dd, yyyy"; + case "DD MMM, YYYY": + return "dd MMM, yyyy"; + case "YYYY-MM-DD": + return "yyyy-MM-dd"; + case "MM-DD-YYYY": + return "MM-dd-yyyy"; + case "MM.DD.YYYY": + return "MM.dd.yyyy"; + case "MMM DD, YYYY": + return "MMM dd, yyyy"; + case "DD MMMM, YYYY": + return "dd MMMM, yyyy"; + default: + return "MM/dd/yyyy"; + } +}; +const changeDateToMomentFormat = format => { + switch (format) { + case "MM/dd/yyyy": + return "L"; + case "dd-MM-yyyy": + return "DD-MM-YYYY"; + case "dd/MM/yyyy": + return "DD/MM/YYYY"; + case "MMMM dd, yyyy": + return "LL"; + case "dd MMM, yyyy": + return "DD MMM, YYYY"; + case "yyyy-MM-dd": + return "YYYY-MM-DD"; + case "MM-dd-yyyy": + return "MM-DD-YYYY"; + case "MM.dd.yyyy": + return "MM.DD.YYYY"; + case "MMM dd, yyyy": + return "MMM DD, YYYY"; + case "dd MMMM, yyyy": + return "DD MMMM, YYYY"; + default: + return "L"; + } +}; + +//function to get default date +const getDefaultdate = function (selectedDate) { + let format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "dd-MM-yyyy"; + let date; + if (format && format === "dd-MM-yyyy") { + const newdate = selectedDate ? selectedDate : moment__WEBPACK_IMPORTED_MODULE_6___default()(new Date()).format(changeDateToMomentFormat(format)); + const [day, month, year] = newdate.split("-"); + date = new Date("".concat(year, "-").concat(month, "-").concat(day)); + } else { + date = new Date(selectedDate); + } + const value = date; + return value; +}; +//function to get default format +const getDefaultFormat = dateFormat => dateFormat || "MM/dd/yyyy"; +function Placeholder(props) { + var _props$pos, _props$pos2, _props$pos3, _props$pos4, _props$pos5, _props$pos6, _props$data14, _props$pos13, _props$data16; + const [placeholderBorder, setPlaceholderBorder] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + w: 0, + h: 0 + }); + const [isDraggingEnabled, setDraggingEnabled] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true); + const [isShowDateFormat, setIsShowDateFormat] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [containerScale, setContainerScale] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [selectDate, setSelectDate] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + date: props.pos.type === "date" ? moment__WEBPACK_IMPORTED_MODULE_6___default()(getDefaultdate(props === null || props === void 0 || (_props$pos = props.pos) === null || _props$pos === void 0 || (_props$pos = _props$pos.options) === null || _props$pos === void 0 ? void 0 : _props$pos.response, (_props$pos2 = props.pos) === null || _props$pos2 === void 0 || (_props$pos2 = _props$pos2.options) === null || _props$pos2 === void 0 || (_props$pos2 = _props$pos2.validation) === null || _props$pos2 === void 0 ? void 0 : _props$pos2.format).getTime()).format(changeDateToMomentFormat((_props$pos3 = props.pos) === null || _props$pos3 === void 0 || (_props$pos3 = _props$pos3.options) === null || _props$pos3 === void 0 || (_props$pos3 = _props$pos3.validation) === null || _props$pos3 === void 0 ? void 0 : _props$pos3.format)) : "", + format: props.pos.type === "date" ? getDefaultFormat((_props$pos4 = props.pos) === null || _props$pos4 === void 0 || (_props$pos4 = _props$pos4.options) === null || _props$pos4 === void 0 || (_props$pos4 = _props$pos4.validation) === null || _props$pos4 === void 0 ? void 0 : _props$pos4.format) : "" + }); + const [dateFormat, setDateFormat] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); + const [startDate, setStartDate] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(props.pos.type === "date" && getDefaultdate(props === null || props === void 0 || (_props$pos5 = props.pos) === null || _props$pos5 === void 0 || (_props$pos5 = _props$pos5.options) === null || _props$pos5 === void 0 ? void 0 : _props$pos5.response, (_props$pos6 = props.pos) === null || _props$pos6 === void 0 || (_props$pos6 = _props$pos6.options) === null || _props$pos6 === void 0 || (_props$pos6 = _props$pos6.validation) === null || _props$pos6 === void 0 ? void 0 : _props$pos6.format)); + const [getCheckboxRenderWidth, setGetCheckboxRenderWidth] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + width: null, + height: null + }); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + const getPdfPageWidth = props.pdfOriginalWH.find(data => data.pageNumber === props.pageNumber); + setContainerScale(props.containerWH.width / getPdfPageWidth.width); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [props.containerWH.width, props.pdfOriginalWH]); + const dateFormatArr = ["L", "DD-MM-YYYY", "YYYY-MM-DD", "MM.DD.YYYY", "MM-DD-YYYY", "MMM DD, YYYY", "LL", "DD MMM, YYYY", "DD MMMM, YYYY"]; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + const updateWidth = () => { + const rndElement = document.getElementById(props.pos.key); + if (rndElement) { + const { + width, + height + } = rndElement.getBoundingClientRect(); + setGetCheckboxRenderWidth({ + width: width, + height: height + }); + } + }; + + // Delay to ensure rendering is complete + const timer = setTimeout(updateWidth, 0); + return () => clearTimeout(timer); + }, [props.pos]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + const closeMenuOnOutsideClick = e => { + if (!isDraggingEnabled && !e.target.closest("#changeIsDragging")) { + setDraggingEnabled(true); + } + }; + document.addEventListener("click", closeMenuOnOutsideClick); + return () => { + // Cleanup the event listener when the component unmounts + document.removeEventListener("click", closeMenuOnOutsideClick); + }; + }, [isDraggingEnabled]); + //function change format array list with selected date and format + const changeDateFormat = () => { + const updateDate = []; + dateFormatArr.map(data => { + let date; + if (selectDate && selectDate.format === "dd-MM-yyyy") { + const [day, month, year] = selectDate.date.split("-"); + date = new Date("".concat(year, "-").concat(month, "-").concat(day)); + } else { + date = new Date(selectDate === null || selectDate === void 0 ? void 0 : selectDate.date); + } + const milliseconds = date.getTime(); + const newDate = moment__WEBPACK_IMPORTED_MODULE_6___default()(milliseconds).format(data); + const dateObj = { + date: newDate, + format: selectFormat(data) + }; + updateDate.push(dateObj); + }); + setDateFormat(updateDate); + }; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + if (props.isPlaceholder || props.isSignYourself) { + selectDate && changeDateFormat(); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [selectDate]); + + //it detect outside click of date dropdown menu + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + const closeMenuOnOutsideClick = e => { + if (isShowDateFormat && !e.target.closest("#menu-container")) { + setIsShowDateFormat(!isShowDateFormat); + } + }; + document.addEventListener("click", closeMenuOnOutsideClick); + return () => { + // Cleanup the event listener when the component unmounts + document.removeEventListener("click", closeMenuOnOutsideClick); + }; + }, [isShowDateFormat]); + + //`handleWidgetIdandPopup` is used to set current widget id and open relative popup + const handleWidgetIdandPopup = () => { + if (props.setSelectWidgetId) { + props.setSelectWidgetId(props.pos.key); + } + const widgetTypeExist = [_constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textInputWidget, "checkbox", "name", "company", "job title", "date", "email", _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget].includes(props.pos.type); + if (widgetTypeExist) { + setDraggingEnabled(false); + } + if ((props.isNeedSign || props.isSignYourself) && !props.isDragging) { + if (props !== null && props !== void 0 && props.ispublicTemplate) { + props.handleUserDetails(); + } else { + if (props.pos.type) { + if (props.pos.type === "signature" || props.pos.type === "stamp" || props.pos.type === "image") { + props.setIsSignPad(true); + props.setSignKey(props.pos.key); + props.setIsStamp(props.pos.isStamp); + } else if (props.pos.type === "initials") { + props.setIsSignPad(true); + props.setSignKey(props.pos.key); + props.setIsStamp(props.pos.isStamp); + props.setIsInitial(true); + } + } else { + var _props$pos7; + props.setIsSignPad(true); + props.setSignKey(props.pos.key); + props.setIsStamp((_props$pos7 = props.pos) !== null && _props$pos7 !== void 0 && _props$pos7.isStamp ? props.pos.isStamp : false); + } + } + } else if (props.isPlaceholder && !props.isDragging && props.pos.type !== _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget) { + if (props.pos.key === props.selectWidgetId) { + props.handleLinkUser(props.data.Id); + props.setUniqueId(props.data.Id); + const checkIndex = props.xyPostion.findIndex(data => data.Id === props.data.Id); + props.setIsSelectId(checkIndex || 0); + } + } else if (!props.pos.type) { + if (!props.pos.type && props.isNeedSign && props.data.signerObjId === props.signerObjId) { + props.setIsSignPad(true); + props.setSignKey(props.pos.key); + props.setIsStamp(props.pos.isStamp); + } else if (props.isNeedSign && props.pos.type === "signature" || props.pos.type === "stamp") { + props.setIsSignPad(true); + props.setSignKey(props.pos.key); + props.setIsStamp(props.pos.isStamp); + } else if (props.isNeedSign && props.pos.type === "dropdown") { + props.setSignKey(props.pos.key); + } + } + }; + const handleOnClickPlaceholder = () => { + var _props$data, _props$data2; + props.setCurrWidgetsDetails && props.setCurrWidgetsDetails(props.pos); + if (!props.isNeedSign) { + props.setWidgetType(props.pos.type); + } + if (props.isNeedSign && ((_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.signerObjId) === props.signerObjId) { + handleWidgetIdandPopup(); + } else if (props !== null && props !== void 0 && props.isNeedSign && props !== null && props !== void 0 && props.uniqueId && ((_props$data2 = props.data) === null || _props$data2 === void 0 ? void 0 : _props$data2.Id) === (props === null || props === void 0 ? void 0 : props.uniqueId)) { + handleWidgetIdandPopup(); + } else if (props.isPlaceholder || props.isSignYourself) { + handleWidgetIdandPopup(); + } + }; + //`handleOnClickSettingIcon` is used set current widget details and open setting of it + const handleOnClickSettingIcon = () => { + var _props$pos8; + if (props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget) { + props.setIsRadio(true); + } else if (props.pos.type === "dropdown") { + props === null || props === void 0 || props.setShowDropdown(true); + } else if (props.pos.type === "checkbox") { + props === null || props === void 0 || props.setIsCheckbox(true); + } else if ([_constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textInputWidget, _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget, "name", "company", "job title", "email"].includes(props.pos.type)) { + props.handleTextSettingModal(true); + } else { + (props === null || props === void 0 ? void 0 : props.handleNameModal) && (props === null || props === void 0 ? void 0 : props.handleNameModal(true)); + } + if (props.data && (props === null || props === void 0 || (_props$pos8 = props.pos) === null || _props$pos8 === void 0 ? void 0 : _props$pos8.type) !== _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget) { + var _props$data3, _props$data4; + props.setSignerObjId(props === null || props === void 0 || (_props$data3 = props.data) === null || _props$data3 === void 0 ? void 0 : _props$data3.signerObjId); + props.setUniqueId(props === null || props === void 0 || (_props$data4 = props.data) === null || _props$data4 === void 0 ? void 0 : _props$data4.Id); + const checkIndex = props.xyPostion.findIndex(data => data.Id === props.data.Id); + props.setIsSelectId(checkIndex || 0); + } else if (props.data && props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget) { + var _props$data5; + props.setTempSignerId(props.uniqueId); + props.setUniqueId(props === null || props === void 0 || (_props$data5 = props.data) === null || _props$data5 === void 0 ? void 0 : _props$data5.Id); + const checkIndex = props.xyPostion.findIndex(data => data.Id === props.data.Id); + props.setIsSelectId(checkIndex || 0); + } + props.setSignKey(props.pos.key); + props.setWidgetType(props.pos.type); + props.setCurrWidgetsDetails(props.pos); + }; + //function to set required state value onclick on widget's copy icon + const handleCopyPlaceholder = e => { + var _props$pos9; + e.stopPropagation(); + //condition to handle text widget signer obj id and unique id + //when user click on copy icon of text widget in that condition text widget does not have any signerObjId + //in that case i have to save in tempSignerId as a unique id of previous select signer's unique id + //and on save or cancel button of copy all page popup i have set this temp signer Id in unique id + + if (props.data && (props === null || props === void 0 || (_props$pos9 = props.pos) === null || _props$pos9 === void 0 ? void 0 : _props$pos9.type) !== _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget) { + var _props$data6, _props$data7; + props.setSignerObjId(props === null || props === void 0 || (_props$data6 = props.data) === null || _props$data6 === void 0 ? void 0 : _props$data6.signerObjId); + props.setUniqueId(props === null || props === void 0 || (_props$data7 = props.data) === null || _props$data7 === void 0 ? void 0 : _props$data7.Id); + const checkIndex = props.xyPostion.findIndex(data => data.Id === props.data.Id); + props.setIsSelectId(checkIndex || 0); + } else if (props.data && props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget) { + var _props$data8, _props$data9; + props.setTempSignerId(props.uniqueId); + props.setSignerObjId(props === null || props === void 0 || (_props$data8 = props.data) === null || _props$data8 === void 0 ? void 0 : _props$data8.signerObjId); + props.setUniqueId(props === null || props === void 0 || (_props$data9 = props.data) === null || _props$data9 === void 0 ? void 0 : _props$data9.Id); + const checkIndex = props.xyPostion.findIndex(data => data.Id === props.data.Id); + props.setIsSelectId(checkIndex || 0); + } + + //checking widget's type and open widget copy modal for required widgets + if (["signature", _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget, "stamp", "initial"].includes(props.pos.type)) { + props.setIsPageCopy(true); + props.setSignKey(props.pos.key); + } else { + var _props$data10; + //function to create new widget next to just widget + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_4__.handleCopyNextToWidget)(props.pos, props.pos.type, props.xyPostion, props.index, props.setXyPostion, props.data && ((_props$data10 = props.data) === null || _props$data10 === void 0 ? void 0 : _props$data10.Id)); + } + }; + + //function to save date and format on local array onchange date and onclick format + const handleSaveDate = (data, isDateChange) => { + let updateDate = data.date; + //check if date change by user + if (isDateChange) { + //`changeDateToMomentFormat` is used to convert date as per required to moment package + updateDate = moment__WEBPACK_IMPORTED_MODULE_6___default()(data.date).format(changeDateToMomentFormat(data.format)); + } + //using moment package is used to change date as per the format provided in selectDate obj e.g. - MM/dd/yyyy -> 03/12/2024 + //`getDefaultdate` is used to convert update date in new Date() format + const date = moment__WEBPACK_IMPORTED_MODULE_6___default()(getDefaultdate(updateDate, data === null || data === void 0 ? void 0 : data.format).getTime()).format(changeDateToMomentFormat(data === null || data === void 0 ? void 0 : data.format)); + + //`onChangeInput` is used to save data related to date in a placeholder field + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_4__.onChangeInput)(date, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && props.data.Id, false, data === null || data === void 0 ? void 0 : data.format); + setSelectDate({ + date: date, + format: data === null || data === void 0 ? void 0 : data.format + }); + }; + const PlaceholderIcon = () => { + var _props$pos10, _props$pos11, _props$pos12; + return props.isShowBorder && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, (props.isPlaceholder || props.isSignYourself) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, ["checkbox", _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textInputWidget, _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget, "name", "company", "job title", "email"].includes(props.pos.type) && props.isSignYourself ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + onClick: e => { + e.stopPropagation(); + handleOnClickSettingIcon(); + }, + onTouchEnd: e => { + e.stopPropagation(); + handleOnClickSettingIcon(); + }, + className: "fa-light fa-gear icon", + style: { + color: "#188ae2", + right: "29px", + top: "-19px" + } + }) : (!(props !== null && props !== void 0 && (_props$pos10 = props.pos) !== null && _props$pos10 !== void 0 && _props$pos10.type) && props.pos.isStamp || (props === null || props === void 0 || (_props$pos11 = props.pos) === null || _props$pos11 === void 0 ? void 0 : _props$pos11.type) && !["date", "signature"].includes(props.pos.type) && !props.isSignYourself) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + onClick: e => { + e.stopPropagation(); + handleOnClickSettingIcon(); + }, + onTouchEnd: e => { + e.stopPropagation(); + handleOnClickSettingIcon(); + }, + className: "fa-light fa-gear icon", + style: { + color: "#188ae2", + right: (props === null || props === void 0 || (_props$pos12 = props.pos) === null || _props$pos12 === void 0 ? void 0 : _props$pos12.type) === _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget ? "32px" : "47px", + top: "-19px" + } + }), props.pos.type !== _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget && !props.isSignYourself && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + "data-tut": "assignSigner", + className: "fa-light fa-user icon", + onClick: e => { + e.stopPropagation(); + props.handleLinkUser(props.data.Id); + props.setUniqueId(props.data.Id); + const checkIndex = props.xyPostion.findIndex(data => data.Id === props.data.Id); + props.setIsSelectId(checkIndex || 0); + }, + onTouchEnd: e => { + e.stopPropagation(); + props.handleLinkUser(props.data.Id); + props.setUniqueId(props.data.Id); + const checkIndex = props.xyPostion.findIndex(data => data.Id === props.data.Id); + props.setIsSelectId(checkIndex || 0); + }, + style: { + color: "#188ae2", + right: "32px", + top: "-18px" + } + })), props.pos.type === "date" && selectDate && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + id: "menu-container", + style: { + zIndex: "99", + top: "-19px", + right: props.isPlaceholder ? "60px" : "44px" + }, + className: "".concat(isShowDateFormat ? "show" : "", " dropdown icon"), + onClick: e => { + setIsShowDateFormat(!isShowDateFormat); + e.stopPropagation(); + if (props.data) { + props.setSignKey(props.pos.key); + props.setUniqueId(props.data.Id); + const checkIndex = props.xyPostion.findIndex(data => data.Id === props.data.Id); + props.setIsSelectId(checkIndex || 0); + } + }, + onTouchEnd: e => { + e.stopPropagation(); + setIsShowDateFormat(!isShowDateFormat); + if (props.data) { + props.setSignKey(props.pos.key); + props.setUniqueId(props.data.Id); + const checkIndex = props.xyPostion.findIndex(data => data.Id === props.data.Id); + props.setIsSelectId(checkIndex || 0); + } + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-gear icon", + style: { + color: "#188ae2", + fontSize: "14px" + } + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: isShowDateFormat ? "dropdown-menu show" : "dropdown-menu", + "aria-labelledby": "dropdownMenuButton", + "aria-expanded": isShowDateFormat ? "true" : "false" + }, dateFormat.map((data, ind) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + key: ind, + onTouchEnd: e => { + e.stopPropagation(); + setIsShowDateFormat(!isShowDateFormat); + setSelectDate(data); + handleSaveDate(data); + }, + onClick: () => { + setIsShowDateFormat(!isShowDateFormat); + setSelectDate(data); + handleSaveDate(data); + }, + className: "dropdown-item text-[13px]" + }, data !== null && data !== void 0 && data.date ? data === null || data === void 0 ? void 0 : data.date : "nodata"); + }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-copy icon", + onClick: e => handleCopyPlaceholder(e), + onTouchEnd: e => handleCopyPlaceholder(e), + style: { + color: "#188ae2", + right: "12px", + top: "-18px" + } + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-circle-xmark icon", + onClick: e => { + e.stopPropagation(); + if (props.data) { + props.handleDeleteSign(props.pos.key, props.data.Id); + } else { + props.handleDeleteSign(props.pos.key); + props.setIsStamp(false); + } + }, + onTouchEnd: e => { + e.stopPropagation(); + if (props.data) { + var _props$data11; + props.handleDeleteSign(props.pos.key, (_props$data11 = props.data) === null || _props$data11 === void 0 ? void 0 : _props$data11.Id); + } else { + props.handleDeleteSign(props.pos.key); + props.setIsStamp(false); + } + }, + style: { + color: "#188ae2", + right: "-8px", + top: "-18px" + } + })); + }; + const xPos = (pos, signYourself) => { + const getPdfPageWidth = props.pdfOriginalWH.find(data => data.pageNumber === props.pageNumber); + const containerScale = props.containerWH.width / (getPdfPageWidth === null || getPdfPageWidth === void 0 ? void 0 : getPdfPageWidth.width); + const resizePos = pos.xPosition; + if (signYourself) { + return resizePos * containerScale * props.scale; + } else { + //checking both condition mobile and desktop view + if (pos.isMobile && pos.scale) { + if (props.scale > 1) { + return resizePos * pos.scale * containerScale * props.scale; + } else { + return resizePos * pos.scale * containerScale; + } + } else { + // if (pos.scale === containerScale) { + // return resizePos * pos.scale * props.scale; + // } else { + return resizePos * containerScale * props.scale; + // } + } + } + }; + const yPos = (pos, signYourself) => { + const getPdfPageWidth = props.pdfOriginalWH.find(data => data.pageNumber === props.pageNumber); + const containerScale = props.containerWH.width / getPdfPageWidth.width; + const resizePos = pos.yPosition; + if (signYourself) { + return resizePos * containerScale * props.scale; + } else { + //checking both condition mobile and desktop view + if (pos.isMobile && pos.scale) { + if (props.scale > 1) { + return resizePos * pos.scale * containerScale * props.scale; + } else { + return resizePos * pos.scale * containerScale; + } + } + // else if (pos.scale === containerScale) { + // if (props.scale > 1) { + // return resizePos * pos.scale * props.scale; + // } else { + // return resizePos * pos.scale; + // } + // } + else { + return resizePos * containerScale * props.scale; + } + } + }; + const getCursor = () => { + if (props.data && props.isNeedSign) { + var _props$data12, _props$data13; + if (props !== null && props !== void 0 && props.signerObjId && ((_props$data12 = props.data) === null || _props$data12 === void 0 ? void 0 : _props$data12.signerObjId) === props.signerObjId) { + return "pointer"; + } else if (props !== null && props !== void 0 && props.uniqueId && ((_props$data13 = props.data) === null || _props$data13 === void 0 ? void 0 : _props$data13.Id) === props.uniqueId) { + return "pointer"; + } else { + return "not-allowed"; + } + } else { + return "all-scroll"; + } + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_rnd__WEBPACK_IMPORTED_MODULE_3__.Rnd, { + id: props.pos.key, + "data-tut": props.pos.key === props.unSignedWidgetId ? "IsSigned" : "", + key: props.pos.key, + lockAspectRatio: + // props.pos.type !== textWidget + ![_constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget, "email", "name", "company", "job title", _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textInputWidget].includes(props.pos.type) && (props.pos.Width ? props.pos.Width / props.pos.Height : (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_4__.defaultWidthHeight)(props.pos.type).width / (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_4__.defaultWidthHeight)(props.pos.type).height), + enableResizing: { + top: false, + right: false, + bottom: false, + left: false, + topRight: false, + bottomRight: props.data && props.isNeedSign ? ((_props$data14 = props.data) === null || _props$data14 === void 0 ? void 0 : _props$data14.signerObjId) === props.signerObjId && props.pos.type !== "checkbox" && props.pos.type !== _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget ? true : false : props.pos.type !== _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget && props.pos.type !== "checkbox" && props.pos.key === props.selectWidgetId && true, + bottomLeft: false, + topLeft: false + }, + bounds: "parent", + className: "signYourselfBlock", + style: { + border: "1px solid #007bff", + borderRadius: "2px", + textAlign: props.pos.type !== "name" && props.pos.type !== "company" && props.pos.type !== "job title" && "center", + cursor: getCursor(), + zIndex: props.pos.type === "date" ? props.pos.key === props.selectWidgetId ? 99 + 1 : 99 : props !== null && props !== void 0 && (_props$pos13 = props.pos) !== null && _props$pos13 !== void 0 && _props$pos13.zIndex ? props.pos.zIndex : "5", + background: props.data ? props.data.blockColor : "rgb(203 233 237)" + }, + onDrag: () => { + setDraggingEnabled(true); + props.handleTabDrag && props.handleTabDrag(props.pos.key); + }, + size: { + width: props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget || props.pos.type === "checkbox" ? "auto" : props.posWidth(props.pos, props.isSignYourself), + height: props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget || props.pos.type === "checkbox" ? "auto" : props.posHeight(props.pos, props.isSignYourself) + }, + onResizeStart: () => { + setDraggingEnabled(true); + props.setIsResize && props.setIsResize(true); + }, + onResizeStop: (e, direction, ref) => { + props.setIsResize && props.setIsResize(false); + props.handleSignYourselfImageResize && props.handleSignYourselfImageResize(ref, props.pos.key, props.xyPostion, props.setXyPostion, props.index, containerScale, props.scale, props.data && props.data.Id, props.isResize); + }, + disableDragging: props.isNeedSign ? true : props.isPlaceholder && ![_constant_Utils__WEBPACK_IMPORTED_MODULE_4__.textWidget].includes(props.pos.type) ? false : !isDraggingEnabled, + onDragStop: (event, dragElement) => { + var _props$data15, _props$pos14; + return props.handleStop && props.handleStop(event, dragElement, (_props$data15 = props.data) === null || _props$data15 === void 0 ? void 0 : _props$data15.Id, (_props$pos14 = props.pos) === null || _props$pos14 === void 0 ? void 0 : _props$pos14.key); + }, + position: { + x: xPos(props.pos, props.isSignYourself), + y: yPos(props.pos, props.isSignYourself) + }, + onResize: (e, direction, ref) => { + setPlaceholderBorder({ + w: ref.offsetWidth / (props.scale * containerScale), + h: ref.offsetHeight / (props.scale * containerScale) + }); + }, + onClick: () => handleOnClickPlaceholder() + }, props.isShowBorder && props.pos.type !== _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget && props.pos.type !== "checkbox" && props.pos.key === props.selectWidgetId ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_BorderResize__WEBPACK_IMPORTED_MODULE_1__["default"], { + right: -12, + top: -11 + }) : props.data && props.isNeedSign && props.pos.type !== "checkbox" ? ((_props$data16 = props.data) === null || _props$data16 === void 0 ? void 0 : _props$data16.signerObjId) === props.signerObjId && props.pos.type !== _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget && props.pos.type !== "checkbox" ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_BorderResize__WEBPACK_IMPORTED_MODULE_1__["default"], null) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null) : props.pos.type !== _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget && props.pos.type !== "checkbox" && props.pos.key === props.selectWidgetId && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_BorderResize__WEBPACK_IMPORTED_MODULE_1__["default"], null), props.isShowBorder && props.pos.key === props.selectWidgetId && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PlaceholderBorder__WEBPACK_IMPORTED_MODULE_2__["default"], { + setDraggingEnabled: setDraggingEnabled, + pos: props.pos, + isPlaceholder: props.isPlaceholder, + getCheckboxRenderWidth: getCheckboxRenderWidth, + scale: props.scale, + containerScale: containerScale, + placeholderBorder: placeholderBorder + }), _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.isTabAndMobile ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + // className="sm:inline-block md:inline-block lg:hidden " + className: "flex items-stretch", + style: { + left: xPos(props.pos, props.isSignYourself), + top: yPos(props.pos, props.isSignYourself), + width: props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget || props.pos.type === "checkbox" ? "auto" : props.posWidth(props.pos, props.isSignYourself), + height: props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_4__.radioButtonWidget || props.pos.type === "checkbox" ? "auto" : props.posHeight(props.pos, props.isSignYourself), + zIndex: "10" + }, + onTouchEnd: () => handleOnClickPlaceholder(), + onClick: () => handleOnClickPlaceholder() + }, props.pos.key === props.selectWidgetId && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PlaceholderIcon, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PlaceholderType__WEBPACK_IMPORTED_MODULE_5__["default"], { + pos: props.pos, + xyPostion: props.xyPostion, + index: props.index, + setXyPostion: props.setXyPostion, + data: props.data, + setSignKey: props.setSignKey, + isShowDropdown: props === null || props === void 0 ? void 0 : props.isShowDropdown, + isPlaceholder: props.isPlaceholder, + isSignYourself: props.isSignYourself, + signerObjId: props.signerObjId, + handleUserName: props.handleUserName, + setDraggingEnabled: setDraggingEnabled, + pdfDetails: (props === null || props === void 0 ? void 0 : props.pdfDetails) && (props === null || props === void 0 ? void 0 : props.pdfDetails[0]), + isNeedSign: props.isNeedSign, + setSelectDate: setSelectDate, + selectDate: selectDate, + setValidateAlert: props.setValidateAlert, + setStartDate: setStartDate, + startDate: startDate, + handleSaveDate: handleSaveDate, + xPos: props.xPos + })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, props.pos.key === props.selectWidgetId && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PlaceholderIcon, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PlaceholderType__WEBPACK_IMPORTED_MODULE_5__["default"], { + pos: props.pos, + xyPostion: props.xyPostion, + index: props.index, + setXyPostion: props.setXyPostion, + data: props.data, + setSignKey: props.setSignKey, + isShowDropdown: props === null || props === void 0 ? void 0 : props.isShowDropdown, + isPlaceholder: props.isPlaceholder, + isSignYourself: props.isSignYourself, + signerObjId: props.signerObjId, + handleUserName: props.handleUserName, + setDraggingEnabled: setDraggingEnabled, + pdfDetails: (props === null || props === void 0 ? void 0 : props.pdfDetails) && (props === null || props === void 0 ? void 0 : props.pdfDetails[0]), + isNeedSign: props.isNeedSign, + setSelectDate: setSelectDate, + selectDate: selectDate, + setValidateAlert: props.setValidateAlert, + setStartDate: setStartDate, + startDate: startDate, + handleSaveDate: handleSaveDate, + xPos: props.xPos + }))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Placeholder); + +/***/ }), + +/***/ "./src/components/pdf/PlaceholderBorder.js": +/*!*************************************************!*\ + !*** ./src/components/pdf/PlaceholderBorder.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _constant_const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../constant/const */ "./src/constant/const.js"); +/* harmony import */ var _constant_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constant/Utils */ "./src/constant/Utils.js"); + + + +function PlaceholderBorder(props) { + const getResizeBorderExtraWidth = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.resizeBorderExtraWidth)(); + const defaultWidth = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.defaultWidthHeight)(props.pos.type).width; + const defaultHeight = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.defaultWidthHeight)(props.pos.type).height; + const width = () => { + const getWidth = props.placeholderBorder.w || props.pos.Width || defaultWidth; + return getWidth * props.scale * props.containerScale + getResizeBorderExtraWidth; + }; + const height = () => { + const getHeight = props.placeholderBorder.h || props.pos.Height || defaultHeight; + return getHeight * props.scale * props.containerScale + getResizeBorderExtraWidth; + }; + const handleMinWidth = () => { + if (props.pos.type === "checkbox" || props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_2__.radioButtonWidget) { + return props.getCheckboxRenderWidth.width + getResizeBorderExtraWidth; + } else { + return width(); + } + }; + const handleMinHeight = () => { + if (props.pos.type === "checkbox" || props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_2__.radioButtonWidget) { + return props.getCheckboxRenderWidth.height + getResizeBorderExtraWidth; + } else { + return height(); + } + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + onMouseEnter: () => !_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.isMobile && (props === null || props === void 0 ? void 0 : props.setDraggingEnabled(true)), + onTouchEnd: () => props.pos.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_2__.textWidget && (props === null || props === void 0 ? void 0 : props.setDraggingEnabled(true)), + className: "absolute inline-block w-[14px] h-[14px] hover:cursor-sw-resize", + style: { + borderColor: _constant_const__WEBPACK_IMPORTED_MODULE_1__.themeColor, + borderStyle: "dashed", + minWidth: handleMinWidth(), + minHeight: handleMinHeight(), + borderWidth: "0.2px", + overflow: "hidden" + } + }); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PlaceholderBorder); + +/***/ }), + +/***/ "./src/components/pdf/PlaceholderType.js": +/*!***********************************************!*\ + !*** ./src/components/pdf/PlaceholderType.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _constant_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../constant/Utils */ "./src/constant/Utils.js"); +/* harmony import */ var react_datepicker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-datepicker */ "./node_modules/react-datepicker/dist/react-datepicker.min.js"); +/* harmony import */ var react_datepicker__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_datepicker__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var react_datepicker_dist_react_datepicker_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-datepicker/dist/react-datepicker.css */ "./node_modules/react-datepicker/dist/react-datepicker.css"); +/* harmony import */ var _styles_signature_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../styles/signature.css */ "./src/styles/signature.css"); +/* harmony import */ var regex_parser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! regex-parser */ "./node_modules/regex-parser/lib/index.js"); +/* harmony import */ var regex_parser__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(regex_parser__WEBPACK_IMPORTED_MODULE_4__); + + + + + + +const textWidgetCls = "w-full h-full md:min-w-full md:min-h-full z-[999] text-[12px] rounded-[2px] border-[1px] border-[#007bff] overflow-hidden resize-none outline-none text-base-content item-center bg-base-100 whitespace-pre-wrap"; +const selectWidgetCls = "w-full h-full absolute left-0 top-0 border-[1px] border-[#007bff] rounded-[2px] focus:outline-none bg-base-100 text-base-content"; +function PlaceholderType(props) { + var _props$pos, _props$pos19, _props$data4, _props$data5, _props$pos20, _props$data6, _props$data7, _props$pos21, _props$pos$options7, _props$data9, _props$pos$options11, _props$pos$options12, _props$pos$options13, _props$data11, _props$pos22, _props$pos23, _props$pos24, _props$data13, _props$data14, _props$pos25, _props$data15, _props$pos$options14, _props$pos$options15, _props$pos$options16, _props$data17, _props$pos$options17, _props$pos$options18, _props$pos$options19, _props$data19, _props$pos$options20, _props$pos$options21, _props$pos$options22, _props$data21, _props$pos$options23, _props$selectDate, _props$pos26, _props$pos27, _props$data22, _props$data23, _props$pos28, _props$data24, _props$pos$options24, _props$pos$options25, _props$pos$options26, _props$pos$options27, _props$pos$options30, _props$pos$options31, _props$pos$options32, _props$data28, _props$data29; + const type = props === null || props === void 0 || (_props$pos = props.pos) === null || _props$pos === void 0 ? void 0 : _props$pos.type; + const [selectOption, setSelectOption] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [validatePlaceholder, setValidatePlaceholder] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const inputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); + const [textValue, setTextValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [selectedCheckbox, setSelectedCheckbox] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); + const years = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.range)(1990, (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.getYear)(new Date()) + 16, 1); + const months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + const validateExpression = regexValidation => { + if (textValue && regexValidation) { + var _props$pos2; + let regexObject = regexValidation; + if (((_props$pos2 = props.pos) === null || _props$pos2 === void 0 || (_props$pos2 = _props$pos2.options) === null || _props$pos2 === void 0 || (_props$pos2 = _props$pos2.validation) === null || _props$pos2 === void 0 ? void 0 : _props$pos2.type) === "regex") { + regexObject = regex_parser__WEBPACK_IMPORTED_MODULE_4___default()(regexValidation); + } + // new RegExp(regexValidation); + let isValidate = regexObject.test(textValue); + if (!isValidate) { + props === null || props === void 0 || props.setValidateAlert(true); + inputRef.current.focus(); + } + } + }; + const handleInputBlur = () => { + var _props$pos3, _props$pos4; + props.setDraggingEnabled(true); + const validateType = (_props$pos3 = props.pos) === null || _props$pos3 === void 0 || (_props$pos3 = _props$pos3.options) === null || _props$pos3 === void 0 || (_props$pos3 = _props$pos3.validation) === null || _props$pos3 === void 0 ? void 0 : _props$pos3.type; + let regexValidation; + if (validateType && validateType !== "text") { + switch (validateType) { + case "email": + regexValidation = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; + validateExpression(regexValidation); + break; + case "number": + regexValidation = /^[0-9\s]*$/; + validateExpression(regexValidation); + break; + default: + regexValidation = ((_props$pos4 = props.pos) === null || _props$pos4 === void 0 || (_props$pos4 = _props$pos4.options) === null || _props$pos4 === void 0 || (_props$pos4 = _props$pos4.validation) === null || _props$pos4 === void 0 ? void 0 : _props$pos4.pattern) || ""; + validateExpression(regexValidation); + } + } + }; + const handleTextValid = e => { + const textInput = e.target.value; + setTextValue(textInput); + }; + function checkRegularExpress(validateType) { + switch (validateType) { + case "email": + setValidatePlaceholder("demo@gmail.com"); + break; + case "number": + setValidatePlaceholder("12345"); + break; + case "text": + setValidatePlaceholder("please enter text"); + break; + default: + setValidatePlaceholder("please enter value"); + } + } + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + var _props$pos5, _props$pos7, _props$pos9, _props$pos10, _props$pos11, _props$pos12, _props$pos13, _props$pos14, _props$pos15, _props$pos16; + if (type && type === "checkbox" && props.isNeedSign) { + var _props$pos$options; + const isDefaultValue = (_props$pos$options = props.pos.options) === null || _props$pos$options === void 0 ? void 0 : _props$pos$options.defaultValue; + if (isDefaultValue) { + setSelectedCheckbox(isDefaultValue); + } + } else if ((_props$pos5 = props.pos) !== null && _props$pos5 !== void 0 && (_props$pos5 = _props$pos5.options) !== null && _props$pos5 !== void 0 && _props$pos5.hint) { + var _props$pos6; + setValidatePlaceholder((_props$pos6 = props.pos) === null || _props$pos6 === void 0 ? void 0 : _props$pos6.options.hint); + } else if ((_props$pos7 = props.pos) !== null && _props$pos7 !== void 0 && (_props$pos7 = _props$pos7.options) !== null && _props$pos7 !== void 0 && (_props$pos7 = _props$pos7.validation) !== null && _props$pos7 !== void 0 && _props$pos7.type) { + var _props$pos8; + checkRegularExpress((_props$pos8 = props.pos) === null || _props$pos8 === void 0 || (_props$pos8 = _props$pos8.options) === null || _props$pos8 === void 0 || (_props$pos8 = _props$pos8.validation) === null || _props$pos8 === void 0 ? void 0 : _props$pos8.type); + } + setTextValue((_props$pos9 = props.pos) !== null && _props$pos9 !== void 0 && (_props$pos9 = _props$pos9.options) !== null && _props$pos9 !== void 0 && _props$pos9.response ? (_props$pos10 = props.pos) === null || _props$pos10 === void 0 || (_props$pos10 = _props$pos10.options) === null || _props$pos10 === void 0 ? void 0 : _props$pos10.response : (_props$pos11 = props.pos) !== null && _props$pos11 !== void 0 && (_props$pos11 = _props$pos11.options) !== null && _props$pos11 !== void 0 && _props$pos11.defaultValue ? (_props$pos12 = props.pos) === null || _props$pos12 === void 0 || (_props$pos12 = _props$pos12.options) === null || _props$pos12 === void 0 ? void 0 : _props$pos12.defaultValue : ""); + setSelectOption((_props$pos13 = props.pos) !== null && _props$pos13 !== void 0 && (_props$pos13 = _props$pos13.options) !== null && _props$pos13 !== void 0 && _props$pos13.response ? (_props$pos14 = props.pos) === null || _props$pos14 === void 0 || (_props$pos14 = _props$pos14.options) === null || _props$pos14 === void 0 ? void 0 : _props$pos14.response : (_props$pos15 = props.pos) !== null && _props$pos15 !== void 0 && (_props$pos15 = _props$pos15.options) !== null && _props$pos15 !== void 0 && _props$pos15.defaultValue ? (_props$pos16 = props.pos) === null || _props$pos16 === void 0 || (_props$pos16 = _props$pos16.options) === null || _props$pos16 === void 0 ? void 0 : _props$pos16.defaultValue : ""); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + var _props$pos17, _props$data; + if (["name", "email", "job title", "company"].includes((_props$pos17 = props.pos) === null || _props$pos17 === void 0 ? void 0 : _props$pos17.type) && props.isNeedSign && ((_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.signerObjId) === (props === null || props === void 0 ? void 0 : props.signerObjId)) { + var _props$pos18; + const defaultData = (_props$pos18 = props.pos) === null || _props$pos18 === void 0 || (_props$pos18 = _props$pos18.options) === null || _props$pos18 === void 0 ? void 0 : _props$pos18.defaultValue; + if (defaultData) { + setTextValue(defaultData); + } + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [(_props$pos19 = props.pos) === null || _props$pos19 === void 0 || (_props$pos19 = _props$pos19.options) === null || _props$pos19 === void 0 ? void 0 : _props$pos19.defaultValue]); + const ExampleCustomInput = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((_ref, ref) => { + let { + value, + onClick + } = _ref; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "".concat(selectWidgetCls, " overflow-hidden"), + style: { + fontSize: calculateFontSize() + }, + onClick: onClick, + ref: ref + }, value, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-calendar ml-[5px]" + })); + }); + ExampleCustomInput.displayName = "ExampleCustomInput"; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + var _props$data2; + if (["name", "email", "job title", "company"].includes(type) && props.isNeedSign && ((_props$data2 = props.data) === null || _props$data2 === void 0 ? void 0 : _props$data2.signerObjId) === props.signerObjId) { + const isDefault = true; + const senderUser = localStorage.getItem("Extand_Class"); + const jsonSender = JSON.parse(senderUser); + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(jsonSender && jsonSender[0], null, props.xyPostion, null, props.setXyPostion, props.data.Id, isDefault); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [type]); + const calculateFontSize = () => { + const fontSize = 10 + Math.min(props.pos.Width, props.pos.Height) * 0.1; + const size = fontSize ? fontSize : 12; + return size + "px"; + }; + //function for show checked checkbox + const selectCheckbox = ind => { + var _props$pos$options2, _props$pos$options3; + const res = (_props$pos$options2 = props.pos.options) === null || _props$pos$options2 === void 0 ? void 0 : _props$pos$options2.response; + const defaultCheck = (_props$pos$options3 = props.pos.options) === null || _props$pos$options3 === void 0 ? void 0 : _props$pos$options3.defaultValue; + if (res && (res === null || res === void 0 ? void 0 : res.length) > 0) { + const isSelectIndex = res.indexOf(ind); + if (isSelectIndex > -1) { + return true; + } else { + return false; + } + // } + } else if (defaultCheck) { + const isSelectIndex = defaultCheck.indexOf(ind); + if (isSelectIndex > -1) { + return true; + } else { + return false; + } + } else { + return false; + } + }; + const handleRadioCheck = data => { + var _props$pos$options4; + const defaultData = (_props$pos$options4 = props.pos.options) === null || _props$pos$options4 === void 0 ? void 0 : _props$pos$options4.defaultValue; + if (textValue === data) { + return true; + } else if (defaultData === data) { + return true; + } else { + return false; + } + }; + + //function for set checked and unchecked value of checkbox + const handleCheckboxValue = (isChecked, ind) => { + let updateSelectedCheckbox = [], + checkedList; + let isDefaultValue, isDefaultEmpty; + if (type === "checkbox") { + updateSelectedCheckbox = selectedCheckbox ? selectedCheckbox : []; + if (isChecked) { + updateSelectedCheckbox.push(ind); + setSelectedCheckbox(updateSelectedCheckbox); + } else { + checkedList = selectedCheckbox.filter(data => data !== ind); + setSelectedCheckbox(checkedList); + } + if (props.isNeedSign) { + var _props$pos$options5; + isDefaultValue = (_props$pos$options5 = props.pos.options) === null || _props$pos$options5 === void 0 ? void 0 : _props$pos$options5.defaultValue; + } + if (isDefaultValue && isDefaultValue.length > 0) { + isDefaultEmpty = true; + } + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(checkedList ? checkedList : updateSelectedCheckbox, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && props.data.Id, false, null, isDefaultEmpty); + } + }; + + //function to handle select radio widget and set value seletced by user + const handleCheckRadio = (isChecked, data) => { + let isDefaultValue, + isDefaultEmpty, + isRadio = true; + if (props.isNeedSign) { + var _props$pos$options6; + isDefaultValue = (_props$pos$options6 = props.pos.options) === null || _props$pos$options6 === void 0 ? void 0 : _props$pos$options6.defaultValue; + } + if (isDefaultValue) { + isDefaultEmpty = true; + } + if (isChecked) { + setTextValue(data); + } else { + setTextValue(""); + } + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(data, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && props.data.Id, false, null, isDefaultEmpty, isRadio); + }; + //function to set onchange date + const handleOnDateChange = date => { + props.setStartDate(date); + const isDateChange = true; + const dateObj = { + date: date, + format: props.selectDate.format + }; + props.handleSaveDate(dateObj, isDateChange); + }; + //handle height on enter press in text area + const handleEnterPress = e => { + const height = 18; + if (e.key === "Enter") { + var _props$data3; + //function to save height of text area + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeHeightOfTextArea)(height, props.pos.type, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && ((_props$data3 = props.data) === null || _props$data3 === void 0 ? void 0 : _props$data3.Id)); + } + }; + switch (type) { + case "signature": + return props.pos.SignUrl ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", { + alt: "signature", + draggable: "false", + src: props.pos.SignUrl, + className: "w-full h-full " + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[11px] w-full h-full text-black flex flex-col justify-center items-center" + }, (props === null || props === void 0 ? void 0 : props.handleUserName) && (props === null || props === void 0 ? void 0 : props.handleUserName(props === null || props === void 0 || (_props$data4 = props.data) === null || _props$data4 === void 0 ? void 0 : _props$data4.Id, props === null || props === void 0 || (_props$data5 = props.data) === null || _props$data5 === void 0 ? void 0 : _props$data5.Role, props === null || props === void 0 || (_props$pos20 = props.pos) === null || _props$pos20 === void 0 ? void 0 : _props$pos20.type))); + case "stamp": + return props.pos.SignUrl ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", { + alt: "stamp", + draggable: "false", + src: props.pos.SignUrl, + className: "w-full h-full" + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[11px] w-full h-full text-black flex flex-col justify-center items-center" + }, (props === null || props === void 0 ? void 0 : props.handleUserName) && (props === null || props === void 0 ? void 0 : props.handleUserName(props === null || props === void 0 || (_props$data6 = props.data) === null || _props$data6 === void 0 ? void 0 : _props$data6.Id, props === null || props === void 0 || (_props$data7 = props.data) === null || _props$data7 === void 0 ? void 0 : _props$data7.Role, props === null || props === void 0 || (_props$pos21 = props.pos) === null || _props$pos21 === void 0 ? void 0 : _props$pos21.type))); + case "checkbox": + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + zIndex: props.isSignYourself && "99" + } + }, (_props$pos$options7 = props.pos.options) === null || _props$pos$options7 === void 0 || (_props$pos$options7 = _props$pos$options7.values) === null || _props$pos$options7 === void 0 ? void 0 : _props$pos$options7.map((data, ind) => { + var _props$pos$options8, _props$data8, _props$pos$options10; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + key: ind, + className: "flex items-center text-center gap-0.5" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + className: "".concat(ind === 0 ? "mt-0" : "mt-[5px]", " flex justify-center op-checkbox op-checkbox-xs rounded-[0.350rem]"), + onBlur: handleInputBlur, + disabled: props.isNeedSign && (((_props$pos$options8 = props.pos.options) === null || _props$pos$options8 === void 0 ? void 0 : _props$pos$options8.isReadOnly) || ((_props$data8 = props.data) === null || _props$data8 === void 0 ? void 0 : _props$data8.signerObjId) !== props.signerObjId), + type: "checkbox", + checked: selectCheckbox(ind), + onChange: e => { + if (e.target.checked) { + if (!props.isPlaceholder) { + var _props$pos$options9; + const maxRequired = (_props$pos$options9 = props.pos.options) === null || _props$pos$options9 === void 0 || (_props$pos$options9 = _props$pos$options9.validation) === null || _props$pos$options9 === void 0 ? void 0 : _props$pos$options9.maxRequiredCount; + const maxCountInt = maxRequired && parseInt(maxRequired); + if (maxCountInt > 0) { + if (selectedCheckbox && (selectedCheckbox === null || selectedCheckbox === void 0 ? void 0 : selectedCheckbox.length) <= maxCountInt - 1) { + handleCheckboxValue(e.target.checked, ind); + } + } else { + handleCheckboxValue(e.target.checked, ind); + } + } + } else { + handleCheckboxValue(e.target.checked, ind); + } + } + }), !((_props$pos$options10 = props.pos.options) !== null && _props$pos$options10 !== void 0 && _props$pos$options10.isHideLabel) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { + className: "text-xs mb-0 text-center" + }, data)); + })); + case _constant_Utils__WEBPACK_IMPORTED_MODULE_1__.textInputWidget: + return props.isSignYourself || props.isNeedSign && ((_props$data9 = props.data) === null || _props$data9 === void 0 ? void 0 : _props$data9.signerObjId) === props.signerObjId ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("textarea", { + ref: inputRef, + placeholder: validatePlaceholder || "please enter value", + rows: 1, + onKeyDown: handleEnterPress, + value: textValue, + onBlur: handleInputBlur, + onChange: e => { + var _props$data10; + setTextValue(e.target.value); + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(e.target.value, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && ((_props$data10 = props.data) === null || _props$data10 === void 0 ? void 0 : _props$data10.Id), false); + }, + className: textWidgetCls, + style: { + fontSize: (_props$pos$options11 = props.pos.options) !== null && _props$pos$options11 !== void 0 && _props$pos$options11.fontSize ? ((_props$pos$options12 = props.pos.options) === null || _props$pos$options12 === void 0 ? void 0 : _props$pos$options12.fontSize) + "px" : "12px", + color: ((_props$pos$options13 = props.pos.options) === null || _props$pos$options13 === void 0 ? void 0 : _props$pos$options13.fontColor) || "black" + }, + cols: "50" + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + color: "black", + fontSize: "12px" + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, type)); + case "dropdown": + return ((_props$data11 = props.data) === null || _props$data11 === void 0 ? void 0 : _props$data11.signerObjId) === props.signerObjId ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("select", { + className: "".concat(selectWidgetCls, " text-[12px]"), + id: "myDropdown", + value: selectOption, + onChange: e => { + var _props$data12; + setSelectOption(e.target.value); + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(e.target.value, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && ((_props$data12 = props.data) === null || _props$data12 === void 0 ? void 0 : _props$data12.Id), false); + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("option", { + value: "", + disabled: true, + hidden: true + }, props === null || props === void 0 || (_props$pos22 = props.pos) === null || _props$pos22 === void 0 || (_props$pos22 = _props$pos22.options) === null || _props$pos22 === void 0 ? void 0 : _props$pos22.name), (_props$pos23 = props.pos) === null || _props$pos23 === void 0 || (_props$pos23 = _props$pos23.options) === null || _props$pos23 === void 0 || (_props$pos23 = _props$pos23.values) === null || _props$pos23 === void 0 ? void 0 : _props$pos23.map((data, ind) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("option", { + key: ind, + value: data + }, data); + })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: selectWidgetCls, + style: { + fontSize: calculateFontSize() + } + }, (_props$pos24 = props.pos) !== null && _props$pos24 !== void 0 && (_props$pos24 = _props$pos24.options) !== null && _props$pos24 !== void 0 && _props$pos24.name ? props.pos.options.name : type); + case "initials": + return props.pos.SignUrl ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", { + alt: "initials", + draggable: "false", + src: props.pos.SignUrl, + className: "w-full h-full" + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[11px] w-full h-full text-black flex flex-col justify-center items-center" + }, (props === null || props === void 0 ? void 0 : props.handleUserName) && (props === null || props === void 0 ? void 0 : props.handleUserName(props === null || props === void 0 || (_props$data13 = props.data) === null || _props$data13 === void 0 ? void 0 : _props$data13.Id, props === null || props === void 0 || (_props$data14 = props.data) === null || _props$data14 === void 0 ? void 0 : _props$data14.Role, props === null || props === void 0 || (_props$pos25 = props.pos) === null || _props$pos25 === void 0 ? void 0 : _props$pos25.type))); + case "name": + return props.isSignYourself || props.isNeedSign && ((_props$data15 = props.data) === null || _props$data15 === void 0 ? void 0 : _props$data15.signerObjId) === props.signerObjId ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("textarea", { + ref: inputRef, + placeholder: "name", + rows: 1, + onKeyDown: handleEnterPress, + value: textValue, + onChange: e => { + var _props$data16; + const isDefault = false; + handleTextValid(e); + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(e.target.value, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && ((_props$data16 = props.data) === null || _props$data16 === void 0 ? void 0 : _props$data16.Id), isDefault); + }, + className: textWidgetCls, + style: { + fontSize: (_props$pos$options14 = props.pos.options) !== null && _props$pos$options14 !== void 0 && _props$pos$options14.fontSize ? ((_props$pos$options15 = props.pos.options) === null || _props$pos$options15 === void 0 ? void 0 : _props$pos$options15.fontSize) + "px" : "12px", + color: ((_props$pos$options16 = props.pos.options) === null || _props$pos$options16 === void 0 ? void 0 : _props$pos$options16.fontColor) || "black" + }, + cols: "50" + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + color: "black", + fontSize: "12px" + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, type)); + case "company": + return props.isSignYourself || props.isNeedSign && ((_props$data17 = props.data) === null || _props$data17 === void 0 ? void 0 : _props$data17.signerObjId) === props.signerObjId ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("textarea", { + ref: inputRef, + placeholder: "Enter text", + rows: 1, + onKeyDown: handleEnterPress, + value: textValue, + onChange: e => { + var _props$data18; + handleTextValid(e); + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(e.target.value, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && ((_props$data18 = props.data) === null || _props$data18 === void 0 ? void 0 : _props$data18.Id), false); + }, + className: textWidgetCls, + style: { + fontSize: (_props$pos$options17 = props.pos.options) !== null && _props$pos$options17 !== void 0 && _props$pos$options17.fontSize ? ((_props$pos$options18 = props.pos.options) === null || _props$pos$options18 === void 0 ? void 0 : _props$pos$options18.fontSize) + "px" : "12px", + color: ((_props$pos$options19 = props.pos.options) === null || _props$pos$options19 === void 0 ? void 0 : _props$pos$options19.fontColor) || "black" + }, + cols: "50" + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + color: "black", + fontSize: "12px" + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, type)); + case "job title": + return props.isSignYourself || props.isNeedSign && ((_props$data19 = props.data) === null || _props$data19 === void 0 ? void 0 : _props$data19.signerObjId) === props.signerObjId ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("textarea", { + ref: inputRef, + placeholder: "job title", + rows: 1, + onKeyDown: handleEnterPress, + value: textValue, + onChange: e => { + var _props$data20; + handleTextValid(e); + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(e.target.value, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && ((_props$data20 = props.data) === null || _props$data20 === void 0 ? void 0 : _props$data20.Id), false); + }, + className: textWidgetCls, + style: { + fontSize: (_props$pos$options20 = props.pos.options) !== null && _props$pos$options20 !== void 0 && _props$pos$options20.fontSize ? ((_props$pos$options21 = props.pos.options) === null || _props$pos$options21 === void 0 ? void 0 : _props$pos$options21.fontSize) + "px" : "12px", + color: ((_props$pos$options22 = props.pos.options) === null || _props$pos$options22 === void 0 ? void 0 : _props$pos$options22.fontColor) || "black" + }, + cols: "50" + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + color: "black", + fontSize: "12px" + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, type)); + case "date": + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react_datepicker__WEBPACK_IMPORTED_MODULE_5___default()), { + renderCustomHeader: _ref2 => { + let { + date, + changeYear, + changeMonth + } = _ref2; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-start ml-2 " + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("select", { + className: "bg-transparent outline-none", + value: months[(0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.getMonth)(date)], + onChange: _ref3 => { + let { + target: { + value + } + } = _ref3; + return changeMonth(months.indexOf(value)); + } + }, months.map(option => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("option", { + key: option, + value: option + }, option))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("select", { + className: "bg-transparent outline-none", + value: (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.getYear)(date), + onChange: _ref4 => { + let { + target: { + value + } + } = _ref4; + return changeYear(value); + } + }, years.map(option => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("option", { + key: option, + value: option + }, option)))); + }, + disabled: props.isPlaceholder || props.isNeedSign && ((_props$data21 = props.data) === null || _props$data21 === void 0 ? void 0 : _props$data21.signerObjId) !== props.signerObjId, + onBlur: handleInputBlur, + closeOnScroll: true, + className: "".concat(selectWidgetCls, " outline-[#007bff]"), + selected: props !== null && props !== void 0 && props.startDate ? props === null || props === void 0 ? void 0 : props.startDate : ((_props$pos$options23 = props.pos.options) === null || _props$pos$options23 === void 0 ? void 0 : _props$pos$options23.response) && new Date(props.pos.options.response), + onChange: date => handleOnDateChange(date), + popperPlacement: "top-end", + customInput: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ExampleCustomInput, null), + dateFormat: props.selectDate ? (_props$selectDate = props.selectDate) === null || _props$selectDate === void 0 ? void 0 : _props$selectDate.format : (_props$pos26 = props.pos) !== null && _props$pos26 !== void 0 && (_props$pos26 = _props$pos26.options) !== null && _props$pos26 !== void 0 && (_props$pos26 = _props$pos26.validation) !== null && _props$pos26 !== void 0 && _props$pos26.format ? (_props$pos27 = props.pos) === null || _props$pos27 === void 0 || (_props$pos27 = _props$pos27.options) === null || _props$pos27 === void 0 || (_props$pos27 = _props$pos27.validation) === null || _props$pos27 === void 0 ? void 0 : _props$pos27.format : "MM/dd/yyyy" + })); + case "image": + return props.pos.SignUrl ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", { + alt: "image", + draggable: "false", + src: props.pos.SignUrl, + className: "w-full h-full" + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[11px] w-full h-full text-black flex flex-col justify-center items-center" + }, (props === null || props === void 0 ? void 0 : props.handleUserName) && (props === null || props === void 0 ? void 0 : props.handleUserName(props === null || props === void 0 || (_props$data22 = props.data) === null || _props$data22 === void 0 ? void 0 : _props$data22.Id, props === null || props === void 0 || (_props$data23 = props.data) === null || _props$data23 === void 0 ? void 0 : _props$data23.Role, props === null || props === void 0 || (_props$pos28 = props.pos) === null || _props$pos28 === void 0 ? void 0 : _props$pos28.type))); + case "email": + return props.isSignYourself || props.isNeedSign && ((_props$data24 = props.data) === null || _props$data24 === void 0 ? void 0 : _props$data24.signerObjId) === props.signerObjId ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("textarea", { + ref: inputRef, + placeholder: "enter email", + rows: 1, + onKeyDown: handleEnterPress, + value: textValue, + onBlur: handleInputBlur, + onChange: e => { + var _props$data25; + handleTextValid(e); + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(e.target.value, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && ((_props$data25 = props.data) === null || _props$data25 === void 0 ? void 0 : _props$data25.Id), false); + }, + className: textWidgetCls, + style: { + fontSize: (_props$pos$options24 = props.pos.options) !== null && _props$pos$options24 !== void 0 && _props$pos$options24.fontSize ? ((_props$pos$options25 = props.pos.options) === null || _props$pos$options25 === void 0 ? void 0 : _props$pos$options25.fontSize) + "px" : "12px", + color: ((_props$pos$options26 = props.pos.options) === null || _props$pos$options26 === void 0 ? void 0 : _props$pos$options26.fontColor) || "black" + }, + cols: "50" + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + color: "black", + fontSize: "12px" + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, type)); + case _constant_Utils__WEBPACK_IMPORTED_MODULE_1__.radioButtonWidget: + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, (_props$pos$options27 = props.pos.options) === null || _props$pos$options27 === void 0 ? void 0 : _props$pos$options27.values.map((data, ind) => { + var _props$pos$options28, _props$data26, _props$pos$options29; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + key: ind, + className: "flex items-center text-center gap-0.5" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + className: "".concat(ind === 0 ? "mt-0" : "mt-[5px]", " ", "w-[15px] h-[15px]", " flex justify-center op-radio"), + type: "radio", + disabled: props.isNeedSign && (((_props$pos$options28 = props.pos.options) === null || _props$pos$options28 === void 0 ? void 0 : _props$pos$options28.isReadOnly) || ((_props$data26 = props.data) === null || _props$data26 === void 0 ? void 0 : _props$data26.signerObjId) !== props.signerObjId), + checked: handleRadioCheck(data), + onChange: e => { + if (!props.isPlaceholder) { + handleCheckRadio(e.target.checked, data); + } + } + }), !((_props$pos$options29 = props.pos.options) !== null && _props$pos$options29 !== void 0 && _props$pos$options29.isHideLabel) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { + className: "text-xs mb-0" + }, data)); + })); + case _constant_Utils__WEBPACK_IMPORTED_MODULE_1__.textWidget: + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("textarea", { + placeholder: "Enter text", + rows: 1, + onKeyDown: handleEnterPress, + value: textValue, + onBlur: handleInputBlur, + onChange: e => { + var _props$data27; + setTextValue(e.target.value); + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.onChangeInput)(e.target.value, props.pos.key, props.xyPostion, props.index, props.setXyPostion, props.data && ((_props$data27 = props.data) === null || _props$data27 === void 0 ? void 0 : _props$data27.Id), false); + }, + className: textWidgetCls, + style: { + fontSize: (_props$pos$options30 = props.pos.options) !== null && _props$pos$options30 !== void 0 && _props$pos$options30.fontSize ? ((_props$pos$options31 = props.pos.options) === null || _props$pos$options31 === void 0 ? void 0 : _props$pos$options31.fontSize) + "px" : "12px", + color: ((_props$pos$options32 = props.pos.options) === null || _props$pos$options32 === void 0 ? void 0 : _props$pos$options32.fontColor) || "black" + }, + cols: "50" + }); + default: + return props.pos.SignUrl ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "pointer-events-none" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", { + alt: "image", + draggable: "false", + src: props.pos.SignUrl, + className: "w-full h-full" + })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[11px] w-full h-full text-black flex flex-col justify-center items-center" + }, props.pos.isStamp ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, "stamp") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, "signature"), (props === null || props === void 0 ? void 0 : props.handleUserName) && (props === null || props === void 0 ? void 0 : props.handleUserName(props === null || props === void 0 || (_props$data28 = props.data) === null || _props$data28 === void 0 ? void 0 : _props$data28.Id, props === null || props === void 0 || (_props$data29 = props.data) === null || _props$data29 === void 0 ? void 0 : _props$data29.Role))); + } +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PlaceholderType); + +/***/ }), + +/***/ "./src/components/pdf/PrevNext.js": +/*!****************************************!*\ + !*** ./src/components/pdf/PrevNext.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + +function PrevNext(_ref) { + let { + pageNumber, + allPages, + changePage + } = _ref; + //for go to previous page + function previousPage() { + changePage(-1); + } + //for go to next page + function nextPage() { + changePage(1); + } + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex items-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-neutral op-btn-xs md:op-btn-sm font-semibold text-xs", + disabled: pageNumber <= 1, + onClick: previousPage + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "block lg:hidden" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-backward", + "aria-hidden": "true" + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "lg:block hidden 2xl:text-[30px]" + }, "Prev")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "text-xs text-base-content font-medium mx-2 2xl:text-[30px]" + }, pageNumber || (allPages ? 1 : "--"), " of ", allPages || "--"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-neutral op-btn-xs md:op-btn-sm font-semibold text-xs", + disabled: pageNumber >= allPages, + onClick: nextPage + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "block lg:hidden" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-forward", + "aria-hidden": "true" + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "lg:block hidden 2xl:text-[30px]" + }, "Next"))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PrevNext); + +/***/ }), + +/***/ "./src/components/pdf/RenderAllPdfPage.js": +/*!************************************************!*\ + !*** ./src/components/pdf/RenderAllPdfPage.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var react_pdf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-pdf */ "./node_modules/react-pdf/dist/esm/Document.js"); +/* harmony import */ var react_pdf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-pdf */ "./node_modules/react-pdf/dist/esm/Page.js"); +/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/dist/react-redux.mjs"); + + + +function RenderAllPdfPage(_ref) { + let { + signPdfUrl, + allPages, + setAllPages, + setPageNumber, + setSignBtnPosition, + pageNumber, + signerPos, + signerObjectId + } = _ref; + const [signPageNumber, setSignPageNumber] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); + const [bookmarkColor, setBookmarkColor] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + //set all number of pages after load pdf + function onDocumentLoad(_ref2) { + let { + numPages + } = _ref2; + setAllPages(numPages); + //check if signerPos array exist then save page number exist in signerPos array to show bookmark icon + if (signerPos) { + var _checkUser$; + const checkUser = signerPos.filter(data => data.signerObjId === signerObjectId); + setBookmarkColor((_checkUser$ = checkUser[0]) === null || _checkUser$ === void 0 ? void 0 : _checkUser$.blockColor); + let pageNumberArr = []; + if ((checkUser === null || checkUser === void 0 ? void 0 : checkUser.length) > 0) { + var _checkUser$2; + (_checkUser$2 = checkUser[0]) === null || _checkUser$2 === void 0 || (_checkUser$2 = _checkUser$2.placeHolder) === null || _checkUser$2 === void 0 || _checkUser$2.map(data => { + pageNumberArr.push(data === null || data === void 0 ? void 0 : data.pageNumber); + }); + setSignPageNumber(pageNumberArr); + } + } + } + const pageContainer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(); + const isHeader = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useSelector)(state => state.showHeader); + const [pageWidth, setPageWidth] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + const updateSize = () => { + if (pageContainer.current) { + setPageWidth(pageContainer.current.offsetWidth); + } + }; + + // Use setTimeout to wait for the transition to complete + const timer = setTimeout(updateSize, 100); // match the transition duration + + return () => clearTimeout(timer); + }, [isHeader, pageContainer]); + //'function `addSignatureBookmark` is used to display the page where the user's signature is located. + const addSignatureBookmark = index => { + const ispageNumber = signPageNumber.includes(index + 1); + return ispageNumber && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "absolute z-20 top-[1px] -right-[13px] -translate-x-1/2 -translate-y-1/2" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + style: { + color: bookmarkColor || "red" + }, + className: "fa-solid fa-bookmark" + })); + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + ref: pageContainer, + className: "hidden w-[20%] bg-base-100 md:block" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "mx-2 pr-2 pt-2 pb-1 text-[15px] text-base-content font-semibold border-b-[1px] border-base-300" + }, "Pages"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex h-[90%] flex-col items-center m-2 \n autoSignScroll hide-scrollbar max-h-[100vh] " + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_pdf__WEBPACK_IMPORTED_MODULE_2__["default"], { + loading: "Loading Document..", + onLoadSuccess: onDocumentLoad, + file: signPdfUrl + }, Array.from(new Array(allPages), (el, index) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + key: index, + className: "".concat(pageNumber - 1 === index ? "border-[red]" : "border-[#878787]", " border-2 m-[10px] flex justify-center items-center relative"), + onClick: () => { + setPageNumber(index + 1); + if (setSignBtnPosition) { + setSignBtnPosition([]); + } + } + }, signerPos && addSignatureBookmark(index), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "relative z-[1] overflow-hidden" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_pdf__WEBPACK_IMPORTED_MODULE_3__["default"], { + key: "page_".concat(index + 1), + pageNumber: index + 1, + width: pageWidth - 60, + scale: 1, + renderAnnotationLayer: false, + renderTextLayer: false + }))))))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RenderAllPdfPage); + +/***/ }), + +/***/ "./src/components/pdf/RenderPdf.js": +/*!*****************************************!*\ + !*** ./src/components/pdf/RenderPdf.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var react_scrollbars_custom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-scrollbars-custom */ "./node_modules/react-scrollbars-custom/dist/rsc.esm.js"); +/* harmony import */ var react_pdf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-pdf */ "./node_modules/react-pdf/dist/esm/Document.js"); +/* harmony import */ var react_pdf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-pdf */ "./node_modules/react-pdf/dist/esm/Page.js"); +/* harmony import */ var _constant_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constant/Utils */ "./src/constant/Utils.js"); +/* harmony import */ var _Placeholder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Placeholder */ "./src/components/pdf/Placeholder.js"); +/* harmony import */ var _primitives_Alert__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../primitives/Alert */ "./src/primitives/Alert.js"); + + + + + + +function RenderPdf(_ref) { + let { + pageNumber, + drop, + signerPos, + successEmail, + handleTabDrag, + handleStop, + isDragging, + setIsSignPad, + setIsStamp, + handleDeleteSign, + setSignKey, + pdfDetails, + xyPostion, + pdfUrl, + pageDetails, + pdfRequest, + signerObjectId, + signedSigners, + pdfLoad, + setPdfLoad, + placeholder, + setSignerPos, + setXyPostion, + index, + containerWH, + setIsResize, + handleLinkUser, + setUniqueId, + signersdata, + setIsPageCopy, + setSignerObjId, + setShowDropdown, + setIsInitial, + setIsValidate, + setWidgetType, + setValidateAlert, + setIsRadio, + setCurrWidgetsDetails, + setSelectWidgetId, + selectWidgetId, + unSignedWidgetId, + setIsCheckbox, + handleNameModal, + handleTextSettingModal, + setTempSignerId, + uniqueId, + pdfOriginalWH, + scale, + setIsSelectId, + ispublicTemplate, + handleUserDetails + } = _ref; + const isMobile = window.innerWidth < 767; + //check isGuestSigner is present in local if yes than handle login flow header in mobile view + const isGuestSigner = localStorage.getItem("isGuestSigner"); + + // handle signature block width and height according to screen + const posWidth = (pos, signYourself) => { + const getPdfPageWidth = pdfOriginalWH.find(data => data.pageNumber === pageNumber); + const containerScale = containerWH.width / getPdfPageWidth.width || 1; + const defaultWidth = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.defaultWidthHeight)(pos.type).width; + const posWidth = pos.Width ? pos.Width : defaultWidth; + if (signYourself) { + return posWidth * scale * containerScale; + } else { + if (pos.isMobile && pos.scale) { + if (pos.IsResize) { + if (scale > 1) { + return posWidth * pos.scale * containerScale * scale; + } else { + return posWidth * containerScale; + } + } else { + if (scale > 1) { + return posWidth * pos.scale * containerScale * scale; + } else { + return posWidth * pos.scale * containerScale; + } + } + } else { + return posWidth * scale * containerScale; + } + } + }; + const posHeight = (pos, signYourself) => { + const getPdfPageWidth = pdfOriginalWH.find(data => data.pageNumber === pageNumber); + const containerScale = containerWH.width / (getPdfPageWidth === null || getPdfPageWidth === void 0 ? void 0 : getPdfPageWidth.width) || 1; + const posHeight = pos.Height || (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_2__.defaultWidthHeight)(pos.type).height; + if (signYourself) { + return posHeight * scale * containerScale; + } else { + if (pos.isMobile && pos.scale) { + if (pos.IsResize) { + if (scale > 1) { + return posHeight * pos.scale * containerScale * scale; + } else { + return posHeight * containerScale; + } + } else { + if (scale > 1) { + return posHeight * pos.scale * containerScale * scale; + } else { + return posHeight * pos.scale * containerScale; + } + } + } else { + return posHeight * scale * containerScale; + } + } + }; + + //function for render placeholder block over pdf document + const checkSignedSigners = data => { + let checkSign = []; + //condition to handle quick send flow and using normal request sign flow + checkSign = signedSigners ? signedSigners === null || signedSigners === void 0 ? void 0 : signedSigners.filter(sign => (sign === null || sign === void 0 ? void 0 : sign.Id) === (data === null || data === void 0 ? void 0 : data.Id) || (sign === null || sign === void 0 ? void 0 : sign.objectId) === (data === null || data === void 0 ? void 0 : data.signerObjId)) : []; + const handleAllUserName = (Id, Role, type) => { + var _pdfDetails$0$Signers; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-black text-[8px] font-bold" + }, (_pdfDetails$0$Signers = pdfDetails[0].Signers) === null || _pdfDetails$0$Signers === void 0 || (_pdfDetails$0$Signers = _pdfDetails$0$Signers.find(signer => signer.objectId === data.signerObjId)) === null || _pdfDetails$0$Signers === void 0 ? void 0 : _pdfDetails$0$Signers.Name), type && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[11px] font-bold" + }, type), Role && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-black text-[8px] font-medium" + }, "(".concat(Role, ")"))); + }; + return checkSign.length === 0 && data.placeHolder.map((placeData, key) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: key + }, placeData.pageNumber === pageNumber && placeData.pos.map(pos => { + return pos && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: pos.key + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Placeholder__WEBPACK_IMPORTED_MODULE_3__["default"], { + pos: pos, + setSignKey: setSignKey, + setIsSignPad: setIsSignPad, + setIsStamp: setIsStamp, + handleSignYourselfImageResize: _constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleImageResize, + index: pageNumber, + xyPostion: signerPos, + setXyPostion: setSignerPos, + data: data, + setIsResize: setIsResize, + isShowBorder: false, + signerObjId: signerObjectId, + isShowDropdown: true, + isNeedSign: true, + isSignYourself: false, + posWidth: posWidth, + posHeight: posHeight, + handleUserName: handleAllUserName, + isDragging: false, + pdfDetails: pdfDetails, + setIsInitial: setIsInitial, + setValidateAlert: setValidateAlert, + unSignedWidgetId: unSignedWidgetId, + setSelectWidgetId: setSelectWidgetId, + selectWidgetId: selectWidgetId, + setCurrWidgetsDetails: setCurrWidgetsDetails, + uniqueId: uniqueId, + scale: scale, + containerWH: containerWH, + pdfOriginalWH: pdfOriginalWH, + pageNumber: pageNumber, + ispublicTemplate: ispublicTemplate, + handleUserDetails: handleUserDetails + })); + })); + }); + }; + //function for render placeholder block over pdf document + + const handleUserName = (Id, Role, type) => { + if (Id) { + const checkSign = signersdata.find(sign => sign.Id === Id); + if (checkSign !== null && checkSign !== void 0 && checkSign.Name) { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-black text-[8px] font-medium" + }, checkSign === null || checkSign === void 0 ? void 0 : checkSign.Name), type && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[11px] font-bold" + }, type), Role && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-black text-[8px] font-medium" + }, "(".concat(Role, ")"))); + } else { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, type && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[11px] font-bold" + }, type), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-black text-[8px] font-medium" + }, Role)); + } + } else { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, type && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[11px] font-bold" + }, type), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-black text-[8px] font-medium" + }, Role)); + } + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, successEmail && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_Alert__WEBPACK_IMPORTED_MODULE_4__["default"], { + type: "success" + }, "Email sent successfully!"), isMobile ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + "data-tut": "reactourForth", + className: "".concat(isGuestSigner ? "30px" : "", " border-[0.1px] border-[#ebe8e8]"), + ref: drop, + id: "container" + }, (containerWH === null || containerWH === void 0 ? void 0 : containerWH.width) && pdfOriginalWH.length > 0 && (pdfRequest ? signerPos.map((data, key) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: key + }, checkSignedSigners(data)); + }) : placeholder // placeholder mobile + ? signerPos.map((data, ind) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: ind + }, data.placeHolder.map((placeData, index) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: index + }, placeData.pageNumber === pageNumber && placeData.pos.map(pos => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: pos.key + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Placeholder__WEBPACK_IMPORTED_MODULE_3__["default"], { + pos: pos, + setIsPageCopy: setIsPageCopy, + setSignKey: setSignKey, + handleDeleteSign: handleDeleteSign, + setIsStamp: setIsStamp, + handleTabDrag: handleTabDrag, + handleStop: handleStop, + handleSignYourselfImageResize: _constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleImageResize, + index: pageNumber, + xyPostion: signerPos, + setXyPostion: setSignerPos, + setSignerObjId: setSignerObjId, + data: data, + setIsResize: setIsResize, + setShowDropdown: setShowDropdown, + isShowBorder: true, + isPlaceholder: true, + setUniqueId: setUniqueId, + handleLinkUser: handleLinkUser, + handleUserName: handleUserName, + isSignYourself: false, + posWidth: posWidth, + posHeight: posHeight, + isDragging: isDragging, + setIsValidate: setIsValidate, + setWidgetType: setWidgetType, + setIsRadio: setIsRadio, + setIsCheckbox: setIsCheckbox, + setCurrWidgetsDetails: setCurrWidgetsDetails, + setSelectWidgetId: setSelectWidgetId, + selectWidgetId: selectWidgetId, + handleNameModal: handleNameModal, + setTempSignerId: setTempSignerId, + uniqueId: uniqueId, + handleTextSettingModal: handleTextSettingModal, + scale: scale, + containerWH: containerWH, + pdfOriginalWH: pdfOriginalWH, + pageNumber: pageNumber, + setIsSelectId: setIsSelectId + })); + })); + })); + }) : xyPostion.map((data, ind) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: ind + }, data.pageNumber === pageNumber && data.pos.map(pos => { + return pos && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Placeholder__WEBPACK_IMPORTED_MODULE_3__["default"], { + pos: pos, + setIsPageCopy: setIsPageCopy, + setSignKey: setSignKey, + handleDeleteSign: handleDeleteSign, + setIsStamp: setIsStamp, + handleTabDrag: handleTabDrag, + handleStop: handleStop, + handleSignYourselfImageResize: _constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleSignYourselfImageResize, + index: index, + xyPostion: xyPostion, + setXyPostion: setXyPostion, + containerWH: containerWH, + setIsSignPad: setIsSignPad, + isShowBorder: true, + isSignYourself: true, + posWidth: posWidth, + posHeight: posHeight, + pdfDetails: pdfDetails[0], + isDragging: isDragging, + setIsInitial: setIsInitial, + setWidgetType: setWidgetType, + setSelectWidgetId: setSelectWidgetId, + selectWidgetId: selectWidgetId, + handleUserName: handleUserName, + setIsCheckbox: setIsCheckbox, + setValidateAlert: setValidateAlert, + setCurrWidgetsDetails: setCurrWidgetsDetails, + handleTextSettingModal: handleTextSettingModal, + scale: scale, + pdfOriginalWH: pdfOriginalWH, + pageNumber: pageNumber + }); + })); + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex items-center justify-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_pdf__WEBPACK_IMPORTED_MODULE_5__["default"], { + onLoadError: () => { + setPdfLoad(false); + }, + loading: "Loading Document..", + onLoadSuccess: pageDetails + // ref={pdfRef}' + , + onClick: () => { + if (setSelectWidgetId) { + setSelectWidgetId(""); + } + }, + file: pdfUrl ? pdfUrl : pdfDetails[0] && pdfDetails[0].SignedUrl ? pdfDetails[0].SignedUrl : pdfDetails[0].URL + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_pdf__WEBPACK_IMPORTED_MODULE_6__["default"], { + key: index, + pageNumber: pageNumber, + width: containerWH.width, + renderAnnotationLayer: false, + renderTextLayer: false, + onGetAnnotationsError: error => { + console.log("annotation error", error); + } + })))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_scrollbars_custom__WEBPACK_IMPORTED_MODULE_1__["default"], { + style: { + position: "relative", + boxShadow: "rgba(17, 12, 46, 0.15) 0px 48px 100px 0px", + height: window.innerHeight + "px", + zIndex: 0 + }, + noScrollY: false, + noScrollX: scale === 1 ? true : false + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + width: (containerWH === null || containerWH === void 0 ? void 0 : containerWH.width) && (containerWH === null || containerWH === void 0 ? void 0 : containerWH.width) * scale + }, + ref: drop, + id: "container" + }, pdfLoad && (containerWH === null || containerWH === void 0 ? void 0 : containerWH.width) && pdfOriginalWH.length > 0 && (pdfRequest //pdf request sign flow + ? signerPos === null || signerPos === void 0 ? void 0 : signerPos.map((data, key) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: key + }, checkSignedSigners(data)); + }) : placeholder //placeholder and template flow + ? signerPos.map((data, ind) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: ind + }, data.placeHolder.map((placeData, index) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: index + }, placeData.pageNumber === pageNumber && placeData.pos.map(pos => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: pos.key + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Placeholder__WEBPACK_IMPORTED_MODULE_3__["default"], { + pos: pos, + setIsPageCopy: setIsPageCopy, + setSignKey: setSignKey, + handleDeleteSign: handleDeleteSign, + setIsStamp: setIsStamp, + handleTabDrag: handleTabDrag, + handleStop: handleStop, + handleSignYourselfImageResize: _constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleImageResize, + index: pageNumber, + xyPostion: signerPos, + setXyPostion: setSignerPos, + setSignerObjId: setSignerObjId, + data: data, + setIsResize: setIsResize, + setShowDropdown: setShowDropdown, + isShowBorder: true, + isPlaceholder: true, + setUniqueId: setUniqueId, + handleLinkUser: handleLinkUser, + handleUserName: handleUserName, + isSignYourself: false, + posWidth: posWidth, + posHeight: posHeight, + isDragging: isDragging, + setIsValidate: setIsValidate, + setWidgetType: setWidgetType, + setIsRadio: setIsRadio, + setIsCheckbox: setIsCheckbox, + setCurrWidgetsDetails: setCurrWidgetsDetails, + setSelectWidgetId: setSelectWidgetId, + selectWidgetId: selectWidgetId, + handleNameModal: handleNameModal, + setTempSignerId: setTempSignerId, + uniqueId: uniqueId, + handleTextSettingModal: handleTextSettingModal, + scale: scale, + containerWH: containerWH, + pdfOriginalWH: pdfOriginalWH, + pageNumber: pageNumber, + setIsSelectId: setIsSelectId + })); + })); + })); + }) : xyPostion.map((data, ind) => { + // signyourself flow + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: ind + }, data.pageNumber === pageNumber && data.pos.map(pos => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), { + key: pos.key + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Placeholder__WEBPACK_IMPORTED_MODULE_3__["default"], { + pos: pos, + setIsPageCopy: setIsPageCopy, + setSignKey: setSignKey, + handleDeleteSign: handleDeleteSign, + setIsStamp: setIsStamp, + handleTabDrag: handleTabDrag, + handleStop: (event, dragElement) => handleStop(event, dragElement, pos.type), + handleSignYourselfImageResize: _constant_Utils__WEBPACK_IMPORTED_MODULE_2__.handleSignYourselfImageResize, + index: index, + xyPostion: xyPostion, + setXyPostion: setXyPostion, + setIsSignPad: setIsSignPad, + isShowBorder: true, + isSignYourself: true, + posWidth: posWidth, + posHeight: posHeight, + pdfDetails: pdfDetails[0], + isDragging: isDragging, + setIsInitial: setIsInitial, + setWidgetType: setWidgetType, + setSelectWidgetId: setSelectWidgetId, + selectWidgetId: selectWidgetId, + handleUserName: handleUserName, + setIsCheckbox: setIsCheckbox, + setValidateAlert: setValidateAlert, + setCurrWidgetsDetails: setCurrWidgetsDetails, + handleTextSettingModal: handleTextSettingModal, + scale: scale, + containerWH: containerWH, + pdfOriginalWH: pdfOriginalWH, + pageNumber: pageNumber + })); + })); + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_pdf__WEBPACK_IMPORTED_MODULE_5__["default"], { + onLoadError: () => { + pdfLoad(false); + }, + loading: "Loading Document..", + onLoadSuccess: pageDetails, + onClick: () => { + if (setSelectWidgetId) { + setSelectWidgetId(""); + } + } + // ref={pdfRef} + , + file: pdfUrl ? pdfUrl : pdfDetails[0] && pdfDetails[0].SignedUrl ? pdfDetails[0].SignedUrl : pdfDetails[0].URL + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_pdf__WEBPACK_IMPORTED_MODULE_6__["default"], { + key: index, + width: containerWH.width, + scale: scale || 1, + className: "-z-[1]" // when user zoom-in in tablet widgets move backward that's why pass -z-[1] + , + pageNumber: pageNumber, + renderAnnotationLayer: false, + renderTextLayer: false, + onGetAnnotationsError: error => { + console.log("annotation error", error); + } + }))))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RenderPdf); + +/***/ }), + +/***/ "./src/components/pdf/SignPad.js": +/*!***************************************!*\ + !*** ./src/components/pdf/SignPad.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var react_signature_canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-signature-canvas */ "./node_modules/react-signature-canvas/build/index.js"); +/* harmony import */ var react_signature_canvas__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_signature_canvas__WEBPACK_IMPORTED_MODULE_1__); + + +function SignPad(_ref) { + let { + isSignPad, + isStamp, + setIsImageSelect, + onSaveSign, + setIsSignPad, + setImage, + isImageSelect, + imageRef, + onImageChange, + onSaveImage, + image, + defaultSign, + setSignature, + myInitial, + isInitial, + setIsInitial, + setIsStamp, + widgetType, + currWidgetsDetails, + setCurrWidgetsDetails + } = _ref; + const [penColor, setPenColor] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("blue"); + const allColor = ["blue", "red", "black"]; + const canvasRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); + const [isDefaultSign, setIsDefaultSign] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [isTab, setIsTab] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("draw"); + const [isSignImg, setIsSignImg] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [signValue, setSignValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [textWidth, setTextWidth] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); + const [textHeight, setTextHeight] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); + const [signatureType, setSignatureType] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("draw"); + const fontOptions = [{ + value: "Fasthand" + }, { + value: "Dancing Script" + }, { + value: "Cedarville Cursive" + }, { + value: "Delicious Handrawn" + } + // Add more font options as needed + ]; + const [fontSelect, setFontSelect] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(fontOptions[0].value); + const senderUser = localStorage.getItem("Parse/".concat(localStorage.getItem("parseAppId"), "/currentUser")) && localStorage.getItem("Parse/".concat(localStorage.getItem("parseAppId"), "/currentUser")); + const jsonSender = JSON.parse(senderUser); + const currentUserName = jsonSender && jsonSender.name; + + //function for clear signature image + const handleClear = () => { + setCurrWidgetsDetails({}); + if (isTab === "draw") { + if (canvasRef.current) { + canvasRef.current.clear(); + } else if (isStamp) { + setImage(""); + } + setIsSignImg(""); + } else if (isTab === "uploadImage") { + setImage(""); + } + // setIsInitial(false); + }; + //function for set signature url + const handleSignatureChange = data => { + setSignature(data); + setIsSignImg(data); + }; + //save button component + const SaveBtn = () => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, (isTab === "draw" || isTab === "uploadImage") && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-ghost mr-1 mt-[2px]", + onClick: () => handleClear() + }, "Clear"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => { + setCurrWidgetsDetails({}); + if (!image) { + if (isTab === "mysignature") { + setIsSignImg(""); + if (isInitial) { + onSaveSign(signatureType, "initials"); + } else { + onSaveSign(null, "default"); + } + } else { + if (isTab === "type") { + setIsSignImg(""); + onSaveSign(null, false, textWidth, textHeight); + } else { + setIsSignImg(""); + canvasRef.current.clear(); + onSaveSign(signatureType); + } + } + setPenColor("blue"); + } else { + setIsSignImg(""); + onSaveImage(signatureType); + } + setIsSignPad(false); + setIsInitial(false); + setIsImageSelect(false); + setIsDefaultSign(false); + setImage(); + setIsTab("draw"); + setSignValue(""); + setIsStamp(false); + }, + type: "button", + className: "".concat(isSignImg || image || isDefaultSign || textWidth ? "" : "pointer-events-none", " op-btn op-btn-primary shadow-lg"), + disabled: isTab === "draw" && isSignImg || isTab === "image" && image || isTab === "mysignature" && isDefaultSign || isTab === "type" && textWidth ? false : image ? false : true + }, "Save")); + }; + //useEffect for set already draw or save signature url/text url of signature text type and draw type for initial type and signature type widgets + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + if (currWidgetsDetails && canvasRef.current) { + const isWidgetType = currWidgetsDetails === null || currWidgetsDetails === void 0 ? void 0 : currWidgetsDetails.type; + const signatureType = currWidgetsDetails === null || currWidgetsDetails === void 0 ? void 0 : currWidgetsDetails.signatureType; + const url = currWidgetsDetails === null || currWidgetsDetails === void 0 ? void 0 : currWidgetsDetails.SignUrl; + + //checking widget type and draw type signature url + if (isInitial) { + if (isWidgetType === "initials" && signatureType === "draw" && url) { + canvasRef.current.fromDataURL(url); + } + } else if (isWidgetType === "signature" && signatureType === "draw" && url) { + canvasRef.current.fromDataURL(url); + } + } + const trimmedName = currentUserName && currentUserName.trim(); + const firstCharacter = trimmedName === null || trimmedName === void 0 ? void 0 : trimmedName.charAt(0); + const userName = isInitial ? firstCharacter : currentUserName; + setSignValue(userName); + setFontSelect("Fasthand"); + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isSignPad]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + const loadFont = async () => { + try { + await document.fonts.load("20px ".concat(fontSelect)); + const selectFontSTyle = fontOptions.find(font => font.value === fontSelect); + setFontSelect((selectFontSTyle === null || selectFontSTyle === void 0 ? void 0 : selectFontSTyle.value) || fontOptions[0].value); + } catch (error) { + console.error("Error loading font:", error); + } + }; + loadFont(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [fontSelect]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + // Load the default signature after the component mounts + if (canvasRef.current) { + canvasRef.current.fromDataURL(isSignImg); + } + if (isTab === "type") { + const trimmedName = signValue ? signValue.trim() : currentUserName.trim(); + const firstCharacter = trimmedName.charAt(0); + const userName = isInitial ? firstCharacter : signValue; + setSignValue(userName); + convertToImg(fontSelect, userName); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isTab]); + //function for convert input text value in image + const convertToImg = async (fontStyle, text, color) => { + //get text content to convert in image + const textContent = text; + const fontfamily = fontStyle ? fontStyle : fontSelect ? fontSelect : "Fasthand"; + + //creating span for getting text content width + const span = document.createElement("span"); + span.textContent = textContent; + span.style.font = "20px ".concat(fontfamily); // here put your text size and font family + span.style.color = color ? color : penColor; + span.style.display = "hidden"; + document.body.appendChild(span); // Replace 'container' with the ID of the container element + + //create canvas to render text in canvas and convert in image + const canvasElement = document.createElement("canvas"); + // Draw the text content on the canvas + const ctx = canvasElement.getContext("2d"); + const pixelRatio = window.devicePixelRatio || 1; + const width = span.offsetWidth; + const height = span.offsetHeight; + setTextWidth(width); + setTextHeight(height); + const font = span.style["font"]; + // Set the canvas dimensions to match the span + canvasElement.width = width * pixelRatio; + canvasElement.height = height * pixelRatio; + + // You can customize text styles if needed + ctx.font = font; + ctx.fillStyle = color ? color : penColor; // Set the text color + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + ctx.scale(pixelRatio, pixelRatio); + // Draw the content of the span onto the canvas + ctx.fillText(span.textContent, width / 2, height / 2); // Adjust the x,y-coordinate as needed + //remove span tag + document.body.removeChild(span); + // Convert the canvas to image data + const dataUrl = canvasElement.toDataURL("image/png"); + setSignature(dataUrl); + }; + const PenColorComponent = props => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row items-start" + }, allColor.map((data, key) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + style: { + margin: "5px", + color: data, + borderBottom: key === 0 && penColor === "blue" ? "2px solid blue" : key === 1 && penColor === "red" ? "2px solid red" : key === 2 && penColor === "black" ? "2px solid black" : "2px solid white" + }, + onClick: () => { + (props === null || props === void 0 ? void 0 : props.convertToImg) && (props === null || props === void 0 ? void 0 : props.convertToImg(fontSelect, signValue, data)); + if (key === 0) { + setPenColor("blue"); + } else if (key === 1) { + setPenColor("red"); + } else if (key === 2) { + setPenColor("black"); + } + }, + key: key, + className: "fa-light fa-pen-nib", + width: 20, + height: 20 + }); + })); + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, isSignPad && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "op-modal op-modal-open" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "op-modal-box px-[13px] pt-2 pb-0" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-between text-base-content items-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[1.2rem]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row justify-between mt-[3px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row justify-between gap-[5px] md:gap-[8px] text-[11px] md:text-base" + }, isStamp ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "op-link-primary op-link" + }, widgetType === "image" ? "Upload image" : "Upload stamp image") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + onClick: () => { + setIsDefaultSign(false); + setIsImageSelect(false); + setIsTab("draw"); + setImage(); + if (isSignImg) { + setSignature(isSignImg); + } + }, + className: "".concat(isTab === "draw" ? "op-link-primary" : "no-underline", " op-link underline-offset-8 ml-[2px]") + }, "Draw")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + onClick: () => { + setIsDefaultSign(false); + setIsImageSelect(true); + setIsTab("uploadImage"); + setSignatureType(""); + }, + className: "".concat(isTab === "uploadImage" ? "op-link-primary" : "no-underline", " op-link underline-offset-8 ml-[2px]") + }, "Upload Image")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + onClick: () => { + setIsDefaultSign(false); + setIsImageSelect(false); + setIsTab("type"); + setSignatureType(""); + setImage(); + }, + className: "".concat(isTab === "type" ? "op-link-primary" : "no-underline", " op-link underline-offset-8 ml-[2px]") + }, "Type")), !isInitial && defaultSign ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + onClick: () => { + setIsDefaultSign(true); + setIsImageSelect(true); + setIsTab("mysignature"); + setSignatureType(""); + setImage(); + }, + className: "".concat(isTab === "mysignature" ? "op-link-primary" : "no-underline", " op-link underline-offset-8 ml-[2px]") + }, "My Signature")) : isInitial && myInitial && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + onClick: () => { + setIsDefaultSign(true); + setIsImageSelect(true); + setIsTab("mysignature"); + setSignatureType(""); + setImage(); + }, + className: "".concat(isTab === "mysignature" ? "op-link-primary" : "no-underline", " op-link underline-offset-8 ml-[2px]") + }, "My Initials")))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[1.5rem] cursor-pointer", + onClick: () => { + setPenColor("blue"); + setIsSignPad(false); + setIsInitial(false); + setIsImageSelect(false); + setIsDefaultSign(false); + setImage(); + setIsTab("draw"); + setSignatureType("draw"); + setSignValue(""); + setIsStamp(false); + } + }, "\xD7")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "p-[20px] h-full" + }, isDefaultSign ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + border: "1.3px solid #007bff", + borderRadius: "2px", + display: "flex", + flexDirection: "column", + justifyContent: "center", + alignItems: "center", + marginBottom: 6, + cursor: "pointer" + }, + className: isInitial ? "intialSignatureCanvas" : "signatureCanvas" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", { + alt: "stamp img", + className: "w-full h-full object-contain bg-white", + draggable: "false", + src: isInitial ? myInitial : defaultSign + }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-end" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(SaveBtn, null))) : isImageSelect || isStamp ? !image ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + border: "1.3px solid #007bff", + borderRadius: "2px", + display: "flex", + flexDirection: "column", + justifyContent: "center", + alignItems: "center", + marginBottom: 6, + cursor: "pointer" + }, + className: isInitial ? "intialSignatureCanvas" : "signatureCanvas", + onClick: () => imageRef.current.click() + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + type: "file", + onChange: onImageChange, + className: "filetype", + accept: "image/png,image/jpeg", + ref: imageRef, + hidden: true + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-cloud-upload-alt uploadImgLogo" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "text-[10px]" + }, "Upload"))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + border: "1.3px solid #007bff", + borderRadius: "2px", + marginBottom: 6, + overflow: "hidden" + }, + className: isInitial ? "intialSignatureCanvas" : "signatureCanvas" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", { + alt: "print img", + ref: imageRef, + src: image.src, + draggable: "false", + className: " object-contain h-full w-full" + }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-end" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(SaveBtn, null))) : isTab === "type" ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-between items-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "mr-[5px] text-[12px]" + }, isInitial ? "Initials" : "Signature", ":"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + maxLength: isInitial ? 3 : 30, + style: { + fontFamily: fontSelect, + color: penColor + }, + type: "text", + className: "ml-1 op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content w-full text-[20px]", + placeholder: "Your signature", + value: signValue, + onChange: e => { + setSignValue(e.target.value); + convertToImg(fontSelect, e.target.value); + } + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "border-[1px] border-[#d6d3d3] mt-[10px] ml-[5px]" + }, fontOptions.map((font, ind) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + key: ind, + style: { + cursor: "pointer", + fontFamily: font.value, + backgroundColor: fontSelect === font.value && "rgb(206 225 247)" + }, + onClick: () => { + setFontSelect(font.value); + convertToImg(font.value, signValue); + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + padding: "5px 10px 5px 10px", + fontSize: "20px", + color: penColor + } + }, signValue ? signValue : "Your signature")); + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row justify-between mt-[10px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PenColorComponent, { + convertToImg: convertToImg + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(SaveBtn, null))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react_signature_canvas__WEBPACK_IMPORTED_MODULE_1___default()), { + ref: canvasRef, + penColor: penColor, + canvasProps: { + className: isInitial ? "intialSignatureCanvas" : "signatureCanvas", + style: { + border: "1.6px solid #007bff", + borderRadius: "2px" + } + }, + backgroundColor: "rgb(255, 255, 255)", + onEnd: () => { + var _canvasRef$current; + return handleSignatureChange((_canvasRef$current = canvasRef.current) === null || _canvasRef$current === void 0 ? void 0 : _canvasRef$current.toDataURL()); + }, + dotSize: 1 + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-row justify-between mt-[10px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PenColorComponent, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(SaveBtn, null))))))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SignPad); + +/***/ }), + +/***/ "./src/components/pdf/SignerListComponent.js": +/*!***************************************************!*\ + !*** ./src/components/pdf/SignerListComponent.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _constant_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../constant/Utils */ "./src/constant/Utils.js"); + + +function SignerListComponent(props) { + var _props$obj, _props$obj2, _props$obj3, _props$obj4, _props$obj5, _props$obj6, _props$obj7; + const checkSignerBackColor = obj => { + if (obj) { + let data = ""; + if (obj !== null && obj !== void 0 && obj.Id) { + data = props.signerPos.filter(data => data.Id === obj.Id); + } else { + data = props.signerPos.filter(data => data.signerObjId === obj.objectId); + } + return data && data.length > 0 && data[0].blockColor; + } + }; + const checkUserNameColor = obj => { + const getBackColor = checkSignerBackColor(obj); + if (getBackColor) { + const color = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.darkenColor)(getBackColor, 0.4); + return color; + } else { + return "#abd1d0"; + } + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "rounded-xl mx-1 flex flex-row items-center py-[10px] mt-1", + style: { + background: checkSignerBackColor(props.obj) + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + background: checkUserNameColor(props.obj) + }, + className: "flex w-[30px] h-[30px] rounded-full justify-center items-center mx-1" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "text-[12px] text-center font-bold text-black uppercase" + }, (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_1__.getFirstLetter)(((_props$obj = props.obj) === null || _props$obj === void 0 ? void 0 : _props$obj.Name) || ((_props$obj2 = props.obj) === null || _props$obj2 === void 0 ? void 0 : _props$obj2.email) || ((_props$obj3 = props.obj) === null || _props$obj3 === void 0 ? void 0 : _props$obj3.Role)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-col" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "text-[12px] font-bold text-[#424242] w-[100px] whitespace-nowrap overflow-hidden text-ellipsis" + }, ((_props$obj4 = props.obj) === null || _props$obj4 === void 0 ? void 0 : _props$obj4.Name) || (props === null || props === void 0 || (_props$obj5 = props.obj) === null || _props$obj5 === void 0 ? void 0 : _props$obj5.Role)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "text-[10px] font-medium text-[#424242] w-[100px] whitespace-nowrap overflow-hidden text-ellipsis" + }, ((_props$obj6 = props.obj) === null || _props$obj6 === void 0 ? void 0 : _props$obj6.Email) || ((_props$obj7 = props.obj) === null || _props$obj7 === void 0 ? void 0 : _props$obj7.email)))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SignerListComponent); + +/***/ }), + +/***/ "./src/components/pdf/VerifyEmail.js": +/*!*******************************************!*\ + !*** ./src/components/pdf/VerifyEmail.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _primitives_Loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../primitives/Loader */ "./src/primitives/Loader.js"); + + +function VerifyEmail(props) { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("dialog", { + className: "op-modal op-modal-open absolute z-[1999]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "md:w-[40%] w-[80%] op-modal-box p-0 overflow-y-auto hide-scrollbar text-sm" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", { + className: "font-bold text-lg pt-[15px] px-[20px] text-base-content" + }, "OTP verification"), props.isVerifyModal ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("form", { + onSubmit: e => { + props.setIsVerifyModal(false); + props.handleVerifyEmail(e); + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "px-6 py-3 text-base-content" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { + className: "mb-2" + }, "Enter OTP"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + required: true, + type: "tel", + pattern: "[0-9]{4}", + className: "w-full op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content text-xs", + placeholder: "Enter OTP received over email", + value: props.otp, + onChange: e => props.setOtp(e.target.value) + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "px-6 my-3" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "submit", + className: "op-btn op-btn-primary" + }, "Verify"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-secondary ml-2", + onClick: e => props.handleResend(e) + }, "Resend"))) : props.otpLoader ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "h-[150px] flex items-center justify-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_Loader__WEBPACK_IMPORTED_MODULE_1__["default"], null)) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "px-6 py-3 text-base-content" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { + className: "mb-2 text-sm" + }, "Please verify your email !"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "px-0 mt-3" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-primary", + type: "submit", + onClick: () => { + props.handleVerifyBtn(); + } + }, "Send OTP"))))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VerifyEmail); + +/***/ }), + +/***/ "./src/constant/Utils.js": +/*!*******************************!*\ + !*** ./src/constant/Utils.js ***! + \*******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ addDefaultSignatureImg: () => (/* binding */ addDefaultSignatureImg), +/* harmony export */ addInitialData: () => (/* binding */ addInitialData), +/* harmony export */ addWidgetOptions: () => (/* binding */ addWidgetOptions), +/* harmony export */ addZIndex: () => (/* binding */ addZIndex), +/* harmony export */ calculateImgAspectRatio: () => (/* binding */ calculateImgAspectRatio), +/* harmony export */ calculateInitialWidthHeight: () => (/* binding */ calculateInitialWidthHeight), +/* harmony export */ changeImageWH: () => (/* binding */ changeImageWH), +/* harmony export */ checkIsSubscribed: () => (/* binding */ checkIsSubscribed), +/* harmony export */ checkIsSubscribedTeam: () => (/* binding */ checkIsSubscribedTeam), +/* harmony export */ color: () => (/* binding */ color), +/* harmony export */ contactBook: () => (/* binding */ contactBook), +/* harmony export */ contractDocument: () => (/* binding */ contractDocument), +/* harmony export */ contractUsers: () => (/* binding */ contractUsers), +/* harmony export */ convertPNGtoJPEG: () => (/* binding */ convertPNGtoJPEG), +/* harmony export */ convertPdfArrayBuffer: () => (/* binding */ convertPdfArrayBuffer), +/* harmony export */ copytoData: () => (/* binding */ copytoData), +/* harmony export */ createDocument: () => (/* binding */ createDocument), +/* harmony export */ darkenColor: () => (/* binding */ darkenColor), +/* harmony export */ defaultWidthHeight: () => (/* binding */ defaultWidthHeight), +/* harmony export */ embedDocId: () => (/* binding */ embedDocId), +/* harmony export */ fetchImageBase64: () => (/* binding */ fetchImageBase64), +/* harmony export */ fetchSubscription: () => (/* binding */ fetchSubscription), +/* harmony export */ findContact: () => (/* binding */ findContact), +/* harmony export */ fontColorArr: () => (/* binding */ fontColorArr), +/* harmony export */ fontsizeArr: () => (/* binding */ fontsizeArr), +/* harmony export */ getAppLogo: () => (/* binding */ getAppLogo), +/* harmony export */ getBase64FromIMG: () => (/* binding */ getBase64FromIMG), +/* harmony export */ getBase64FromUrl: () => (/* binding */ getBase64FromUrl), +/* harmony export */ getDate: () => (/* binding */ getDate), +/* harmony export */ getDrive: () => (/* binding */ getDrive), +/* harmony export */ getFileName: () => (/* binding */ getFileName), +/* harmony export */ getFirstLetter: () => (/* binding */ getFirstLetter), +/* harmony export */ getMonth: () => (/* binding */ getMonth), +/* harmony export */ getTenantDetails: () => (/* binding */ getTenantDetails), +/* harmony export */ getWidgetType: () => (/* binding */ getWidgetType), +/* harmony export */ getYear: () => (/* binding */ getYear), +/* harmony export */ handleCopyNextToWidget: () => (/* binding */ handleCopyNextToWidget), +/* harmony export */ handleDownloadCertificate: () => (/* binding */ handleDownloadCertificate), +/* harmony export */ handleDownloadPdf: () => (/* binding */ handleDownloadPdf), +/* harmony export */ handleImageResize: () => (/* binding */ handleImageResize), +/* harmony export */ handleSendOTP: () => (/* binding */ handleSendOTP), +/* harmony export */ handleSignYourselfImageResize: () => (/* binding */ handleSignYourselfImageResize), +/* harmony export */ handleToPrint: () => (/* binding */ handleToPrint), +/* harmony export */ isMobile: () => (/* binding */ isMobile), +/* harmony export */ isTabAndMobile: () => (/* binding */ isTabAndMobile), +/* harmony export */ multiSignEmbed: () => (/* binding */ multiSignEmbed), +/* harmony export */ nameColor: () => (/* binding */ nameColor), +/* harmony export */ onChangeHeightOfTextArea: () => (/* binding */ onChangeHeightOfTextArea), +/* harmony export */ onChangeInput: () => (/* binding */ onChangeInput), +/* harmony export */ onImageSelect: () => (/* binding */ onImageSelect), +/* harmony export */ onSaveImage: () => (/* binding */ onSaveImage), +/* harmony export */ onSaveSign: () => (/* binding */ onSaveSign), +/* harmony export */ openInNewTab: () => (/* binding */ openInNewTab), +/* harmony export */ pdfNewWidthFun: () => (/* binding */ pdfNewWidthFun), +/* harmony export */ placeholderHeight: () => (/* binding */ placeholderHeight), +/* harmony export */ placeholderWidth: () => (/* binding */ placeholderWidth), +/* harmony export */ radioButtonWidget: () => (/* binding */ radioButtonWidget), +/* harmony export */ randomId: () => (/* binding */ randomId), +/* harmony export */ range: () => (/* binding */ range), +/* harmony export */ replaceMailVaribles: () => (/* binding */ replaceMailVaribles), +/* harmony export */ resizeBorderExtraWidth: () => (/* binding */ resizeBorderExtraWidth), +/* harmony export */ sanitizeFileName: () => (/* binding */ sanitizeFileName), +/* harmony export */ signPdfFun: () => (/* binding */ signPdfFun), +/* harmony export */ textInputWidget: () => (/* binding */ textInputWidget), +/* harmony export */ textWidget: () => (/* binding */ textWidget), +/* harmony export */ toDataUrl: () => (/* binding */ toDataUrl), +/* harmony export */ urlValidator: () => (/* binding */ urlValidator), +/* harmony export */ widgets: () => (/* binding */ widgets) +/* harmony export */ }); +/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js"); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js"); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./const */ "./src/constant/const.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var pdf_lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! pdf-lib */ "./node_modules/pdf-lib/es/index.js"); +/* harmony import */ var parse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! parse */ "./node_modules/parse/index.js"); +/* harmony import */ var parse__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(parse__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _appinfo__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./appinfo */ "./src/constant/appinfo.js"); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! file-saver */ "./node_modules/file-saver/dist/FileSaver.min.js"); +/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var print_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! print-js */ "./node_modules/print-js/dist/print.js"); +/* harmony import */ var print_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(print_js__WEBPACK_IMPORTED_MODULE_7__); + + + + + + + + + +const fontsizeArr = [7, 8, 9, 10, 11, 12, 13, 14, 15, 18]; +const fontColorArr = ["red", "black", "blue", "yellow"]; +const isMobile = window.innerWidth < 767; +const isTabAndMobile = window.innerWidth < 1023; +const textInputWidget = "text input"; +const textWidget = "text"; +const radioButtonWidget = "radio button"; +const openInNewTab = (url, target) => { + if (target) { + window.open(url, target, "noopener,noreferrer"); + } else { + window.open(url, "_blank", "noopener,noreferrer"); + } +}; +async function fetchSubscription(extUserId, contactObjId) { + let isGuestSign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + try { + const Extand_Class = localStorage.getItem("Extand_Class"); + const extClass = Extand_Class && JSON.parse(Extand_Class); + // console.log("extClass ", extClass); + let extUser; + if (extClass && extClass.length > 0) { + extUser = extClass[0].objectId; + } else { + extUser = extUserId; + } + const baseURL = localStorage.getItem("baseUrl"); + const url = "".concat(baseURL, "functions/getsubscriptions"); + const headers = { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessionToken: localStorage.getItem("accesstoken") + }; + const params = isGuestSign ? { + contactId: contactObjId + } : { + extUserId: extUser + }; + const tenatRes = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post(url, params, { + headers: headers + }); + let plan, status, billingDate; + if (isGuestSign) { + var _tenatRes$data, _tenatRes$data2; + plan = (_tenatRes$data = tenatRes.data) === null || _tenatRes$data === void 0 || (_tenatRes$data = _tenatRes$data.result) === null || _tenatRes$data === void 0 || (_tenatRes$data = _tenatRes$data.result) === null || _tenatRes$data === void 0 ? void 0 : _tenatRes$data.plan; + status = (_tenatRes$data2 = tenatRes.data) === null || _tenatRes$data2 === void 0 || (_tenatRes$data2 = _tenatRes$data2.result) === null || _tenatRes$data2 === void 0 || (_tenatRes$data2 = _tenatRes$data2.result) === null || _tenatRes$data2 === void 0 ? void 0 : _tenatRes$data2.isSubscribed; + } else { + var _tenatRes$data3, _tenatRes$data4; + plan = (_tenatRes$data3 = tenatRes.data) === null || _tenatRes$data3 === void 0 || (_tenatRes$data3 = _tenatRes$data3.result) === null || _tenatRes$data3 === void 0 || (_tenatRes$data3 = _tenatRes$data3.result) === null || _tenatRes$data3 === void 0 ? void 0 : _tenatRes$data3.PlanCode; + billingDate = (_tenatRes$data4 = tenatRes.data) === null || _tenatRes$data4 === void 0 || (_tenatRes$data4 = _tenatRes$data4.result) === null || _tenatRes$data4 === void 0 || (_tenatRes$data4 = _tenatRes$data4.result) === null || _tenatRes$data4 === void 0 || (_tenatRes$data4 = _tenatRes$data4.Next_billing_date) === null || _tenatRes$data4 === void 0 ? void 0 : _tenatRes$data4.iso; + } + return { + plan, + billingDate, + status + }; + } catch (err) { + console.log("Err in fetch subscription", err); + return { + plan: "", + billingDate: "" + }; + } +} +//function to get subcripition details from subscription class +async function checkIsSubscribed() { + try { + const res = await fetchSubscription(); + if (res.plan === "freeplan") { + return false; + } else if (res.billingDate) { + if (new Date(res.billingDate) > new Date()) { + return true; + } else { + return false; + } + } else { + return false; + } + } catch (err) { + console.log("Err in fetch subscription", err); + return false; + } +} + +//function to get subcripition details from subscription class +async function checkIsSubscribedTeam() { + try { + const res = await fetchSubscription(); + if (res.plan === "freeplan") { + return false; + } else if (res.billingDate) { + const plan = res.plan === "team-weekly" || res.plan === "team-yearly" || res.plan === "teams-monthly" || res.plan === "teams-yearly" || res.plan === "enterprise-monthly" || res.plan === "enterprise-yearly"; + if (plan && new Date(res.billingDate) > new Date()) { + return true; + } else { + return false; + } + } else { + return false; + } + } catch (err) { + console.log("Err in fetch subscription", err); + return false; + } +} +const color = ["#93a3db", "#e6c3db", "#c0e3bc", "#bce3db", "#b8ccdb", "#ceb8db", "#ffccff", "#99ffcc", "#cc99ff", "#ffcc99", "#66ccff", "#ffffcc"]; +const nameColor = ["#304fbf", "#7d5270", "#5f825b", "#578077", "#576e80", "#6d527d", "#cc00cc", "#006666", "#cc00ff", "#ff9900", "#336699", "#cc9900"]; +const toDataUrl = file => { + return new Promise(resolve => { + const reader = new FileReader(); + reader.readAsDataURL(file); + reader.onloadend = e => { + resolve(e.target.result); + }; + }); +}; + +//function for getting document details for getDrive cloud function +const getDrive = async function (documentId) { + let skip = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + let limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100; + const data = { + docId: documentId && documentId, + limit: limit, + skip: skip + }; + const driveDeatils = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post("".concat(localStorage.getItem("baseUrl"), "functions/getDrive"), data, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessiontoken: localStorage.getItem("accesstoken") + } + }).then(Listdata => { + const json = Listdata.data; + if (json && json.result.error) { + return json; + } else if (json && json.result) { + const data = json.result; + return data; + } else { + return []; + } + }).catch(err => { + console.log("Err ", err); + return "Error: Something went wrong!"; + }); + return driveDeatils; +}; + +// `pdfNewWidthFun` function is used to calculate pdf width to render in middle container +const pdfNewWidthFun = divRef => { + const pdfWidth = divRef.current.offsetWidth; + return pdfWidth; +}; + +//`contractUsers` function is used to get contract_User details +const contractUsers = async email => { + const data = { + email: email + }; + const userDetails = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post("".concat(localStorage.getItem("baseUrl"), "functions/getUserDetails"), data, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessionToken: localStorage.getItem("accesstoken") + } + }).then(Listdata => { + const json = Listdata.data; + let data = []; + if (json && json.result) { + data.push(json.result); + } + return data; + }).catch(err => { + console.log("Err ", err); + return "Error: Something went wrong!"; + }); + return userDetails; +}; + +//function for resize image and update width and height for mulitisigners +const handleImageResize = (ref, key, signerPos, setSignerPos, pageNumber, containerScale, scale, signerId, showResize) => { + const filterSignerPos = signerPos.filter(data => data.Id === signerId); + if (filterSignerPos.length > 0) { + const getPlaceHolder = filterSignerPos[0].placeHolder; + const getPageNumer = getPlaceHolder.filter(data => data.pageNumber === pageNumber); + if (getPageNumer.length > 0) { + const getXYdata = getPageNumer[0].pos; + const getPosData = getXYdata; + const addSignPos = getPosData.map(url => { + if (url.key === key) { + return { + ...url, + Width: ref.offsetWidth / (containerScale * scale), + Height: ref.offsetHeight / (containerScale * scale), + IsResize: showResize ? true : false + }; + } + return url; + }); + const newUpdateSignPos = getPlaceHolder.map(obj => { + if (obj.pageNumber === pageNumber) { + return { + ...obj, + pos: addSignPos + }; + } + return obj; + }); + const newUpdateSigner = signerPos.map(obj => { + if (obj.Id === signerId) { + return { + ...obj, + placeHolder: newUpdateSignPos + }; + } + return obj; + }); + setSignerPos(newUpdateSigner); + } + } +}; +const widgets = [{ + type: "signature", + icon: "fa-light fa-pen-nib", + iconSize: "20px" +}, { + type: "stamp", + icon: "fa-light fa-stamp", + iconSize: "19px" +}, { + type: "initials", + icon: "fa-light fa-signature", + iconSize: "15px" +}, { + type: "name", + icon: "fa-light fa-user", + iconSize: "21px" +}, { + type: "job title", + icon: "fa-light fa-address-card", + iconSize: "17px" +}, { + type: "company", + icon: "fa-light fa-building", + iconSize: "25px" +}, { + type: "date", + icon: "fa-light fa-calendar-days", + iconSize: "20px" +}, { + type: textWidget, + icon: "fa-light fa-text-width", + iconSize: "20px" +}, { + type: textInputWidget, + icon: "fa-light fa-font", + iconSize: "21px" +}, { + type: "checkbox", + icon: "fa-light fa-square-check", + iconSize: "22px" +}, { + type: "dropdown", + icon: "fa-light fa-circle-chevron-down", + iconSize: "19px" +}, { + type: radioButtonWidget, + icon: "fa-light fa-circle-dot", + iconSize: "20px" +}, { + type: "image", + icon: "fa-light fa-image", + iconSize: "20px" +}, { + type: "email", + icon: "fa-light fa-envelope", + iconSize: "20px" +}]; +const getDate = () => { + const date = new Date(); + const milliseconds = date.getTime(); + const newDate = moment__WEBPACK_IMPORTED_MODULE_0___default()(milliseconds).format("MM/DD/YYYY"); + return newDate; +}; +const addWidgetOptions = type => { + const defaultOpt = { + name: "", + status: "required" + }; + switch (type) { + case "signature": + return defaultOpt; + case "stamp": + return defaultOpt; + case "checkbox": + return { + ...defaultOpt, + options: { + isReadOnly: false, + isHideLabel: false + } + }; + case textInputWidget: + return { + ...defaultOpt + }; + case "initials": + return defaultOpt; + case "name": + return { + ...defaultOpt + }; + case "company": + return { + ...defaultOpt + }; + case "job title": + return { + ...defaultOpt + }; + case "date": + return { + ...defaultOpt, + response: getDate(), + validation: { + format: "MM/dd/yyyy", + type: "date-format" + } + }; + case "image": + return defaultOpt; + case "email": + return { + ...defaultOpt, + validation: { + type: "email", + pattern: "" + } + }; + case "dropdown": + return defaultOpt; + case radioButtonWidget: + return { + ...defaultOpt, + values: [], + isReadOnly: false, + isHideLabel: false + }; + case textWidget: + return defaultOpt; + default: + return {}; + } +}; +const getWidgetType = item => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { + className: "op-btn w-fit md:w-[100%] op-btn-primary op-btn-outline op-btn-sm focus:outline-none outline outline-[1.5px] ml-[6px] md:ml-0 p-0 overflow-hidden" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { + className: "w-full h-full flex md:justify-between items-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { + className: "flex justify-start items-center text-[13px] ml-1" + }, !isMobile && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("i", { + className: "fa-light fa-grip-vertical ml-[3px]" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("span", { + className: "md:inline-block text-center text-[15px] ml-[5px] font-semibold pr-1 md:pr-0" + }, item.type)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { + className: "text-[20px] op-btn op-btn-primary rounded-none w-[40px] h-full flex justify-center items-center" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("i", { + className: item.icon + })))); +}; +const defaultWidthHeight = type => { + switch (type) { + case "signature": + return { + width: 150, + height: 60 + }; + case "stamp": + return { + width: 150, + height: 60 + }; + case "checkbox": + return { + width: 15, + height: 15 + }; + case textInputWidget: + return { + width: 150, + height: 25 + }; + case "dropdown": + return { + width: 120, + height: 22 + }; + case "initials": + return { + width: 50, + height: 50 + }; + case "name": + return { + width: 150, + height: 25 + }; + case "company": + return { + width: 150, + height: 25 + }; + case "job title": + return { + width: 150, + height: 25 + }; + case "date": + return { + width: 100, + height: 20 + }; + case "image": + return { + width: 70, + height: 70 + }; + case "email": + return { + width: 150, + height: 20 + }; + case radioButtonWidget: + return { + width: 5, + height: 10 + }; + case textWidget: + return { + width: 150, + height: 25 + }; + default: + return { + width: 150, + height: 60 + }; + } +}; +const resizeBorderExtraWidth = () => { + return 20; +}; +async function getBase64FromUrl(url) { + const data = await fetch(url); + const blob = await data.blob(); + return new Promise(resolve => { + const reader = new FileReader(); + reader.readAsDataURL(blob); + reader.onloadend = function () { + const pdfBase = this.result; + const suffixbase64 = pdfBase.split(",").pop(); + resolve(suffixbase64); + }; + }); +} +async function getBase64FromIMG(url) { + const data = await fetch(url); + const blob = await data.blob(); + return new Promise(resolve => { + const reader = new FileReader(); + reader.readAsDataURL(blob); + reader.onloadend = function () { + const pdfBase = this.result; + resolve(pdfBase); + }; + }); +} +//function for convert signature png base64 url to jpeg base64 +const convertPNGtoJPEG = base64Data => { + return new Promise((resolve, reject) => { + const canvas = document.createElement("canvas"); + const img = new Image(); + img.src = base64Data; + img.onload = () => { + canvas.width = img.width; + canvas.height = img.height; + const ctx = canvas.getContext("2d"); + ctx.fillStyle = "#ffffff"; // white color + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.drawImage(img, 0, 0); + // Convert to JPEG by using the canvas.toDataURL() method + const jpegBase64Data = canvas.toDataURL("image/jpeg"); + resolve(jpegBase64Data); + }; + img.onerror = error => { + reject(error); + }; + }); +}; + +//function for resize image and update width and height for sign-yourself +const handleSignYourselfImageResize = (ref, key, xyPostion, setXyPostion, index, containerScale, scale) => { + const getXYdata = xyPostion[index].pos; + const getPosData = getXYdata; + const addSign = getPosData.map(url => { + if (url.key === key) { + return { + ...url, + Width: ref.offsetWidth / (scale * containerScale), + Height: ref.offsetHeight / (scale * containerScale), + IsResize: true + }; + } + return url; + }); + const newUpdateUrl = xyPostion.map((obj, ind) => { + if (ind === index) { + return { + ...obj, + pos: addSign + }; + } + return obj; + }); + setXyPostion(newUpdateUrl); +}; + +//function for call cloud function signPdf and generate digital signature +const signPdfFun = async (base64Url, documentId, signerObjectId, setIsAlert, objectId, isSubscribed, activeMailAdapter, xyPosition) => { + let singleSign, + isCustomCompletionMail = false; + try { + //get tenant details + const tenantDetails = await getTenantDetails(objectId); + if (tenantDetails && tenantDetails === "user does not exist!") { + alert("User does not exist"); + } else { + if (tenantDetails !== null && tenantDetails !== void 0 && tenantDetails.CompletionBody && tenantDetails !== null && tenantDetails !== void 0 && tenantDetails.CompletionSubject && (!_const__WEBPACK_IMPORTED_MODULE_1__.isEnableSubscription || isSubscribed)) { + isCustomCompletionMail = true; + } + } + + // below for loop is used to get first signature of user to send if to signpdf + // for adding it in completion certificate + let getSignature; + for (let item of xyPosition) { + if (!getSignature) { + const typeExist = item.pos.some(data => data === null || data === void 0 ? void 0 : data.type); + if (typeExist) { + getSignature = item.pos.find(data => (data === null || data === void 0 ? void 0 : data.type) === "signature"); + } else { + getSignature = item.pos.find(data => !data.isStamp); + } + } + } + let base64Sign = getSignature.SignUrl; + //check https type signature (default signature exist) then convert in base64 + const isUrl = base64Sign.includes("https"); + if (isUrl) { + try { + base64Sign = await fetchImageBase64(base64Sign); + } catch (e) { + console.log("error", e); + } + } + //change image width and height to 104/44 in png base64 + const getNewse64 = await changeImageWH(base64Sign); + //remove suffiix of base64 + const suffixbase64 = getNewse64 && getNewse64.split(",").pop(); + singleSign = { + mailProvider: activeMailAdapter, + pdfFile: base64Url, + docId: documentId, + userId: signerObjectId, + isCustomCompletionMail: isCustomCompletionMail, + signature: suffixbase64 + }; + const response = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post("".concat(localStorage.getItem("baseUrl"), "functions/signPdf"), singleSign, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + // sessionToken: localStorage.getItem("accesstoken") + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + }).then(Listdata => { + const json = Listdata.data; + const res = json.result; + return res; + }).catch(err => { + console.log("Err ", err); + setIsAlert({ + isShow: true, + alertMessage: "something went wrong" + }); + }); + return response; + } catch (e) { + setIsAlert({ + isShow: true, + alertMessage: "something went wrong" + }); + } +}; +const randomId = () => { + const randomBytes = crypto.getRandomValues(new Uint16Array(1)); + const randomValue = randomBytes[0]; + const randomDigit = 1000 + randomValue % 9000; + return randomDigit; +}; +const createDocument = async (template, placeholders, signerData) => { + if (template && template.length > 0) { + const Doc = template[0]; + let placeholdersArr = []; + if ((placeholders === null || placeholders === void 0 ? void 0 : placeholders.length) > 0) { + placeholdersArr = placeholders; + } + let signers = []; + if ((signerData === null || signerData === void 0 ? void 0 : signerData.length) > 0) { + signerData.forEach(x => { + if (x.objectId) { + const obj = { + __type: "Pointer", + className: "contracts_Contactbook", + objectId: x.objectId + }; + signers.push(obj); + } + }); + } + const data = { + Name: Doc.Name, + URL: Doc.URL, + SignedUrl: Doc.SignedUrl, + SentToOthers: Doc.SentToOthers, + Description: Doc.Description, + Note: Doc.Note, + Placeholders: placeholdersArr, + ExtUserPtr: { + __type: "Pointer", + className: "contracts_Users", + objectId: Doc.ExtUserPtr.objectId + }, + CreatedBy: { + __type: "Pointer", + className: "_User", + objectId: Doc.CreatedBy.objectId + }, + Signers: signers, + SendinOrder: (Doc === null || Doc === void 0 ? void 0 : Doc.SendinOrder) || false, + AutomaticReminders: (Doc === null || Doc === void 0 ? void 0 : Doc.AutomaticReminders) || false, + RemindOnceInEvery: parseInt((Doc === null || Doc === void 0 ? void 0 : Doc.RemindOnceInEvery) || 5) + }; + try { + const res = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post("".concat(localStorage.getItem("baseUrl"), "classes/contracts_Document"), data, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + }); + if (res) { + return { + status: "success", + id: res.data.objectId + }; + } + } catch (err) { + console.log("axois err ", err); + return { + status: "error", + id: "Something Went Wrong!" + }; + } + } +}; +const getFirstLetter = name => { + const firstLetter = name === null || name === void 0 ? void 0 : name.charAt(0); + return firstLetter; +}; +const darkenColor = (color, factor) => { + // Remove '#' from the color code and parse it to get RGB values + const hex = color.replace("#", ""); + const r = parseInt(hex.substring(0, 2), 16); + const g = parseInt(hex.substring(2, 4), 16); + const b = parseInt(hex.substring(4, 6), 16); + + // Darken the color by reducing each RGB component + const darkerR = Math.floor(r * (1 - factor)); + const darkerG = Math.floor(g * (1 - factor)); + const darkerB = Math.floor(b * (1 - factor)); + + // Convert the darkened RGB components back to hex + return "#".concat((darkerR << 16 | darkerG << 8 | darkerB).toString(16).padStart(6, "0")); +}; +const addZIndex = (signerPos, key, setZIndex) => { + return signerPos.map(item => { + if (item.placeHolder && item.placeHolder.length > 0) { + // If there is a nested array, recursively add the field to the last object + return { + ...item, + placeHolder: addZIndex(item.placeHolder, key, setZIndex) + }; + } else if (item.pos && item.pos.length > 0) { + // If there is no nested array, add the new field + return { + ...item, + pos: addZIndex(item.pos, key, setZIndex) + // Adjust this line to add the desired field + }; + } else { + if (item.key === key) { + setZIndex(item.zIndex); + return { + ...item, + zIndex: item.zIndex ? item.zIndex + 1 : 1 + }; + } else { + return { + ...item + }; + } + } + }); +}; + +//function for save widgets value on onchange function +const onChangeInput = (value, signKey, xyPostion, index, setXyPostion, userId, initial, dateFormat, isDefaultEmpty, isRadio) => { + const isSigners = xyPostion.some(data => data.signerPtr); + let filterSignerPos; + if (isSigners) { + var _filterSignerPos$; + if (userId) { + filterSignerPos = xyPostion.filter(data => data.Id === userId); + } + const getPlaceHolder = (_filterSignerPos$ = filterSignerPos[0]) === null || _filterSignerPos$ === void 0 ? void 0 : _filterSignerPos$.placeHolder; + if (initial) { + const xyData = addInitialData(xyPostion, setXyPostion, value, userId); + setXyPostion(xyData); + } else { + const getPageNumer = getPlaceHolder.filter(data => data.pageNumber === index); + if (getPageNumer.length > 0) { + const getXYdata = getPageNumer[0].pos; + const getPosData = getXYdata; + const addSignPos = getPosData.map(position => { + if (position.key === signKey) { + if (dateFormat) { + return { + ...position, + options: { + ...position.options, + response: value, + validation: { + type: "date-format", + format: dateFormat // This indicates the required date format explicitly. + } + } + }; + } else if (isDefaultEmpty) { + return { + ...position, + options: { + ...position.options, + response: value, + defaultValue: isRadio ? "" : [] + } + }; + } else { + return { + ...position, + options: { + ...position.options, + response: value + } + }; + } + } + return position; + }); + const newUpdateSignPos = getPlaceHolder.map(obj => { + if (obj.pageNumber === index) { + return { + ...obj, + pos: addSignPos + }; + } + return obj; + }); + const newUpdateSigner = xyPostion.map(obj => { + if (obj.Id === userId) { + return { + ...obj, + placeHolder: newUpdateSignPos + }; + } + return obj; + }); + setXyPostion(newUpdateSigner); + } + } + } else { + let getXYdata = xyPostion[index].pos; + const updatePosition = getXYdata.map(positionData => { + if (positionData.key === signKey) { + if (dateFormat) { + return { + ...positionData, + options: { + ...positionData.options, + response: value, + validation: { + type: "date-format", + format: dateFormat // This indicates the required date format explicitly. + } + } + }; + } else { + return { + ...positionData, + options: { + ...positionData.options, + response: value + } + }; + } + } + return positionData; + }); + const updatePlaceholder = xyPostion.map((obj, ind) => { + if (ind === index) { + return { + ...obj, + pos: updatePosition + }; + } + return obj; + }); + setXyPostion(updatePlaceholder); + } +}; + +//function to increase height of text area on press enter +const onChangeHeightOfTextArea = (height, widgetType, signKey, xyPostion, index, setXyPostion, userId) => { + const isSigners = xyPostion.some(data => data.signerPtr); + let filterSignerPos; + if (isSigners) { + var _filterSignerPos$2; + if (userId) { + filterSignerPos = xyPostion.filter(data => data.Id === userId); + } + const getPlaceHolder = (_filterSignerPos$2 = filterSignerPos[0]) === null || _filterSignerPos$2 === void 0 ? void 0 : _filterSignerPos$2.placeHolder; + const getPageNumer = getPlaceHolder.filter(data => data.pageNumber === index); + if (getPageNumer.length > 0) { + const getXYdata = getPageNumer[0].pos; + const getPosData = getXYdata; + const addSignPos = getPosData.map(position => { + if (position.key === signKey) { + return { + ...position, + Height: position.Height ? position.Height + height : defaultWidthHeight(widgetType).height + height + }; + } + return position; + }); + const newUpdateSignPos = getPlaceHolder.map(obj => { + if (obj.pageNumber === index) { + return { + ...obj, + pos: addSignPos + }; + } + return obj; + }); + const newUpdateSigner = xyPostion.map(obj => { + if (obj.Id === userId) { + return { + ...obj, + placeHolder: newUpdateSignPos + }; + } + return obj; + }); + setXyPostion(newUpdateSigner); + } + } else { + let getXYdata = xyPostion[index].pos; + const updatePosition = getXYdata.map(position => { + if (position.key === signKey) { + return { + ...position, + Height: position.Height ? position.Height + height : defaultWidthHeight(widgetType).height + height + }; + } + return position; + }); + const updatePlaceholder = xyPostion.map((obj, ind) => { + if (ind === index) { + return { + ...obj, + pos: updatePosition + }; + } + return obj; + }); + setXyPostion(updatePlaceholder); + } +}; +//calculate width and height +const calculateInitialWidthHeight = widgetData => { + const intialText = widgetData; + const span = document.createElement("span"); + span.textContent = intialText; + span.style.font = "14px"; // here put your text size and font family + span.style.display = "hidden"; + document.body.appendChild(span); + const width = span.offsetWidth; + const height = span.offsetHeight; + document.body.removeChild(span); + return { + getWidth: width, + getHeight: height + }; +}; +const addInitialData = (signerPos, setXyPostion, value, userId) => { + function widgetDataValue(type) { + switch (type) { + case "name": + return value === null || value === void 0 ? void 0 : value.Name; + case "company": + return value === null || value === void 0 ? void 0 : value.Company; + case "job title": + return value === null || value === void 0 ? void 0 : value.JobTitle; + case "email": + return value === null || value === void 0 ? void 0 : value.Email; + default: + return ""; + } + } + return signerPos.map(item => { + if (item.placeHolder && item.placeHolder.length > 0) { + // If there is a nested array, recursively add the field to the last object + if (item.Id === userId) { + return { + ...item, + placeHolder: addInitialData(item.placeHolder, setXyPostion, value, userId) + }; + } else { + return { + ...item + }; + } + } else if (item.pos && item.pos.length > 0) { + // If there is no nested array, add the new field + return { + ...item, + pos: addInitialData(item.pos, setXyPostion, value, userId) + // Adjust this line to add the desired field + }; + } else { + const widgetData = widgetDataValue(item.type); + if (["name", "company", "job title", "email"].includes(item.type)) { + return { + ...item, + options: { + ...item.options, + defaultValue: widgetData + } + // Width: + // calculateInitialWidthHeight(item.type, widgetData).getWidth || + // item?.Width, + // Height: + // calculateInitialWidthHeight(item.type, widgetData).getHeight || + // item?.Height + }; + } else { + return { + ...item + }; + } + } + }); +}; + +//function for embed document id +const embedDocId = async (pdfDoc, documentId, allPages) => { + for (let i = 0; i < allPages; i++) { + const font = await pdfDoc.embedFont("Helvetica"); + const fontSize = 10; + const textContent = documentId && "OpenSign\u2122 DocumentId: ".concat(documentId, " "); + const pages = pdfDoc.getPages(); + const page = pages[i]; + page.drawText(textContent, { + x: 10, + y: page.getHeight() - 10, + size: fontSize, + font, + color: (0,pdf_lib__WEBPACK_IMPORTED_MODULE_3__.rgb)(0.5, 0.5, 0.5) + }); + } +}; + +//function for save button to save signature or image url +function onSaveSign(type, xyPostion, index, signKey, signatureImg, imgWH, isDefaultSign, isTypeText) { + let getIMGWH; + let getXYdata = xyPostion[index].pos; + const updateXYData = getXYdata.map(position => { + if (position.key === signKey) { + if (isDefaultSign === "initials") { + let imgWH = { + width: position.Width, + height: position.Height + }; + getIMGWH = calculateImgAspectRatio(imgWH, position); + } else if (isDefaultSign === "default") { + getIMGWH = calculateImgAspectRatio(imgWH, position); + } else if (isTypeText) { + getIMGWH = { + newWidth: imgWH.width, + newHeight: imgWH.height + }; + } else { + const defaultWidth = defaultWidthHeight(position === null || position === void 0 ? void 0 : position.type).width; + const defaultHeight = defaultWidthHeight(position === null || position === void 0 ? void 0 : position.type).height; + getIMGWH = calculateImgAspectRatio({ + width: defaultWidth ? defaultWidth : 150, + height: defaultHeight ? defaultHeight : 60 + }, position); + } + const posWidth = getIMGWH ? getIMGWH.newWidth : 150; + const posHeight = getIMGWH ? getIMGWH.newHeight : 60; + return { + ...position, + Width: posWidth, + Height: posHeight, + SignUrl: signatureImg, + signatureType: type && type, + options: { + ...position.options, + response: signatureImg + } + }; + } + return position; + }); + const updateXYposition = xyPostion.map((obj, ind) => { + if (ind === index) { + return { + ...obj, + pos: updateXYData + }; + } + return obj; + }); + return updateXYposition; +} +const calculateImgAspectRatio = (imgWH, pos) => { + let newWidth, newHeight; + const placeholderHeight = pos && pos.Height ? pos.Height : 60; + const aspectRatio = imgWH.width / imgWH.height; + newWidth = aspectRatio * placeholderHeight; + newHeight = placeholderHeight; + return { + newHeight, + newWidth + }; +}; + +//function for upload stamp or image +function onSaveImage(xyPostion, index, signKey, imgWH, image) { + let getIMGWH; + + //get current page position + const getXYData = xyPostion[index].pos; + const updateXYData = getXYData.map(position => { + if (position.key === signKey) { + getIMGWH = calculateImgAspectRatio(imgWH, position); + return { + ...position, + Width: getIMGWH.newWidth, + Height: getIMGWH.newHeight, + SignUrl: image.src, + ImageType: image.imgType, + options: { + ...position.options, + response: image.src + } + }; + } + return position; + }); + const updateXYposition = xyPostion.map((obj, ind) => { + if (ind === index) { + return { + ...obj, + pos: updateXYData + }; + } + return obj; + }); + return updateXYposition; +} + +//function for select image and upload image +const onImageSelect = (event, setImgWH, setImage) => { + const imageType = event.target.files[0].type; + const reader = new FileReader(); + reader.readAsDataURL(event.target.files[0]); + reader.onloadend = function (e) { + let width, height; + const image = new Image(); + image.src = e.target.result; + image.onload = function () { + width = image.width; + height = image.height; + const aspectRatio = 460 / 184; + const imgR = width / height; + if (imgR > aspectRatio) { + width = 460; + height = 460 / imgR; + } else { + width = 184 * imgR; + height = 184; + } + setImgWH({ + width: width, + height: height + }); + }; + image.src = reader.result; + setImage({ + src: image.src, + imgType: imageType + }); + }; +}; +//convert https url to base64 +const fetchImageBase64 = async imageUrl => { + try { + const response = await fetch(imageUrl); + const blob = await response.blob(); + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.readAsDataURL(blob); + reader.onloadend = () => { + const base64data = reader.result; + resolve(base64data); + }; + reader.onerror = error => { + reject(error); + }; + }); + } catch (error) { + throw new Error("Error converting URL to base64:", error); + } +}; +//function for select image and upload image +const changeImageWH = async base64Image => { + const newWidth = 100; + const newHeight = 40; + return new Promise((resolve, reject) => { + const img = new Image(); + img.src = base64Image; + img.onload = async () => { + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + canvas.width = newWidth; + canvas.height = newHeight; + ctx.imageSmoothingEnabled = false; + ctx.drawImage(img, 0, 0, newWidth, newHeight); + const resizedBase64 = canvas.toDataURL("image/png", 1); + resolve(resizedBase64); + }; + img.onerror = error => { + reject(error); + }; + }); +}; + +//function for embed multiple signature using pdf-lib +const multiSignEmbed = async (xyPositionArray, pdfDoc, signyourself, scale) => { + for (let item of xyPositionArray) { + const typeExist = item.pos.some(data => data === null || data === void 0 ? void 0 : data.type); + let updateItem; + if (typeExist) { + if (signyourself) { + updateItem = item.pos; + } else { + updateItem = item.pos.filter(data => { + var _data$options; + return (data === null || data === void 0 || (_data$options = data.options) === null || _data$options === void 0 ? void 0 : _data$options.status) === "required"; + }); + } + } else { + updateItem = item.pos; + } + const pageNo = item.pageNumber; + const widgetsPositionArr = updateItem; + const pages = pdfDoc.getPages(); + const form = pdfDoc.getForm(); + const page = pages[pageNo - 1]; + const images = await Promise.all(widgetsPositionArr.map(async url => { + let signUrl = url.SignUrl && url.SignUrl; + if (signUrl) { + if (url.ImageType === "image/png") { + //function for convert signature png base64 url to jpeg base64 + const newUrl = await convertPNGtoJPEG(signUrl); + signUrl = newUrl; + } + const res = await fetch(signUrl); + return res.arrayBuffer(); + } + })); + widgetsPositionArr.forEach(async (position, id) => { + let img; + if (["signature", "stamp", "initials", "image"].includes(position.type)) { + if (position.ImageType && position.ImageType === "image/png" || position.ImageType === "image/jpeg") { + img = await pdfDoc.embedJpg(images[id]); + } else { + img = await pdfDoc.embedPng(images[id]); + } + } else if (!position.type) { + if (position.ImageType && position.ImageType === "image/png" || position.ImageType === "image/jpeg") { + img = await pdfDoc.embedJpg(images[id]); + } else { + img = await pdfDoc.embedPng(images[id]); + } + } + let widgetWidth, widgetHeight; + widgetWidth = placeholderWidth(position); + widgetHeight = placeholderHeight(position); + const xPos = position => { + const resizePos = position.xPosition; + //first two condition handle to old data already saved from mobile view which scale point diffrent + if (isMobile && position.isMobile) { + //if pos.isMobile false -- placeholder saved from desktop view then handle position in mobile view divided by scale + const x = resizePos * (position.scale / scale); + return x * scale; + } else if (position.isMobile && position.scale) { + const x = resizePos * position.scale; + return x; + } else { + return resizePos; + } + }; + const yPos = position => { + const resizePos = position.yPosition; + if (position.isMobile && position.scale) { + if (position.IsResize) { + const y = resizePos * position.scale; + return y; + } else { + const y = resizePos * position.scale; + return y; + } + } else { + return resizePos; + } + }; + const widgetTypeExist = [textWidget, textInputWidget, "name", "company", "job title", "date", "email"].includes(position.type); + if (position.type === "checkbox") { + var _position$options; + const font = await pdfDoc.embedFont("Helvetica"); + let checkboxOptionGapFromTop, isCheck; + let y = yPos(position); + const optionsFontSize = 13; + const checkboxSize = 18; + const checkboxTextGapFromLeft = 22; + if ((position === null || position === void 0 || (_position$options = position.options) === null || _position$options === void 0 ? void 0 : _position$options.values.length) > 0) { + var _position$options2; + position === null || position === void 0 || (_position$options2 = position.options) === null || _position$options2 === void 0 || _position$options2.values.forEach((item, ind) => { + var _position$options3, _position$options4, _position$options6, _position$options8; + const checkboxRandomId = "checkbox" + randomId(); + if (position !== null && position !== void 0 && (_position$options3 = position.options) !== null && _position$options3 !== void 0 && _position$options3.response && (position === null || position === void 0 || (_position$options4 = position.options) === null || _position$options4 === void 0 || (_position$options4 = _position$options4.response) === null || _position$options4 === void 0 ? void 0 : _position$options4.length) > 0) { + var _position$options5; + isCheck = position === null || position === void 0 || (_position$options5 = position.options) === null || _position$options5 === void 0 || (_position$options5 = _position$options5.response) === null || _position$options5 === void 0 ? void 0 : _position$options5.includes(ind); + } else if (position !== null && position !== void 0 && (_position$options6 = position.options) !== null && _position$options6 !== void 0 && _position$options6.defaultValue) { + var _position$options7; + isCheck = position === null || position === void 0 || (_position$options7 = position.options) === null || _position$options7 === void 0 || (_position$options7 = _position$options7.defaultValue) === null || _position$options7 === void 0 ? void 0 : _position$options7.includes(ind); + } + const checkbox = form.createCheckBox(checkboxRandomId); + if (ind > 0) { + y = y + checkboxOptionGapFromTop; + } else { + checkboxOptionGapFromTop = 26; + } + if (!(position !== null && position !== void 0 && (_position$options8 = position.options) !== null && _position$options8 !== void 0 && _position$options8.isHideLabel)) { + // below line of code is used to embed label with radio button in pdf + const optionsPosition = compensateRotation(page.getRotation().angle, xPos(position) + checkboxTextGapFromLeft, y, 1, page.getSize(), optionsFontSize, (0,pdf_lib__WEBPACK_IMPORTED_MODULE_3__.rgb)(0, 0, 0), font, page); + page.drawText(item, optionsPosition); + } + let checkboxObj = { + x: xPos(position), + y: y, + width: checkboxSize, + height: checkboxSize + }; + checkboxObj = getImagePosition(page, checkboxObj, 1); + checkbox.addToPage(page, checkboxObj); + + //applied which checkbox should be checked + if (isCheck) { + checkbox.check(); + } else { + checkbox.uncheck(); + } + checkbox.enableReadOnly(); + }); + } + } else if (widgetTypeExist) { + var _position$options9, _position$options10, _position$options11, _position$options13; + const font = await pdfDoc.embedFont("Helvetica"); + const fontSize = parseInt(position === null || position === void 0 || (_position$options9 = position.options) === null || _position$options9 === void 0 ? void 0 : _position$options9.fontSize) || 12; + const color = position === null || position === void 0 || (_position$options10 = position.options) === null || _position$options10 === void 0 ? void 0 : _position$options10.fontColor; + let updateColorInRgb; + if (color === "red") { + updateColorInRgb = (0,pdf_lib__WEBPACK_IMPORTED_MODULE_3__.rgb)(1, 0, 0); + } else if (color === "black") { + updateColorInRgb = (0,pdf_lib__WEBPACK_IMPORTED_MODULE_3__.rgb)(0, 0, 0); + } else if (color === "blue") { + updateColorInRgb = (0,pdf_lib__WEBPACK_IMPORTED_MODULE_3__.rgb)(0, 0, 1); + } else if (color === "yellow") { + updateColorInRgb = (0,pdf_lib__WEBPACK_IMPORTED_MODULE_3__.rgb)(0.9, 1, 0); + } else { + updateColorInRgb = (0,pdf_lib__WEBPACK_IMPORTED_MODULE_3__.rgb)(0, 0, 0); + } + let textContent; + if (position !== null && position !== void 0 && (_position$options11 = position.options) !== null && _position$options11 !== void 0 && _position$options11.response) { + var _position$options12; + textContent = (_position$options12 = position.options) === null || _position$options12 === void 0 ? void 0 : _position$options12.response; + } else if (position !== null && position !== void 0 && (_position$options13 = position.options) !== null && _position$options13 !== void 0 && _position$options13.defaultValue) { + var _position$options14; + textContent = position === null || position === void 0 || (_position$options14 = position.options) === null || _position$options14 === void 0 ? void 0 : _position$options14.defaultValue; + } + const fixedWidth = widgetWidth; // Set your fixed width + const isNewOnEnterLineExist = textContent.includes("\n"); + + // Function to break text into lines based on the fixed width + const NewbreakTextIntoLines = (textContent, width) => { + const lines = []; + let currentLine = ""; + for (const word of textContent.split(" ")) { + //get text line width + const lineWidth = font.widthOfTextAtSize("".concat(currentLine, " ").concat(word), fontSize); + //check text content line width is less or equal to container width + if (lineWidth <= width) { + currentLine += " ".concat(word); + } else { + lines.push(currentLine.trim()); + currentLine = "".concat(word); + } + } + lines.push(currentLine.trim()); + return lines; + }; + + // Function to break text into lines based on when user go next line on press enter button + const breakTextIntoLines = (textContent, width) => { + const lines = []; + for (const word of textContent.split("\n")) { + const lineWidth = font.widthOfTextAtSize("".concat(word), fontSize); + //checking string length to container width + //if string length is less then container width it means user press enter button + if (lineWidth <= width) { + lines.push(word); + } + //else adjust text content according to width and send it in new line + else { + const newLine = NewbreakTextIntoLines(word, width); + lines.push(...newLine); + } + } + return lines; + }; + + //check if text content have `\n` string it means user press enter to go next line and handle condition + //else auto adjust text content according to container width + const lines = isNewOnEnterLineExist ? breakTextIntoLines(textContent, fixedWidth) : NewbreakTextIntoLines(textContent, fixedWidth); + // Set initial y-coordinate for the first line + let x = xPos(position); + let y = yPos(position); + // Embed each line on the page + for (const line of lines) { + const textPosition = compensateRotation(page.getRotation().angle, x, y, 1, page.getSize(), fontSize, updateColorInRgb, font, page); + page.drawText(line, textPosition); + y += 18; // Adjust the line height as needed + } + } else if (position.type === "dropdown") { + var _position$options15, _position$options16, _position$options18; + const dropdownRandomId = "dropdown" + randomId(); + const dropdown = form.createDropdown(dropdownRandomId); + dropdown.addOptions(position === null || position === void 0 || (_position$options15 = position.options) === null || _position$options15 === void 0 ? void 0 : _position$options15.values); + if (position !== null && position !== void 0 && (_position$options16 = position.options) !== null && _position$options16 !== void 0 && _position$options16.response) { + var _position$options17; + dropdown.select((_position$options17 = position.options) === null || _position$options17 === void 0 ? void 0 : _position$options17.response); + } else if (position !== null && position !== void 0 && (_position$options18 = position.options) !== null && _position$options18 !== void 0 && _position$options18.defaultValue) { + var _position$options19; + dropdown.select(position === null || position === void 0 || (_position$options19 = position.options) === null || _position$options19 === void 0 ? void 0 : _position$options19.defaultValue); + } + const dropdownObj = { + x: xPos(position), + y: yPos(position), + width: widgetWidth, + height: widgetHeight + }; + const dropdownOption = getImagePosition(page, dropdownObj, 1); + // page.drawImage(img, imageOptions); + dropdown.addToPage(page, dropdownOption); + dropdown.enableReadOnly(); + } else if (position.type === radioButtonWidget) { + var _position$options20, _position$options23, _position$options25; + const font = await pdfDoc.embedFont("Helvetica"); + const radioRandomId = "radio" + randomId(); + const radioGroup = form.createRadioGroup(radioRandomId); + let radioOptionGapFromTop; + const optionsFontSize = 16; + const radioTextGapFromLeft = 20; + const radioSize = 18; + let y = yPos(position); + if ((position === null || position === void 0 || (_position$options20 = position.options) === null || _position$options20 === void 0 ? void 0 : _position$options20.values.length) > 0) { + var _position$options21; + position === null || position === void 0 || (_position$options21 = position.options) === null || _position$options21 === void 0 || _position$options21.values.forEach((item, ind) => { + var _position$options22; + if (ind > 0) { + y = y + radioOptionGapFromTop; + } else { + radioOptionGapFromTop = 25; + } + if (!(position !== null && position !== void 0 && (_position$options22 = position.options) !== null && _position$options22 !== void 0 && _position$options22.isHideLabel)) { + // below line of code is used to embed label with radio button in pdf + + const optionsPosition = compensateRotation(page.getRotation().angle, xPos(position) + radioTextGapFromLeft, y, 1, page.getSize(), optionsFontSize, (0,pdf_lib__WEBPACK_IMPORTED_MODULE_3__.rgb)(0, 0, 0), font, page); + page.drawText(item, optionsPosition); + } + let radioObj = { + x: xPos(position), + y: y, + width: radioSize, + height: radioSize + }; + radioObj = getImagePosition(page, radioObj, 1); + radioGroup.addOptionToPage(item, page, radioObj); + }); + } + if (position !== null && position !== void 0 && (_position$options23 = position.options) !== null && _position$options23 !== void 0 && _position$options23.response) { + var _position$options24; + radioGroup.select((_position$options24 = position.options) === null || _position$options24 === void 0 ? void 0 : _position$options24.response); + } else if (position !== null && position !== void 0 && (_position$options25 = position.options) !== null && _position$options25 !== void 0 && _position$options25.defaultValue) { + var _position$options26; + radioGroup.select(position === null || position === void 0 || (_position$options26 = position.options) === null || _position$options26 === void 0 ? void 0 : _position$options26.defaultValue); + } + radioGroup.enableReadOnly(); + } else { + const signature = { + x: xPos(position), + y: yPos(position), + width: widgetWidth, + height: widgetHeight + }; + const imageOptions = getImagePosition(page, signature, 1); + page.drawImage(img, imageOptions); + } + }); + } + const pdfBytes = await pdfDoc.saveAsBase64({ + useObjectStreams: false + }); + // console.log("pdf", pdfBytes); + return pdfBytes; +}; + +// function for validating URLs +function urlValidator(url) { + try { + const newUrl = new URL(url); + return newUrl.protocol === "http:" || newUrl.protocol === "https:"; + } catch (err) { + return false; + } +} +//calculate placeholder width to embed in pdf +const placeholderWidth = pos => { + const defaultWidth = defaultWidthHeight(pos.type).width; + const posWidth = pos.Width || defaultWidth; + + //condition to handle old data saved from mobile view to get widthh + if (pos.isMobile && pos.scale) { + if (pos.IsResize) { + return posWidth; + } else { + return posWidth * pos.scale; + } + } else { + return posWidth; + } +}; + +//calculate placeholder height to embed in pdf +const placeholderHeight = pos => { + const posHeight = pos.Height; + const defaultHeight = defaultWidthHeight(pos.type).height; + const posUpdateHeight = posHeight || defaultHeight; + + //condition to handle old data saved from mobile view to get height + if (pos.isMobile && pos.scale) { + if (pos.IsResize) { + return posUpdateHeight; + } else { + return posUpdateHeight * pos.scale; + } + } else { + return posUpdateHeight; + } +}; + +//function for getting contracts_contactbook details +const contactBook = async objectId => { + const result = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].get("".concat(localStorage.getItem("baseUrl"), "classes/contracts_Contactbook?where={\"objectId\":\"").concat(objectId, "\"}"), { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + }).then(Listdata => { + const json = Listdata.data; + const res = json.results; + return res; + }).catch(err => { + console.log("Err ", err); + return "Error: Something went wrong!"; + }); + return result; +}; + +//function for getting document details from contract_Documents class +const contractDocument = async documentId => { + const data = { + docId: documentId + }; + const documentDeatils = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post("".concat(localStorage.getItem("baseUrl"), "functions/getDocument"), data, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessionToken: localStorage.getItem("accesstoken") + } + }).then(Listdata => { + const json = Listdata.data; + let data = []; + if (json && json.result.error) { + return json; + } else if (json && json.result) { + data.push(json.result); + return data; + } else { + return []; + } + }).catch(err => { + console.log("Err ", err); + return "Error: Something went wrong!"; + }); + return documentDeatils; +}; + +//function for add default signature or image for all requested location +const addDefaultSignatureImg = (xyPostion, defaultSignImg) => { + let imgWH = { + width: "", + height: "" + }; + const img = new Image(); + img.src = defaultSignImg; + if (img.complete) { + imgWH = { + width: img.width, + height: img.height + }; + } + let xyDefaultPos = []; + for (let i = 0; i < xyPostion.length; i++) { + let getIMGWH; + const getXYdata = xyPostion[i].pos; + const getPageNo = xyPostion[i].pageNumber; + const getPosData = getXYdata; + const addSign = getPosData.map(position => { + getIMGWH = calculateImgAspectRatio(imgWH, position); + if (position.type) { + if ((position === null || position === void 0 ? void 0 : position.type) === "signature") { + return { + ...position, + SignUrl: defaultSignImg, + Width: getIMGWH.newWidth, + Height: getIMGWH.newHeight, + ImageType: "default", + options: { + ...position.options, + response: defaultSignImg + } + }; + } + } else if (position && !position.isStamp) { + return { + ...position, + SignUrl: defaultSignImg, + Width: getIMGWH.newWidth, + Height: getIMGWH.newHeight, + ImageType: "default", + options: { + ...position.options, + response: defaultSignImg + } + }; + } + return position; + }); + const newXypos = { + pageNumber: getPageNo, + pos: addSign + }; + xyDefaultPos.push(newXypos); + } + return xyDefaultPos; +}; + +//function for create list of year for date widget +const range = (start, end, step) => { + const range = []; + for (let i = start; i <= end; i += step) { + range.push(i); + } + return range; +}; +//function for get month +const getMonth = date => { + const newMonth = new Date(date).getMonth(); + return newMonth; +}; + +//function for get year +const getYear = date => { + const newYear = new Date(date).getFullYear(); + return newYear; +}; + +//function to create/copy widget next to already dropped widget +const handleCopyNextToWidget = (position, widgetType, xyPostion, index, setXyPostion, userId) => { + const isSigners = xyPostion.some(data => data.signerPtr); + let filterSignerPos; + //get position of previous widget and create new widget next to that widget on same data except + // xPosition and key + let newpos = position; + const calculateXPosition = parseInt(position.xPosition) + defaultWidthHeight(widgetType).width + resizeBorderExtraWidth(); + const newId = randomId(); + newpos = { + ...newpos, + xPosition: calculateXPosition, + key: newId + }; + //if condition to create widget in request-sign flow + if (isSigners) { + var _filterSignerPos$3; + if (userId) { + filterSignerPos = xyPostion.filter(data => data.Id === userId); + } + const getPlaceHolder = (_filterSignerPos$3 = filterSignerPos[0]) === null || _filterSignerPos$3 === void 0 ? void 0 : _filterSignerPos$3.placeHolder; + const getPageNumer = getPlaceHolder.filter(data => data.pageNumber === index); + const getXYdata = getPageNumer[0].pos; + getXYdata.push(newpos); + if (getPageNumer.length > 0) { + const newUpdateSignPos = getPlaceHolder.map(obj => { + if (obj.pageNumber === index) { + return { + ...obj, + pos: getXYdata + }; + } + return obj; + }); + const newUpdateSigner = xyPostion.map(obj => { + if (obj.Id === userId) { + return { + ...obj, + placeHolder: newUpdateSignPos + }; + } + return obj; + }); + setXyPostion(newUpdateSigner); + } + } else { + // else condition to create widget in sign-yourself flow + let getXYdata = xyPostion[index].pos; + getXYdata.push(newpos); + const updatePlaceholder = xyPostion.map((obj, ind) => { + if (ind === index) { + return { + ...obj, + pos: getXYdata + }; + } + return obj; + }); + setXyPostion(updatePlaceholder); + } +}; +const getFileName = fileUrl => { + if (fileUrl) { + const url = new URL(fileUrl); + const filename = url.pathname.substring(url.pathname.indexOf("_") + 1); + return filename || ""; + } else { + return ""; + } +}; + +//fetch tenant app logo from `partners_Tenant` class by domain name +const getAppLogo = async () => { + const domainName = window.location.host; + try { + const tenantCreditsQuery = new (parse__WEBPACK_IMPORTED_MODULE_4___default().Query)("partners_Tenant"); + tenantCreditsQuery.equalTo("Domain", domainName); + const res = await tenantCreditsQuery.first(); + if (res) { + const updateRes = JSON.parse(JSON.stringify(res)); + return updateRes === null || updateRes === void 0 ? void 0 : updateRes.Logo; + } + } catch (e) { + return null; + } +}; +const getTenantDetails = async objectId => { + try { + const tenantCreditsQuery = new (parse__WEBPACK_IMPORTED_MODULE_4___default().Query)("partners_Tenant"); + tenantCreditsQuery.equalTo("UserId", { + __type: "Pointer", + className: "_User", + objectId: objectId + }); + const res = await tenantCreditsQuery.first(); + if (res) { + const updateRes = JSON.parse(JSON.stringify(res)); + return updateRes; + } + } catch (e) { + return "user does not exist!"; + } +}; + +//function to convert variable string name to variable value of email body and subject +function replaceMailVaribles(subject, body, variables) { + let replacedSubject = subject; + let replacedBody = body; + for (const variable in variables) { + const regex = new RegExp("{{".concat(variable, "}}"), "g"); + if (subject) { + replacedSubject = replacedSubject.replace(regex, variables[variable]); + } + if (body) { + replacedBody = replacedBody.replace(regex, variables[variable]); + } + } + const result = { + subject: replacedSubject, + body: replacedBody + }; + return result; +} +const copytoData = text => { + // navigator.clipboard.writeText(text); + if (navigator.clipboard) { + navigator.clipboard.writeText(text); + } else { + // Fallback for browsers that don't support navigator.clipboard + const textArea = document.createElement("textarea"); + textArea.value = text; + document.body.appendChild(textArea); + textArea.select(); + document.execCommand("copy"); + document.body.removeChild(textArea); + } +}; +const convertPdfArrayBuffer = async url => { + try { + const response = await fetch(url); + // Check if the response was successful (status 200) + if (!response.ok) { + return "Error"; + } + // Convert the response to ArrayBuffer + const arrayBuffer = await response.arrayBuffer(); + return arrayBuffer; + } catch (error) { + console.error("Error fetching data:", error); + return "Error"; + } +}; +//`handleSendOTP` function is used to send otp on user's email using `SendOTPMailV1` cloud function +const handleSendOTP = async email => { + try { + let url = "".concat(localStorage.getItem("baseUrl"), "functions/SendOTPMailV1"); + const headers = { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId") + }; + const body = { + email: email + }; + await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post(url, body, { + headers: headers + }); + } catch (error) { + alert(error.message); + } +}; +//handle download signed pdf +const handleDownloadPdf = async (pdfDetails, pdfUrl, setIsDownloading) => { + const pdfName = pdfDetails[0] && pdfDetails[0].Name; + setIsDownloading("pdf"); + try { + // const url = await Parse.Cloud.run("getsignedurl", { url: pdfUrl }); + const axiosRes = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post("".concat(_appinfo__WEBPACK_IMPORTED_MODULE_5__.appInfo.baseUrl, "/functions/getsignedurl"), { + url: pdfUrl + }, { + headers: { + "content-type": "Application/json", + "X-Parse-Application-Id": _appinfo__WEBPACK_IMPORTED_MODULE_5__.appInfo.appId, + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + }); + const url = axiosRes.data.result; + (0,file_saver__WEBPACK_IMPORTED_MODULE_6__.saveAs)(url, "".concat(sanitizeFileName(pdfName), "_signed_by_OpenSign\u2122.pdf")); + setIsDownloading(""); + } catch (err) { + console.log("err in getsignedurl", err); + setIsDownloading(""); + alert("something went wrong, please try again later."); + } +}; +const sanitizeFileName = pdfName => { + // Replace spaces with underscore + return pdfName.replace(/ /g, "_"); +}; +//function for print digital sign pdf +const handleToPrint = async (event, pdfUrl, setIsDownloading) => { + event.preventDefault(); + setIsDownloading("pdf"); + try { + // const url = await Parse.Cloud.run("getsignedurl", { url: pdfUrl }); + const axiosRes = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post("".concat(_appinfo__WEBPACK_IMPORTED_MODULE_5__.appInfo.baseUrl, "/functions/getsignedurl"), { + url: pdfUrl + }, { + headers: { + "content-type": "Application/json", + "X-Parse-Application-Id": _appinfo__WEBPACK_IMPORTED_MODULE_5__.appInfo.appId, + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + }); + const url = axiosRes.data.result; + const pdf = await getBase64FromUrl(url); + const isAndroidDevice = navigator.userAgent.match(/Android/i); + const isAppleDevice = (/iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) && !window.MSStream; + if (isAndroidDevice || isAppleDevice) { + const byteArray = Uint8Array.from(atob(pdf).split("").map(char => char.charCodeAt(0))); + const blob = new Blob([byteArray], { + type: "application/pdf" + }); + const blobUrl = URL.createObjectURL(blob); + window.open(blobUrl, "_blank"); + setIsDownloading(""); + } else { + print_js__WEBPACK_IMPORTED_MODULE_7___default()({ + printable: pdf, + type: "pdf", + base64: true + }); + setIsDownloading(""); + } + } catch (err) { + setIsDownloading(""); + console.log("err in getsignedurl", err); + alert("something went wrong, please try again later."); + } +}; + +//handle download signed pdf +const handleDownloadCertificate = async (pdfDetails, setIsDownloading) => { + var _pdfDetails$; + if ((pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails.length) > 0 && (_pdfDetails$ = pdfDetails[0]) !== null && _pdfDetails$ !== void 0 && _pdfDetails$.CertificateUrl) { + try { + var _pdfDetails$2, _pdfDetails$3; + await fetch(pdfDetails[0] && ((_pdfDetails$2 = pdfDetails[0]) === null || _pdfDetails$2 === void 0 ? void 0 : _pdfDetails$2.CertificateUrl)); + const certificateUrl = pdfDetails[0] && ((_pdfDetails$3 = pdfDetails[0]) === null || _pdfDetails$3 === void 0 ? void 0 : _pdfDetails$3.CertificateUrl); + (0,file_saver__WEBPACK_IMPORTED_MODULE_6__.saveAs)(certificateUrl, "Certificate_signed_by_OpenSign\u2122.pdf"); + } catch (err) { + console.log("err in download in certificate", err); + } + } else { + setIsDownloading("certificate"); + try { + var _pdfDetails$4; + const data = { + docId: (_pdfDetails$4 = pdfDetails[0]) === null || _pdfDetails$4 === void 0 ? void 0 : _pdfDetails$4.objectId + }; + const docDetails = await axios__WEBPACK_IMPORTED_MODULE_8__["default"].post("".concat(localStorage.getItem("baseUrl"), "functions/getDocument"), data, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessionToken: localStorage.getItem("accesstoken") + } + }); + if (docDetails.data && docDetails.data.result) { + const doc = docDetails.data.result; + if (doc !== null && doc !== void 0 && doc.CertificateUrl) { + await fetch(doc === null || doc === void 0 ? void 0 : doc.CertificateUrl); + const certificateUrl = doc === null || doc === void 0 ? void 0 : doc.CertificateUrl; + (0,file_saver__WEBPACK_IMPORTED_MODULE_6__.saveAs)(certificateUrl, "Certificate_signed_by_OpenSign\u2122.pdf"); + setIsDownloading(""); + } else { + setIsDownloading("certificate"); + } + } + } catch (err) { + console.log("err in download in certificate", err); + alert("something went wrong, please try again later."); + } + } +}; +async function findContact(value) { + try { + const currentUser = parse__WEBPACK_IMPORTED_MODULE_4___default().User.current(); + const contactbook = new (parse__WEBPACK_IMPORTED_MODULE_4___default().Query)("contracts_Contactbook"); + contactbook.equalTo("CreatedBy", parse__WEBPACK_IMPORTED_MODULE_4___default().User.createWithoutData(currentUser.id)); + contactbook.notEqualTo("IsDeleted", true); + contactbook.matches("Email", new RegExp(value, "i")); + const contactRes = await contactbook.find(); + if (contactRes) { + const res = JSON.parse(JSON.stringify(contactRes)); + return res; + } + } catch (error) { + console.error("Error fetching suggestions:", error); + } +} +// `compensateRotation` is used to calculate x and y position of widget on portait, landscape pdf for pdf-lib +function compensateRotation(pageRotation, x, y, scale, dimensions, fontSize, updateColorInRgb, font, page) { + let rotationRads = pageRotation * Math.PI / 180; + + //These coords are now from bottom/left + let coordsFromBottomLeft = { + x: x / scale + }; + if (pageRotation === 90 || pageRotation === 270) { + coordsFromBottomLeft.y = dimensions.width - (y + fontSize) / scale; + } else { + coordsFromBottomLeft.y = dimensions.height - (y + fontSize) / scale; + } + let drawX = null; + let drawY = null; + if (pageRotation === 90) { + drawX = coordsFromBottomLeft.x * Math.cos(rotationRads) - coordsFromBottomLeft.y * Math.sin(rotationRads) + dimensions.width; + drawY = coordsFromBottomLeft.x * Math.sin(rotationRads) + coordsFromBottomLeft.y * Math.cos(rotationRads); + } else if (pageRotation === 180) { + drawX = coordsFromBottomLeft.x * Math.cos(rotationRads) - coordsFromBottomLeft.y * Math.sin(rotationRads) + dimensions.width; + drawY = coordsFromBottomLeft.x * Math.sin(rotationRads) + coordsFromBottomLeft.y * Math.cos(rotationRads) + dimensions.height; + } else if (pageRotation === 270) { + drawX = coordsFromBottomLeft.x * Math.cos(rotationRads) - coordsFromBottomLeft.y * Math.sin(rotationRads); + drawY = coordsFromBottomLeft.x * Math.sin(rotationRads) + coordsFromBottomLeft.y * Math.cos(rotationRads) + dimensions.height; + } else { + //no rotation + drawX = coordsFromBottomLeft.x; + drawY = coordsFromBottomLeft.y; + } + if (font) { + return { + x: drawX, + y: drawY, + font, + color: updateColorInRgb, + size: fontSize, + rotate: page.getRotation() + }; + } else { + return { + x: drawX, + y: drawY + }; + } +} + +// `getImagePosition` is used to calulcate position of image type widget like x, y, width, height for pdf-lib +function getImagePosition(page, image, sizeRatio) { + let pageWidth; + // pageHeight; + if ([90, 270].includes(page.getRotation().angle)) { + pageWidth = page.getHeight(); + } else { + pageWidth = page.getWidth(); + } + // eslint-disable-next-line + if (!(image !== null && image !== void 0 && image.hasOwnProperty("vpWidth"))) { + image["vpWidth"] = pageWidth; + } + const pageRatio = pageWidth / (image.vpWidth * sizeRatio); + const imageWidth = image.width * sizeRatio * pageRatio; + const imageHeight = image.height * sizeRatio * pageRatio; + const imageX = image.x * sizeRatio * pageRatio; + const imageYFromTop = image.y * sizeRatio * pageRatio; + const correction = compensateRotation(page.getRotation().angle, imageX, imageYFromTop, 1, page.getSize(), imageHeight); + return { + width: imageWidth, + height: imageHeight, + x: correction.x, + y: correction.y, + rotate: page.getRotation() + }; +} + +/***/ }), + +/***/ "./src/constant/appinfo.js": +/*!*********************************!*\ + !*** ./src/constant/appinfo.js ***! + \*********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ appInfo: () => (/* binding */ appInfo) +/* harmony export */ }); +/* harmony import */ var _assets_images_logo_png__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../assets/images/logo.png */ "./src/assets/images/logo.png"); + +const appInfo = { + applogo: _assets_images_logo_png__WEBPACK_IMPORTED_MODULE_0__["default"], + appId: true ? "opensign" : 0, + baseUrl: true ? "http://localhost:8080/app" : 0, + defaultRole: "contracts_User", + fbAppId: "MISSING_ENV_VAR".REACT_APP_FBAPPID ? "".concat("MISSING_ENV_VAR".REACT_APP_FBAPPID) : "", + fev_Icon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAALlJREFUaEPtmN0NwjAMBpNxYDKYiM1Yp90g93CKStH1NbIdfz921Dker2Pc+Js1cDF7MXAxASMGYkAigBI6vh9ZwoXP53uZoAYcvhwdA3mAVbI2aSb+9zFKU4IURB6j/HoPUIEa2G3iGIAhQQDlAUIoE2diabIklISS0NoFPebo77RF6OenEF3QntOm128he0GKrwHyACFoz2MgBqSGkpAEcHs47oHtN5AFakACqMNjQEMoE8SABFCHn4HE2zGHSLeEAAAAAElFTkSuQmCC", + googleClietId: "MISSING_ENV_VAR".REACT_APP_GOOGLECLIENTID ? "".concat("MISSING_ENV_VAR".REACT_APP_GOOGLECLIENTID) : "", + metaDescription: "The fastest way to sign PDFs & request signatures from others.", + settings: [{ + role: "contracts_Admin", + menuId: "VPh91h0ZHk", + pageType: "dashboard", + pageId: "35KBoSgoAK", + extended_class: "contracts_Users" + }, { + role: "contracts_OrgAdmin", + menuId: "VPh91h0ZHk", + pageType: "dashboard", + pageId: "35KBoSgoAK", + extended_class: "contracts_Users" + }, { + role: "contracts_Manager", + menuId: "H9vRfEYKhT", + pageType: "dashboard", + pageId: "35KBoSgoAK", + extended_class: "contracts_Users" + }, { + role: "contracts_User", + menuId: "H9vRfEYKhT", + pageType: "dashboard", + pageId: "35KBoSgoAK", + extended_class: "contracts_Users" + }] +}; + +/***/ }), + +/***/ "./src/constant/const.js": +/*!*******************************!*\ + !*** ./src/constant/const.js ***! + \*******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ contactCls: () => (/* binding */ contactCls), +/* harmony export */ documentCls: () => (/* binding */ documentCls), +/* harmony export */ iconColor: () => (/* binding */ iconColor), +/* harmony export */ isEnableSubscription: () => (/* binding */ isEnableSubscription), +/* harmony export */ isStaging: () => (/* binding */ isStaging), +/* harmony export */ templateCls: () => (/* binding */ templateCls), +/* harmony export */ themeColor: () => (/* binding */ themeColor) +/* harmony export */ }); +const contactCls = "contracts_Contactbook"; +const templateCls = "contracts_Template"; +const documentCls = "contracts_Document"; +const themeColor = "#47a3ad"; +const iconColor = "#686968"; +const isEnableSubscription = "false"; +const isStaging = window.location.origin === "https://staging-app.opensignlabs.com"; + +/***/ }), + +/***/ "./src/pages/PdfRequestFiles.js": +/*!**************************************!*\ + !*** ./src/pages/PdfRequestFiles.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _constant_const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant/const */ "./src/constant/const.js"); +/* harmony import */ var pdf_lib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! pdf-lib */ "./node_modules/pdf-lib/es/index.js"); +/* harmony import */ var _styles_signature_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../styles/signature.css */ "./src/styles/signature.css"); +/* harmony import */ var parse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! parse */ "./node_modules/parse/index.js"); +/* harmony import */ var parse__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(parse__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js"); +/* harmony import */ var react_dnd__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! react-dnd */ "./node_modules/react-dnd/dist/core/DndProvider.js"); +/* harmony import */ var react_dnd_html5_backend__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! react-dnd-html5-backend */ "./node_modules/react-dnd-html5-backend/dist/index.js"); +/* harmony import */ var _components_pdf_SignPad__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/pdf/SignPad */ "./src/components/pdf/SignPad.js"); +/* harmony import */ var _components_pdf_RenderAllPdfPage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/pdf/RenderAllPdfPage */ "./src/components/pdf/RenderAllPdfPage.js"); +/* harmony import */ var reactour__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! reactour */ "./node_modules/reactour/dist/reactour.esm.js"); +/* harmony import */ var react_confetti__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-confetti */ "./node_modules/react-confetti/dist/react-confetti.min.js"); +/* harmony import */ var react_confetti__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_confetti__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js"); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var _constant_Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../constant/Utils */ "./src/constant/Utils.js"); +/* harmony import */ var _primitives_LoaderWithMsg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../primitives/LoaderWithMsg */ "./src/primitives/LoaderWithMsg.js"); +/* harmony import */ var _primitives_HandleError__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../primitives/HandleError */ "./src/primitives/HandleError.js"); +/* harmony import */ var _components_pdf_PdfHeader__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../components/pdf/PdfHeader */ "./src/components/pdf/PdfHeader.js"); +/* harmony import */ var _components_pdf_RenderPdf__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../components/pdf/RenderPdf */ "./src/components/pdf/RenderPdf.js"); +/* harmony import */ var _primitives_PdfDeclineModal__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../primitives/PdfDeclineModal */ "./src/primitives/PdfDeclineModal.js"); +/* harmony import */ var _components_Title__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../components/Title */ "./src/components/Title.js"); +/* harmony import */ var _components_pdf_DefaultSignature__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../components/pdf/DefaultSignature */ "./src/components/pdf/DefaultSignature.js"); +/* harmony import */ var _primitives_ModalUi__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../primitives/ModalUi */ "./src/primitives/ModalUi.js"); +/* harmony import */ var _primitives_TourContentWithBtn__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../primitives/TourContentWithBtn */ "./src/primitives/TourContentWithBtn.js"); +/* harmony import */ var _constant_appinfo__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../constant/appinfo */ "./src/constant/appinfo.js"); +/* harmony import */ var _primitives_Loader__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../primitives/Loader */ "./src/primitives/Loader.js"); +/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/dist/react-redux.mjs"); +/* harmony import */ var _components_pdf_SignerListComponent__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../components/pdf/SignerListComponent */ "./src/components/pdf/SignerListComponent.js"); +/* harmony import */ var _components_pdf_VerifyEmail__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../components/pdf/VerifyEmail */ "./src/components/pdf/VerifyEmail.js"); +/* harmony import */ var _components_pdf_PdfZoom__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../components/pdf/PdfZoom */ "./src/components/pdf/PdfZoom.js"); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +function PdfRequestFiles(props) { + var _window$location, _window$location2, _pdfDetails$13, _pdfDetails$14; + const [pdfDetails, setPdfDetails] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); + const [signedSigners, setSignedSigners] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); + const [unsignedSigners, setUnSignedSigners] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); + const [isSignPad, setIsSignPad] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [pdfUrl, setPdfUrl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [allPages, setAllPages] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); + const numPages = 1; + const [pageNumber, setPageNumber] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(1); + const [image, setImage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); + const [isImageSelect, setIsImageSelect] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [signature, setSignature] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [isStamp, setIsStamp] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [signKey, setSignKey] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [imgWH, setImgWH] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({}); + const imageRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); + const [handleError, setHandleError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [selectWidgetId, setSelectWidgetId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [otpLoader, setOtpLoader] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [isCelebration, setIsCelebration] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [requestSignTour, setRequestSignTour] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [tourStatus, setTourStatus] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); + const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + isLoad: true, + message: "This might take some time" + }); + const [defaultSignImg, setDefaultSignImg] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [isDocId, setIsDocId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [pdfNewWidth, setPdfNewWidth] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [pdfOriginalWH, setPdfOriginalWH] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); + const [signerPos, setSignerPos] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); + const [signerObjectId, setSignerObjectId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [isUiLoading, setIsUiLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [isDecline, setIsDecline] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + isDeclined: false + }); + const [currentSigner, setCurrentSigner] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [isAlert, setIsAlert] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + isShow: false, + alertMessage: "" + }); + const [unSignedWidgetId, setUnSignedWidgetId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [expiredDate, setExpiredDate] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [isResize, setIsResize] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [signerUserId, setSignerUserId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [isDontShow, setIsDontShow] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [isDownloading, setIsDownloading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [defaultSignAlert, setDefaultSignAlert] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + isShow: false, + alertMessage: "" + }); + const [isSubscribed, setIsSubscribed] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [isCompleted, setIsCompleted] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + isCertificate: false, + isModal: false + }); + const [myInitial, setMyInitial] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [isInitial, setIsInitial] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [pdfLoad, setPdfLoad] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [isSigned, setIsSigned] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [isExpired, setIsExpired] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [alreadySign, setAlreadySign] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [containerWH, setContainerWH] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({}); + const [validateAlert, setValidateAlert] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [widgetsTour, setWidgetsTour] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [minRequiredCount, setminRequiredCount] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [sendInOrder, setSendInOrder] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [currWidgetsDetails, setCurrWidgetsDetails] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({}); + const [isSubscriptionExpired, setIsSubscriptionExpired] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [extUserId, setExtUserId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [isEmailVerified, setIsEmailVerified] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true); + const [isVerifyModal, setIsVerifyModal] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [otp, setOtp] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [contractName, setContractName] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [zoomPercent, setZoomPercent] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0); + const [totalZoomPercent, setTotalZoomPercent] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); + const [scale, setScale] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(1); + const [uniqueId, setUniqueId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [isPublicTemplate, setIsPublicTemplate] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [contact, setContact] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + name: "", + phone: "", + email: "" + }); + const [isOtp, setIsOtp] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [res, setRes] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({}); + const [documentId, setDocumentId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + const [isPublicContact, setIsPublicContact] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const isHeader = (0,react_redux__WEBPACK_IMPORTED_MODULE_25__.useSelector)(state => state.showHeader); + const divRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); + const isMobile = window.innerWidth < 767; + const senderUser = localStorage.getItem("Parse/".concat(localStorage.getItem("parseAppId"), "/currentUser")) && localStorage.getItem("Parse/".concat(localStorage.getItem("parseAppId"), "/currentUser")); + const jsonSender = JSON.parse(senderUser); + let isGuestSignFlow = false; + let sendmail; + let getDocId = ""; + const route = !props.templateId && window.location.pathname; + const getQuery = !props.templateId && ((_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.search) && ((_window$location2 = window.location) === null || _window$location2 === void 0 || (_window$location2 = _window$location2.search) === null || _window$location2 === void 0 ? void 0 : _window$location2.split("?")); + if (getQuery) { + sendmail = getQuery[1].split("=")[1]; + } + const checkSplit = route && (route === null || route === void 0 ? void 0 : route.split("/")); + if (checkSplit && checkSplit.length > 4) { + isGuestSignFlow = true; + getDocId = checkSplit[3]; + } else { + getDocId = checkSplit[2]; + } + let getDocumentId = getDocId || documentId; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + if (getDocumentId) { + setDocumentId(getDocumentId); + getDocumentDetails(getDocumentId); + } else if (props.templateId) { + getTemplateDetails(); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [props.templateId, getDocumentId]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { + const updateSize = () => { + if (divRef.current) { + const pdfWidth = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.pdfNewWidthFun)(divRef); + setPdfNewWidth(pdfWidth); + setContainerWH({ + width: divRef.current.offsetWidth, + height: divRef.current.offsetHeight + }); + } + }; + + // Use setTimeout to wait for the transition to complete + const timer = setTimeout(updateSize, 100); // match the transition duration + return () => clearTimeout(timer); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [divRef.current, isHeader]); + //function to use resend otp for email verification + const handleResend = async e => { + e.preventDefault(); + setOtpLoader(true); + const localuser = localStorage.getItem("Parse/".concat(_constant_appinfo__WEBPACK_IMPORTED_MODULE_20__.appInfo.appId, "/currentUser")); + const currentUser = JSON.parse(localuser); + await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.handleSendOTP)(currentUser === null || currentUser === void 0 ? void 0 : currentUser.email); + setOtpLoader(false); + alert("OTP sent on you email"); + }; + //`handleVerifyEmail` function is used to verify email with otp + const handleVerifyEmail = async e => { + e.preventDefault(); + setOtpLoader(true); + const localuser = localStorage.getItem("Parse/".concat(_constant_appinfo__WEBPACK_IMPORTED_MODULE_20__.appInfo.appId, "/currentUser")); + const currentUser = JSON.parse(localuser); + try { + const resEmail = await parse__WEBPACK_IMPORTED_MODULE_4___default().Cloud.run("verifyemail", { + otp: otp, + email: currentUser === null || currentUser === void 0 ? void 0 : currentUser.email + }); + if ((resEmail === null || resEmail === void 0 ? void 0 : resEmail.message) === "Email is verified.") { + setIsEmailVerified(true); + } else if ((resEmail === null || resEmail === void 0 ? void 0 : resEmail.message) === "Email is already verified.") { + setIsEmailVerified(true); + } + setOtp(""); + alert(resEmail.message); + setIsVerifyModal(false); + //handleRecipientSign(); + } catch (error) { + alert(error.message); + } finally { + setOtpLoader(false); + } + }; + //`handleVerifyBtn` function is used to send otp on user mail + const handleVerifyBtn = async () => { + setIsVerifyModal(true); + const localuser = localStorage.getItem("Parse/".concat(_constant_appinfo__WEBPACK_IMPORTED_MODULE_20__.appInfo.appId, "/currentUser")); + const currentUser = JSON.parse(localuser); + await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.handleSendOTP)(currentUser === null || currentUser === void 0 ? void 0 : currentUser.email); + }; + async function checkIsSubscribed(extUserId, contactId) { + const isGuestSign = isGuestSignFlow || false; + const res = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.fetchSubscription)(extUserId, contactId, isGuestSign); + const plan = res.plan; + const billingDate = res === null || res === void 0 ? void 0 : res.billingDate; + const status = res === null || res === void 0 ? void 0 : res.status; + if (plan === "freeplan") { + return true; + } else if (billingDate) { + if (new Date(billingDate) > new Date()) { + setIsSubscribed(true); + return true; + } else { + if (isGuestSign) { + setIsSubscriptionExpired(true); + } else { + window.location.href = "/subscription"; + } + } + } else if (isGuestSign) { + if (status) { + setIsSubscribed(true); + return true; + } else { + setIsSubscriptionExpired(true); + } + } else { + if (isGuestSign) { + setIsSubscriptionExpired(true); + } else { + window.location.href = "/subscription"; + } + } + } + //function for get document details for perticular signer with signer'object id + const getTemplateDetails = async () => { + try { + const params = { + templateId: props.templateId, + ispublic: true + }; + const templateDeatils = await axios__WEBPACK_IMPORTED_MODULE_26__["default"].post("".concat(localStorage.getItem("baseUrl"), "functions/getTemplate"), params, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessiontoken: localStorage.getItem("accesstoken") + } + }); + const documentData = templateDeatils.data && templateDeatils.data.result ? [templateDeatils.data.result] : []; + if (documentData && documentData.length > 0) { + setIsPublicTemplate(true); + const getPublicRole = documentData[0].PublicRole[0]; + const getUniqueIdDetails = documentData[0].Placeholders.find(x => x.Role === getPublicRole); + if (getUniqueIdDetails) { + setUniqueId(getUniqueIdDetails.Id); + } + setSignerPos(documentData[0].Placeholders); + let placeholdersOrSigners = []; + // const placeholder = documentData[0]?.Placeholders; + for (const placeholder of documentData[0].Placeholders) { + //`emailExist` variable to handle condition for quick send flow and show unsigned signers list + const signerIdExist = placeholder === null || placeholder === void 0 ? void 0 : placeholder.signerObjId; + if (signerIdExist) { + const getSignerData = documentData[0].Signers.find(data => data.objectId === (placeholder === null || placeholder === void 0 ? void 0 : placeholder.signerObjId)); + placeholdersOrSigners.push(getSignerData); + } else { + placeholdersOrSigners.push(placeholder); + } + } + setUnSignedSigners(placeholdersOrSigners); + setPdfDetails(documentData); + const loadObj = { + isLoad: false + }; + setIsLoading(loadObj); + } else if (documentData === "Error: Something went wrong!" || documentData.result && documentData.result.error) { + const loadObj = { + isLoad: false + }; + setHandleError("Error: Something went wrong!"); + setIsLoading(loadObj); + } else { + setHandleError("No Data Found!"); + const loadObj = { + isLoad: false + }; + setIsLoading(loadObj); + } + } catch (err) { + var _err$response; + console.log("err ", err); + if ((err === null || err === void 0 || (_err$response = err.response) === null || _err$response === void 0 || (_err$response = _err$response.data) === null || _err$response === void 0 ? void 0 : _err$response.code) === 101) { + setHandleError("Error: Template not found!"); + } else { + setHandleError("Error: Something went wrong!"); + } + } + }; + //function for get document details for perticular signer with signer'object id + const getDocumentDetails = async (docId, isNextUser) => { + let currUserId; + //getting document details + const documentData = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.contractDocument)(documentId || docId); + if (documentData && documentData.length > 0) { + var _documentData$; + setExtUserId((_documentData$ = documentData[0]) === null || _documentData$ === void 0 || (_documentData$ = _documentData$.ExtUserPtr) === null || _documentData$ === void 0 ? void 0 : _documentData$.objectId); + const isCompleted = documentData[0].IsCompleted && documentData[0].IsCompleted; + const expireDate = documentData[0].ExpiryDate.iso; + const declined = documentData[0].IsDeclined && documentData[0].IsDeclined; + const expireUpdateDate = new Date(expireDate).getTime(); + const currDate = new Date().getTime(); + const getSigners = documentData[0].Signers; + const getCurrentSigner = getSigners && getSigners.filter(data => data.UserId.objectId === jsonSender.objectId); + currUserId = getCurrentSigner[0] ? getCurrentSigner[0].objectId : ""; + if (_constant_const__WEBPACK_IMPORTED_MODULE_1__.isEnableSubscription) { + var _documentData$2; + await checkIsSubscribed((_documentData$2 = documentData[0]) === null || _documentData$2 === void 0 || (_documentData$2 = _documentData$2.ExtUserPtr) === null || _documentData$2 === void 0 ? void 0 : _documentData$2.objectId, currUserId); + } + if (currUserId) { + setSignerObjectId(currUserId); + } + if (documentData[0].SignedUrl) { + setPdfUrl(documentData[0].SignedUrl); + } else { + setPdfUrl(documentData[0].URL); + } + if (isCompleted) { + setIsSigned(true); + const data = { + isCertificate: true, + isModal: true + }; + setAlreadySign(true); + setIsCompleted(data); + setIsCelebration(true); + setTimeout(() => { + setIsCelebration(false); + }, 5000); + } else if (declined) { + const currentDecline = { + currnt: "another", + isDeclined: true + }; + setIsDecline(currentDecline); + } else if (currDate > expireUpdateDate) { + const expireDateFormat = moment__WEBPACK_IMPORTED_MODULE_9___default()(new Date(expireDate)).format("MMM DD, YYYY"); + setIsExpired(true); + setExpiredDate(expireDateFormat); + } // Check if the current signer is not a last signer and handle the complete message. + else if (isNextUser) { + setIsCelebration(true); + setTimeout(() => { + setIsCelebration(false); + }, 5000); + setIsCompleted({ + isModal: true, + message: "You have successfully signed the document. You can download or print a copy of the partially signed document. A copy of the digitally signed document will be sent to the owner over email once it is signed by all signers." + }); + } else { + const checkCurrentUser = documentData[0].Placeholders.find(data => data.signerObjId === currUserId); + if (checkCurrentUser) { + setCurrentSigner(true); + } + } + const isGuestSign = isGuestSignFlow; + if (!isGuestSign && !isCompleted && !declined && currDate < expireUpdateDate) { + const currentUser = JSON.parse(JSON.stringify(parse__WEBPACK_IMPORTED_MODULE_4___default().User.current())); + let isEmailVerified; + isEmailVerified = currentUser === null || currentUser === void 0 ? void 0 : currentUser.emailVerified; + if (isEmailVerified) { + setIsEmailVerified(isEmailVerified); + } else { + try { + const userQuery = new (parse__WEBPACK_IMPORTED_MODULE_4___default().Query)((parse__WEBPACK_IMPORTED_MODULE_4___default().User)); + const user = await userQuery.get(currentUser.objectId, { + sessionToken: localStorage.getItem("accesstoken") + }); + if (user) { + isEmailVerified = user === null || user === void 0 ? void 0 : user.get("emailVerified"); + setIsEmailVerified(isEmailVerified); + } + } catch (e) { + setHandleError("Error: Something went wrong!"); + } + } + } + const audittrailData = documentData[0].AuditTrail && documentData[0].AuditTrail.length > 0 && documentData[0].AuditTrail.filter(data => data.Activity === "Signed"); + const checkAlreadySign = documentData[0].AuditTrail && documentData[0].AuditTrail.length > 0 && documentData[0].AuditTrail.filter(data => data.UserPtr.objectId === currUserId && data.Activity === "Signed"); + if (checkAlreadySign && checkAlreadySign[0] && checkAlreadySign.length > 0) { + setAlreadySign(true); + } else { + const obj = documentData === null || documentData === void 0 ? void 0 : documentData[0]; + setSendInOrder((obj === null || obj === void 0 ? void 0 : obj.SendinOrder) || false); + if (obj && obj.Signers && obj.Signers.length > 0 && obj.Placeholders && obj.Placeholders.length > 0) { + var _documentData$3, _documentData$4, _documentData$0$Signe; + const params = { + event: "viewed", + contactId: currUserId, + body: { + objectId: documentData === null || documentData === void 0 ? void 0 : documentData[0].objectId, + file: (documentData === null || documentData === void 0 || (_documentData$3 = documentData[0]) === null || _documentData$3 === void 0 ? void 0 : _documentData$3.SignedUrl) || (documentData === null || documentData === void 0 || (_documentData$4 = documentData[0]) === null || _documentData$4 === void 0 ? void 0 : _documentData$4.URL), + name: documentData === null || documentData === void 0 ? void 0 : documentData[0].Name, + note: (documentData === null || documentData === void 0 ? void 0 : documentData[0].Note) || "", + description: (documentData === null || documentData === void 0 ? void 0 : documentData[0].Description) || "", + signers: documentData === null || documentData === void 0 || (_documentData$0$Signe = documentData[0].Signers) === null || _documentData$0$Signe === void 0 ? void 0 : _documentData$0$Signe.map(x => ({ + name: x === null || x === void 0 ? void 0 : x.Name, + email: x === null || x === void 0 ? void 0 : x.Email, + phone: x === null || x === void 0 ? void 0 : x.Phone + })), + viewedBy: jsonSender.email, + viewedAt: new Date(), + createdAt: documentData === null || documentData === void 0 ? void 0 : documentData[0].createdAt + } + }; + try { + await axios__WEBPACK_IMPORTED_MODULE_26__["default"].post("".concat(localStorage.getItem("baseUrl"), "functions/callwebhook"), params, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessiontoken: localStorage.getItem("accesstoken") + } + }); + } catch (err) { + console.log("Err ", err); + } + } + } + let signers = []; + let unSignedSigner = []; + const placeholdersOrSigners = []; + for (const placeholder of documentData[0].Placeholders) { + //`emailExist` variable to handle condition for quick send flow and show unsigned signers list + const signerIdExist = placeholder === null || placeholder === void 0 ? void 0 : placeholder.signerObjId; + if (signerIdExist) { + const getSignerData = documentData[0].Signers.find(data => data.objectId === (placeholder === null || placeholder === void 0 ? void 0 : placeholder.signerObjId)); + placeholdersOrSigners.push(getSignerData); + } else { + placeholdersOrSigners.push(placeholder); + } + } + //condition to check already signed document by someone + if (audittrailData && audittrailData.length > 0) { + setIsDocId(true); + for (const item of placeholdersOrSigners) { + const checkEmail = item === null || item === void 0 ? void 0 : item.email; + //if email exist then compare user signed by using email else signers objectId + const emailOrId = checkEmail ? item.email : item.objectId; + //`isSignedSignature` variable to handle break loop whenever it get true + let isSignedSignature = false; + //checking the signer who signed the document by using audit trail details. + //and save signedSigners and unsignedSigners details + for (const doc of audittrailData) { + const signedExist = checkEmail ? doc === null || doc === void 0 ? void 0 : doc.UserPtr.Email : doc === null || doc === void 0 ? void 0 : doc.UserPtr.objectId; + if (emailOrId === signedExist) { + signers.push({ + ...item + }); + isSignedSignature = true; + break; + } + } + if (!isSignedSignature) { + unSignedSigner.push({ + ...item + }); + } + } + setSignedSigners(signers); + setUnSignedSigners(unSignedSigner); + setSignerPos(documentData[0].Placeholders); + } else { + //else condition is show there are no details in audit trail then direct push all signers details + //in unsignedsigners array + setUnSignedSigners(placeholdersOrSigners); + setSignerPos(documentData[0].Placeholders); + } + setPdfDetails(documentData); + //checking if condition current user already sign or owner does not exist as a signer or document has been declined by someone or document has been expired + //then stop to display tour message + if (checkAlreadySign && checkAlreadySign[0] && checkAlreadySign.length > 0 || !currUserId || declined || currDate > expireUpdateDate) { + setRequestSignTour(true); + } else { + //else condition to check current user exist in contracts_Users class and check tour message status + //if not then check user exist in contracts_Contactbook class and check tour message status + const localuser = localStorage.getItem("Parse/".concat(_constant_appinfo__WEBPACK_IMPORTED_MODULE_20__.appInfo.appId, "/currentUser")); + const currentUser = JSON.parse(localuser); + const currentUserEmail = currentUser.email; + const res = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.contractUsers)(currentUserEmail); + if (res === "Error: Something went wrong!") { + setHandleError("Error: Something went wrong!"); + } else if (res[0] && res !== null && res !== void 0 && res.length) { + setContractName("_Users"); + currUserId = res[0].objectId; + setSignerUserId(currUserId); + const tourData = res[0].TourStatus && res[0].TourStatus; + if (tourData && tourData.length > 0) { + var _tourData$; + setTourStatus(tourData); + setRequestSignTour(((_tourData$ = tourData[0]) === null || _tourData$ === void 0 ? void 0 : _tourData$.requestSign) || false); + } + } else if ((res === null || res === void 0 ? void 0 : res.length) === 0) { + const res = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.contactBook)(currUserId); + if (res === "Error: Something went wrong!") { + setHandleError("Error: Something went wrong!"); + } else if (res[0] && res.length) { + setContractName("_Contactbook"); + const objectId = res[0].objectId; + setSignerUserId(objectId); + const tourData = res[0].TourStatus && res[0].TourStatus; + if (tourData && tourData.length > 0) { + var _tourData$2; + setTourStatus(tourData); + setRequestSignTour(((_tourData$2 = tourData[0]) === null || _tourData$2 === void 0 ? void 0 : _tourData$2.requestSign) || false); + } + } else if (res.length === 0) { + setHandleError("Error: User does not exist!"); + } + } + } + setIsUiLoading(false); + } else if (documentData === "Error: Something went wrong!" || documentData.result && documentData.result.error) { + const loadObj = { + isLoad: false + }; + setHandleError("Error: Something went wrong!"); + setIsLoading(loadObj); + } else { + setHandleError("No Data Found!"); + const loadObj = { + isLoad: false + }; + setIsLoading(loadObj); + setIsUiLoading(false); + } + await axios__WEBPACK_IMPORTED_MODULE_26__["default"].get("".concat(localStorage.getItem("baseUrl"), "classes/contracts_Signature?where={\"UserId\": {\"__type\": \"Pointer\",\"className\": \"_User\", \"objectId\":\"").concat(jsonSender === null || jsonSender === void 0 ? void 0 : jsonSender.objectId, "\"}}"), { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + }).then(Listdata => { + const json = Listdata.data; + const res = json.results; + if (res[0] && res.length > 0) { + var _res$; + setDefaultSignImg(res[0].ImageURL); + setMyInitial((_res$ = res[0]) === null || _res$ === void 0 ? void 0 : _res$.Initials); + } + const loadObj = { + isLoad: false + }; + setIsLoading(loadObj); + }).catch(err => { + const loadObj = { + isLoad: false + }; + console.log("Err ", err); + setHandleError("Error: Something went wrong!"); + setIsLoading(loadObj); + }); + }; + //function for embed signature or image url in pdf + async function embedWidgetsData() { + try { + const checkUser = signerPos.filter(data => data.signerObjId === signerObjectId); + if (checkUser && checkUser.length > 0) { + let checkboxExist, + requiredRadio, + showAlert = false, + widgetKey, + radioExist, + requiredCheckbox, + pageNumber; // `pageNumber` is used to check on which page user did not fill widget's data then change current pageNumber and show tour message on that page + + for (let i = 0; i < checkUser[0].placeHolder.length; i++) { + for (let j = 0; j < checkUser[0].placeHolder[i].pos.length; j++) { + var _checkUser$0$placeHol; + //get current page + const updatePage = (_checkUser$0$placeHol = checkUser[0].placeHolder[i]) === null || _checkUser$0$placeHol === void 0 ? void 0 : _checkUser$0$placeHol.pageNumber; + //checking checbox type widget + checkboxExist = checkUser[0].placeHolder[i].pos[j].type === "checkbox"; + //checking radio button type widget + radioExist = checkUser[0].placeHolder[i].pos[j].type === _constant_Utils__WEBPACK_IMPORTED_MODULE_10__.radioButtonWidget; + //condition to check checkbox widget exist or not + if (checkboxExist) { + //get all required type checkbox + requiredCheckbox = checkUser[0].placeHolder[i].pos.filter(position => { + var _position$options; + return !((_position$options = position.options) !== null && _position$options !== void 0 && _position$options.isReadOnly) && position.type === "checkbox"; + }); + //if required type checkbox data exit then check user checked all checkbox or some checkbox remain to check + //also validate to minimum and maximum required checkbox + if (requiredCheckbox && requiredCheckbox.length > 0) { + for (let i = 0; i < requiredCheckbox.length; i++) { + var _requiredCheckbox$i$o, _requiredCheckbox$i$o2, _requiredCheckbox$i$o3, _requiredCheckbox$i$o4; + //get minimum required count if exit + const minCount = (_requiredCheckbox$i$o = requiredCheckbox[i].options) === null || _requiredCheckbox$i$o === void 0 || (_requiredCheckbox$i$o = _requiredCheckbox$i$o.validation) === null || _requiredCheckbox$i$o === void 0 ? void 0 : _requiredCheckbox$i$o.minRequiredCount; + const parseMin = minCount && parseInt(minCount); + //get maximum required count if exit + const maxCount = (_requiredCheckbox$i$o2 = requiredCheckbox[i].options) === null || _requiredCheckbox$i$o2 === void 0 || (_requiredCheckbox$i$o2 = _requiredCheckbox$i$o2.validation) === null || _requiredCheckbox$i$o2 === void 0 ? void 0 : _requiredCheckbox$i$o2.maxRequiredCount; + const parseMax = maxCount && parseInt(maxCount); + //in `response` variable is used to get how many checkbox checked by user + const response = (_requiredCheckbox$i$o3 = requiredCheckbox[i].options) === null || _requiredCheckbox$i$o3 === void 0 || (_requiredCheckbox$i$o3 = _requiredCheckbox$i$o3.response) === null || _requiredCheckbox$i$o3 === void 0 ? void 0 : _requiredCheckbox$i$o3.length; + //in `defaultValue` variable is used to get how many checkbox checked by default + const defaultValue = (_requiredCheckbox$i$o4 = requiredCheckbox[i].options) === null || _requiredCheckbox$i$o4 === void 0 || (_requiredCheckbox$i$o4 = _requiredCheckbox$i$o4.defaultValue) === null || _requiredCheckbox$i$o4 === void 0 ? void 0 : _requiredCheckbox$i$o4.length; + //condition to check parseMin and parseMax greater than 0 then consider it as a required check box + if (parseMin > 0 && parseMax > 0 && !response && !defaultValue && !showAlert) { + showAlert = true; + widgetKey = requiredCheckbox[i].key; + pageNumber = updatePage; + setminRequiredCount(parseMin); + } + //else condition to validate minimum required checkbox + else if (parseMin > 0 && (parseMin > response || !response)) { + if (!showAlert) { + showAlert = true; + widgetKey = requiredCheckbox[i].key; + pageNumber = updatePage; + setminRequiredCount(parseMin); + } + } + } + } + } + //condition to check radio widget exist or not + else if (radioExist) { + var _requiredRadio; + //get all required type radio button + requiredRadio = checkUser[0].placeHolder[i].pos.filter(position => { + var _position$options2; + return !((_position$options2 = position.options) !== null && _position$options2 !== void 0 && _position$options2.isReadOnly) && position.type === _constant_Utils__WEBPACK_IMPORTED_MODULE_10__.radioButtonWidget; + }); + //if required type radio data exit then check user checked all radio button or some radio remain to check + if (requiredRadio && ((_requiredRadio = requiredRadio) === null || _requiredRadio === void 0 ? void 0 : _requiredRadio.length) > 0) { + let checkSigned; + for (let i = 0; i < ((_requiredRadio2 = requiredRadio) === null || _requiredRadio2 === void 0 ? void 0 : _requiredRadio2.length); i++) { + var _requiredRadio2, _requiredRadio$i; + checkSigned = (_requiredRadio$i = requiredRadio[i]) === null || _requiredRadio$i === void 0 || (_requiredRadio$i = _requiredRadio$i.options) === null || _requiredRadio$i === void 0 ? void 0 : _requiredRadio$i.response; + if (!checkSigned) { + var _requiredRadio$i2; + let checkDefaultSigned = (_requiredRadio$i2 = requiredRadio[i]) === null || _requiredRadio$i2 === void 0 || (_requiredRadio$i2 = _requiredRadio$i2.options) === null || _requiredRadio$i2 === void 0 ? void 0 : _requiredRadio$i2.defaultValue; + if (!checkDefaultSigned && !showAlert) { + showAlert = true; + widgetKey = requiredRadio[i].key; + pageNumber = updatePage; + setminRequiredCount(null); + } + } + } + } + } + //else condition to check all type widget data fill or not except checkbox and radio button + else { + //get all required type widgets except checkbox and radio + const requiredWidgets = checkUser[0].placeHolder[i].pos.filter(position => { + var _position$options3; + return ((_position$options3 = position.options) === null || _position$options3 === void 0 ? void 0 : _position$options3.status) === "required" && position.type !== _constant_Utils__WEBPACK_IMPORTED_MODULE_10__.radioButtonWidget && position.type !== "checkbox"; + }); + if (requiredWidgets && (requiredWidgets === null || requiredWidgets === void 0 ? void 0 : requiredWidgets.length) > 0) { + let checkSigned; + for (let i = 0; i < (requiredWidgets === null || requiredWidgets === void 0 ? void 0 : requiredWidgets.length); i++) { + var _requiredWidgets$i; + checkSigned = (_requiredWidgets$i = requiredWidgets[i]) === null || _requiredWidgets$i === void 0 || (_requiredWidgets$i = _requiredWidgets$i.options) === null || _requiredWidgets$i === void 0 ? void 0 : _requiredWidgets$i.response; + if (!checkSigned) { + var _requiredWidgets$i2; + const checkSignUrl = (_requiredWidgets$i2 = requiredWidgets[i]) === null || _requiredWidgets$i2 === void 0 || (_requiredWidgets$i2 = _requiredWidgets$i2.pos) === null || _requiredWidgets$i2 === void 0 ? void 0 : _requiredWidgets$i2.SignUrl; + if (!checkSignUrl) { + var _requiredWidgets$i3; + let checkDefaultSigned = (_requiredWidgets$i3 = requiredWidgets[i]) === null || _requiredWidgets$i3 === void 0 || (_requiredWidgets$i3 = _requiredWidgets$i3.options) === null || _requiredWidgets$i3 === void 0 ? void 0 : _requiredWidgets$i3.defaultValue; + if (!checkDefaultSigned && !showAlert) { + showAlert = true; + widgetKey = requiredWidgets[i].key; + pageNumber = updatePage; + setminRequiredCount(null); + } + } + } + } + } + } + } + //when showAlert is true then break the loop and show alert to fill required data in widgets + if (showAlert) { + break; + } + } + if (checkboxExist && requiredCheckbox && showAlert) { + setUnSignedWidgetId(widgetKey); + setPageNumber(pageNumber); + setWidgetsTour(true); + } else if (radioExist && showAlert) { + setUnSignedWidgetId(widgetKey); + setPageNumber(pageNumber); + setWidgetsTour(true); + } else if (showAlert) { + setUnSignedWidgetId(widgetKey); + setPageNumber(pageNumber); + setWidgetsTour(true); + } else { + setIsUiLoading(true); + const pngUrl = checkUser[0].placeHolder; + let pdfArrBuffer; + //`contractDocument` function used to get updated SignedUrl + //resolved issue of sign document by multiple signers simultaneously + const documentData = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.contractDocument)(documentId); + if (documentData && documentData.length > 0) { + var _documentData$5, _documentData$6; + const url = ((_documentData$5 = documentData[0]) === null || _documentData$5 === void 0 ? void 0 : _documentData$5.SignedUrl) || ((_documentData$6 = documentData[0]) === null || _documentData$6 === void 0 ? void 0 : _documentData$6.URL); + //convert document url in array buffer format to use embed widgets in pdf using pdf-lib + const arrayBuffer = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.convertPdfArrayBuffer)(url); + if (arrayBuffer === "Error") { + setHandleError("Error: invalid document!"); + } else { + pdfArrBuffer = arrayBuffer; + } + } else if (documentData === "Error: Something went wrong!" || documentData.result && documentData.result.error) { + setHandleError("Error: Something went wrong!"); + } else { + setHandleError("Document not Found!"); + } + + // Load a PDFDocument from the existing PDF bytes + const existingPdfBytes = pdfArrBuffer; + try { + var _pdfDetails$, _pdfDetails$2; + const pdfDoc = await pdf_lib__WEBPACK_IMPORTED_MODULE_2__.PDFDocument.load(existingPdfBytes); + const isSignYourSelfFlow = false; + const extUserPtr = pdfDetails[0].ExtUserPtr; + const HeaderDocId = extUserPtr === null || extUserPtr === void 0 ? void 0 : extUserPtr.HeaderDocId; + //embed document's object id to all pages in pdf document + if (!HeaderDocId) { + if (!isDocId) { + await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.embedDocId)(pdfDoc, documentId, allPages); + } + } + //embed multi signature in pdf + const pdfBytes = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.multiSignEmbed)(pngUrl, pdfDoc, isSignYourSelfFlow, scale); + // console.log("pdfte", pdfBytes); + //get ExistUserPtr object id of user class to get tenantDetails + const objectId = pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$ = pdfDetails[0]) === null || _pdfDetails$ === void 0 || (_pdfDetails$ = _pdfDetails$.ExtUserPtr) === null || _pdfDetails$ === void 0 || (_pdfDetails$ = _pdfDetails$.UserId) === null || _pdfDetails$ === void 0 ? void 0 : _pdfDetails$.objectId; + //get ExistUserPtr email to get userDetails + const currentUserEmail = pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$2 = pdfDetails[0]) === null || _pdfDetails$2 === void 0 || (_pdfDetails$2 = _pdfDetails$2.ExtUserPtr) === null || _pdfDetails$2 === void 0 ? void 0 : _pdfDetails$2.Email; + const res = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.contractUsers)(currentUserEmail); + let activeMailAdapter = ""; + if (res === "Error: Something went wrong!") { + setHandleError("Error: Something went wrong!"); + setIsLoading({ + isLoad: false + }); + } else if (!res || (res === null || res === void 0 ? void 0 : res.length) === 0) { + activeMailAdapter = ""; + } else if (res[0] && res.length) { + var _res$2; + activeMailAdapter = (_res$2 = res[0]) === null || _res$2 === void 0 ? void 0 : _res$2.active_mail_adapter; + } + //function for call to embed signature in pdf and get digital signature pdf + try { + const res = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.signPdfFun)(pdfBytes, documentId, signerObjectId, setIsAlert, objectId, isSubscribed, activeMailAdapter, pngUrl); + if (res && res.status === "success") { + var _pdfDetails$3, _pdfDetails$4; + setPdfUrl(res.data); + setIsSigned(true); + setSignedSigners([]); + setUnSignedSigners([]); + getDocumentDetails(true); + const index = pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].Signers.findIndex(x => x.Email === jsonSender.email); + const newIndex = index + 1; + const usermail = { + Email: (pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$3 = pdfDetails[0]) === null || _pdfDetails$3 === void 0 || (_pdfDetails$3 = _pdfDetails$3.Placeholders[newIndex]) === null || _pdfDetails$3 === void 0 ? void 0 : _pdfDetails$3.email) || "" + }; + const user = usermail !== null && usermail !== void 0 && usermail.Email ? usermail : pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$4 = pdfDetails[0]) === null || _pdfDetails$4 === void 0 ? void 0 : _pdfDetails$4.Signers[newIndex]; + if (sendmail !== "false" && sendInOrder) { + var _pdfDetails$5, _pdfDetails$6; + const requestBody = pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$5 = pdfDetails[0]) === null || _pdfDetails$5 === void 0 ? void 0 : _pdfDetails$5.RequestBody; + const requestSubject = pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$6 = pdfDetails[0]) === null || _pdfDetails$6 === void 0 ? void 0 : _pdfDetails$6.RequestSubject; + if (user) { + var _pdfDetails$7; + const expireDate = pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].ExpiryDate.iso; + const newDate = new Date(expireDate); + const localExpireDate = newDate.toLocaleDateString("en-US", { + day: "numeric", + month: "long", + year: "numeric" + }); + let senderEmail = pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].ExtUserPtr.Email; + let senderPhone = pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$7 = pdfDetails[0]) === null || _pdfDetails$7 === void 0 || (_pdfDetails$7 = _pdfDetails$7.ExtUserPtr) === null || _pdfDetails$7 === void 0 ? void 0 : _pdfDetails$7.Phone; + const senderName = "".concat(pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].ExtUserPtr.Name); + try { + var _pdfDetails$8, _replaceVar, _replaceVar2; + const imgPng = "https://qikinnovation.ams3.digitaloceanspaces.com/logo.png"; + let url = "".concat(localStorage.getItem("baseUrl"), "functions/sendmailv3"); + const headers = { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessionToken: localStorage.getItem("accesstoken") + }; + const objectId = user === null || user === void 0 ? void 0 : user.objectId; + const hostUrl = window.location.origin; + //encode this url value `${pdfDetails?.[0].objectId}/${user.Email}/${objectId}` to base64 using `btoa` function + let encodeBase64; + if (objectId) { + encodeBase64 = btoa("".concat(pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].objectId, "/").concat(user.Email, "/").concat(objectId)); + } else { + encodeBase64 = btoa("".concat(pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].objectId, "/").concat(user.Email)); + } + // let signPdf = `${hostUrl}/login/${encodeBase64}`; + const hostPublicUrl = "https://staging-app.opensignlabs.com"; + let signPdf = props !== null && props !== void 0 && props.templateId ? "".concat(hostPublicUrl, "/login/").concat(encodeBase64) : "".concat(hostUrl, "/login/").concat(encodeBase64); + const openSignUrl = "https://www.opensignlabs.com/contact-us"; + const orgName = (_pdfDetails$8 = pdfDetails[0]) !== null && _pdfDetails$8 !== void 0 && _pdfDetails$8.ExtUserPtr.Company ? pdfDetails[0].ExtUserPtr.Company : ""; + const themeBGcolor = _constant_const__WEBPACK_IMPORTED_MODULE_1__.themeColor; + let replaceVar; + if (requestBody && requestSubject && (!_constant_const__WEBPACK_IMPORTED_MODULE_1__.isEnableSubscription || isSubscribed)) { + const replacedRequestBody = requestBody.replace(/"/g, "'"); + const htmlReqBody = "" + replacedRequestBody + " "; + const variables = { + document_title: pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].Name, + sender_name: senderName, + sender_mail: senderEmail, + sender_phone: senderPhone, + receiver_name: user.Name, + receiver_email: user.Email, + receiver_phone: user.Phone, + expiry_date: localExpireDate, + company_name: orgName, + signing_url: "Sign here") + }; + replaceVar = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.replaceMailVaribles)(requestSubject, htmlReqBody, variables); + } + let params = { + mailProvider: activeMailAdapter, + extUserId: extUserId, + recipient: user.Email, + subject: requestSubject ? (_replaceVar = replaceVar) === null || _replaceVar === void 0 ? void 0 : _replaceVar.subject : "".concat(pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].ExtUserPtr.Name, " has requested you to sign \"").concat(pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].Name, "\""), + from: senderEmail, + html: requestBody ? (_replaceVar2 = replaceVar) === null || _replaceVar2 === void 0 ? void 0 : _replaceVar2.body : "

Digital Signature Request

" + (pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].ExtUserPtr.Name) + " has requested you to review and sign " + (pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].Name) + ".

Sender " + senderEmail + "
Organization " + orgName + "
Expires on " + localExpireDate + "

This is an automated email from OpenSign™. For any queries regarding this email, please contact the sender " + senderEmail + " directly.If you think this email is inappropriate or spam, you may file a complaint with OpenSign™ here.

" + }; + await axios__WEBPACK_IMPORTED_MODULE_26__["default"].post(url, params, { + headers: headers + }); + } catch (error) { + console.log("error", error); + } + } + } + } else { + setIsAlert({ + isShow: true, + alertMessage: "something went wrong" + }); + } + } catch (err) { + setIsAlert({ + isShow: true, + alertMessage: "something went wrong" + }); + } + } catch (err) { + setIsUiLoading(false); + if (err && err.message.includes("is encrypted.")) { + setIsAlert({ + isShow: true, + alertMessage: "Currently encrypted pdf files are not supported." + }); + } else { + console.log("err in request signing", err); + setIsAlert({ + isShow: true, + alertMessage: "Something went wrong." + }); + } + } + } + setIsSignPad(false); + } else { + setIsAlert({ + isShow: true, + alertMessage: "something went wrong" + }); + } + } catch (err) { + console.log("err in embedsign", err); + setIsUiLoading(false); + setIsAlert({ + isShow: true, + alertMessage: "something went wrong, please try again later." + }); + } + } + + //function for update TourStatus + const closeTour = async () => { + setWidgetsTour(false); + }; + const tourConfig = [{ + selector: '[data-tut="IsSigned"]', + content: minRequiredCount ? "Please confirm that you have selected at least ".concat(minRequiredCount, " checkboxes.") : "Ensure this field is accurately filled and meets all requirements.", + position: "top", + style: { + fontSize: "13px" + } + }]; + //function for get pdf page details + const pageDetails = async pdf => { + let pdfWHObj = []; + const totalPages = pdf.numPages; // Get the total number of pages + for (let index = 0; index < totalPages; index++) { + const getPage = await pdf.getPage(index + 1); + const scale = 1; + const { + width, + height + } = getPage.getViewport({ + scale + }); + pdfWHObj.push({ + pageNumber: index + 1, + width, + height + }); + } + setPdfOriginalWH(pdfWHObj); + setPdfLoad(true); + }; + //function for change page + function changePage(offset) { + setPageNumber(prevPageNumber => prevPageNumber + offset); + } + + //function for image upload or update + const onImageChange = event => { + if (event.target.files && event.target.files[0]) { + (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.onImageSelect)(event, setImgWH, setImage); + } + }; + //function for upload stamp image + const saveImage = () => { + //get current signers placeholder position data + const currentSigner = signerPos.filter(data => data.signerObjId === signerObjectId); + //get current pagenumber placeholder index + const getIndex = currentSigner[0].placeHolder.findIndex(object => { + return object.pageNumber === pageNumber; + }); + //get current signer placeholder position data + const placeholderPosition = currentSigner[0].placeHolder; + //function of save image and get updated position with image url + const getUpdatePosition = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.onSaveImage)(placeholderPosition, getIndex, signKey, imgWH, image); + + //replace updated placeholder position with old data + placeholderPosition.splice(0, placeholderPosition.length, ...getUpdatePosition); + //get current signers placeholder position data index number in array + const indexofSigner = signerPos.findIndex(object => { + return object.signerObjId === signerObjectId; + }); + //update current signers data with new placeholder position array data + setSignerPos(prevState => { + const newState = [...prevState]; // Create a copy of the state + newState.splice(indexofSigner, 1, ...currentSigner); // Modify the copy + return newState; // Update the state with the modified copy + }); + }; + //function for save button to save signature or image url + const saveSign = (type, isDefaultSign, width, height) => { + const isTypeText = width && height ? true : false; + const signatureImg = isDefaultSign ? isDefaultSign === "initials" ? myInitial : defaultSignImg : signature; + let imgWH = { + width: width ? width : "", + height: height ? height : "" + }; + setIsSignPad(false); + setIsImageSelect(false); + setImage(); + + //get current signers placeholder position data + const currentSigner = signerPos.filter(data => data.signerObjId === signerObjectId); + //get current pagenumber placeholder index + const getIndex = currentSigner[0].placeHolder.findIndex(object => { + return object.pageNumber === pageNumber; + }); + + //set default signature image width and height + if (isDefaultSign) { + const img = new Image(); + img.src = defaultSignImg; + if (img.complete) { + imgWH = { + width: img.width, + height: img.height + }; + } + } + //get current signer placeholder position data + const placeholderPosition = currentSigner[0].placeHolder; + //function of save signature image and get updated position with signature image url + const getUpdatePosition = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.onSaveSign)(type, placeholderPosition, getIndex, signKey, signatureImg, imgWH, isDefaultSign, isTypeText); + const updateSignerData = currentSigner.map(obj => { + if (obj.signerObjId === signerObjectId) { + return { + ...obj, + placeHolder: getUpdatePosition + }; + } + return obj; + }); + const index = signerPos.findIndex(data => data.signerObjId === signerObjectId); + setSignerPos(prevState => { + const newState = [...prevState]; + newState.splice(index, 1, ...updateSignerData); + return newState; + }); + }; + //function for set decline true on press decline button + const declineDoc = async reason => { + setIsDecline({ + isDeclined: false + }); + const data = { + IsDeclined: true, + DeclineReason: reason + }; + setIsUiLoading(true); + await axios__WEBPACK_IMPORTED_MODULE_26__["default"].put("".concat(localStorage.getItem("baseUrl"), "classes/contracts_Document/").concat(documentId), data, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + }).then(async result => { + const res = result.data; + if (res) { + var _pdfDetails$9, _pdfDetails$10, _pdfDetails$0$Signers; + const currentDecline = { + currnt: "YouDeclined", + isDeclined: true + }; + setIsDecline(currentDecline); + setIsUiLoading(false); + const params = { + event: "declined", + body: { + objectId: pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].objectId, + file: (pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$9 = pdfDetails[0]) === null || _pdfDetails$9 === void 0 ? void 0 : _pdfDetails$9.SignedUrl) || (pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$10 = pdfDetails[0]) === null || _pdfDetails$10 === void 0 ? void 0 : _pdfDetails$10.URL), + name: pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].Name, + note: (pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].Note) || "", + description: (pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].Description) || "", + signers: pdfDetails === null || pdfDetails === void 0 || (_pdfDetails$0$Signers = pdfDetails[0].Signers) === null || _pdfDetails$0$Signers === void 0 ? void 0 : _pdfDetails$0$Signers.map(x => ({ + name: x === null || x === void 0 ? void 0 : x.Name, + email: x === null || x === void 0 ? void 0 : x.Email, + phone: x === null || x === void 0 ? void 0 : x.Phone + })), + declinedBy: jsonSender.email, + declinedAt: new Date(), + createdAt: pdfDetails === null || pdfDetails === void 0 ? void 0 : pdfDetails[0].createdAt + } + }; + try { + await axios__WEBPACK_IMPORTED_MODULE_26__["default"].post("".concat(localStorage.getItem("baseUrl"), "functions/callwebhook"), params, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + sessiontoken: localStorage.getItem("accesstoken") + } + }); + } catch (err) { + console.log("Err ", err); + } + } + }).catch(err => { + console.log("error updating field is decline ", err); + }); + }; + //function to add default signature for all requested placeholder of sign + const addDefaultSignature = () => { + //get current signers placeholder position data + const currentSignerPosition = signerPos.filter(data => data.signerObjId === signerObjectId); + //function for save default signature url for all placeholder position + const updatePlace = (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.addDefaultSignatureImg)(currentSignerPosition[0].placeHolder, defaultSignImg); + const updatesignerPos = signerPos.map(x => x.signerObjId === signerObjectId ? { + ...x, + placeHolder: updatePlace + } : x); + setSignerPos(updatesignerPos); + setDefaultSignAlert({ + isShow: false, + alertMessage: "" + }); + }; + const handleDontShow = isChecked => { + setIsDontShow(isChecked); + }; + // console.log("signerpos", signerPos); + //function to close tour and save tour status + const closeRequestSignTour = async () => { + setRequestSignTour(true); + if (isDontShow) { + let updatedTourStatus = []; + if (tourStatus.length > 0) { + updatedTourStatus = [...tourStatus]; + const requestSignIndex = tourStatus.findIndex(obj => obj["requestSign"] === false || obj["requestSign"] === true); + if (requestSignIndex !== -1) { + updatedTourStatus[requestSignIndex] = { + requestSign: true + }; + } else { + updatedTourStatus.push({ + requestSign: true + }); + } + } else { + updatedTourStatus = [{ + requestSign: true + }]; + } + try { + await axios__WEBPACK_IMPORTED_MODULE_26__["default"].put("".concat(localStorage.getItem("baseUrl"), "classes/contracts").concat(contractName, "/").concat(signerUserId), { + TourStatus: updatedTourStatus + }, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId"), + "X-Parse-Session-Token": localStorage.getItem("accesstoken") + } + }); + } catch (e) { + console.log("update tour messages error", e); + } + } + }; + const requestSignTourFunction = () => { + const tourConfig = [{ + selector: '[data-tut="reactourFirst"]', + content: () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_TourContentWithBtn__WEBPACK_IMPORTED_MODULE_19__["default"], { + message: "List of signers who still need to sign the document .", + isChecked: handleDontShow + }), + position: "top", + style: { + fontSize: "13px" + } + }, { + selector: '[data-tut="pdfArea"]', + content: () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_TourContentWithBtn__WEBPACK_IMPORTED_MODULE_19__["default"], { + message: "Click any of the placeholders appearing on the document to sign. You will then see options to draw your signature, type it, or upload an image .", + isChecked: handleDontShow + }), + position: "top", + style: { + fontSize: "13px" + } + }, { + selector: '[data-tut="reactourFifth"]', + content: () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_TourContentWithBtn__WEBPACK_IMPORTED_MODULE_19__["default"], { + message: "Click the Back, Decline, or Finish buttons to navigate your document. Use the ellipsis menu for additional options, including the Download button .", + isChecked: handleDontShow + }), + position: "top", + style: { + fontSize: "13px" + } + }]; + const signedByStep = { + selector: '[data-tut="reactourSecond"]', + content: () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_TourContentWithBtn__WEBPACK_IMPORTED_MODULE_19__["default"], { + message: "List of signers who have already signed the document .", + isChecked: handleDontShow + }), + position: "top", + style: { + fontSize: "13px" + } + }; + //checking if signed by user component exist then add signed step + const signedBy = signedSigners.length > 0 ? [...tourConfig.slice(0, 0), signedByStep, ...tourConfig.slice(0)] : tourConfig; + + //checking if default signature component exist then add defaultSign step + const defaultSignStep = { + selector: '[data-tut="reactourThird"]', + content: () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_TourContentWithBtn__WEBPACK_IMPORTED_MODULE_19__["default"], { + message: "You can click \"Auto Sign All\" to automatically sign at all the locations meant to be signed by you. Make sure that you review the document properly before you click this button .", + isChecked: handleDontShow + }), + position: "top", + style: { + fontSize: "13px" + } + }; + //index is handle is signed by exist then 2 else 1 to add tour step + const index = signedSigners.length > 0 ? 2 : 1; + const defaultSignTour = defaultSignImg ? [...signedBy.slice(0, index), defaultSignStep, ...signedBy.slice(index)] : signedBy; + if (isMobile) { + tourConfig.shift(); + } + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(reactour__WEBPACK_IMPORTED_MODULE_7__["default"], { + onRequestClose: closeRequestSignTour, + steps: isMobile ? tourConfig : defaultSignTour, + isOpen: true, + closeWithMask: false, + rounded: 5 + }); + }; + const handleUserDetails = () => { + setIsPublicContact(true); + }; + + //`handlePublicUser` function to use create user from public role and create document from public template + const handlePublicUser = async e => { + e.preventDefault(); + setLoading(true); + try { + var _pdfDetails$11, _pdfDetails$12, _userRes$data; + const params = { + ...contact, + templateid: (_pdfDetails$11 = pdfDetails[0]) === null || _pdfDetails$11 === void 0 ? void 0 : _pdfDetails$11.objectId, + role: (_pdfDetails$12 = pdfDetails[0]) === null || _pdfDetails$12 === void 0 ? void 0 : _pdfDetails$12.PublicRole[0] + }; + const userRes = await axios__WEBPACK_IMPORTED_MODULE_26__["default"].post("".concat(localStorage.getItem("baseUrl"), "/functions/publicuserlinkcontacttodoc"), params, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId") + } + }); + if (userRes !== null && userRes !== void 0 && (_userRes$data = userRes.data) !== null && _userRes$data !== void 0 && _userRes$data.result) { + setRes(userRes.data.result); + await SendOtp(); + } else { + alert("something went wrong"); + } + } catch (e) { + console.log("e", e); + // setIsLoader(false); + } + }; + const handleInputChange = e => { + setContact(prev => ({ + ...prev, + [e.target.name]: e.target.value + })); + }; + const SendOtp = async () => { + try { + const params = { + email: contact.email, + docId: res.docId + }; + const Otp = await axios__WEBPACK_IMPORTED_MODULE_26__["default"].post("".concat(localStorage.getItem("baseUrl"), "/functions/SendOTPMailV1"), params, { + headers: { + "Content-Type": "application/json", + "X-Parse-Application-Id": localStorage.getItem("parseAppId") + } + }); + if (Otp) { + setIsOtp(true); + setLoading(false); + } + } catch (error) { + alert("something went wrong!"); + } + }; + + //verify OTP send on via email + const VerifyOTP = async e => { + e.preventDefault(); + setLoading(true); + const serverUrl = localStorage.getItem("baseUrl") && localStorage.getItem("baseUrl"); + const parseId = localStorage.getItem("parseAppId") && localStorage.getItem("parseAppId"); + if (otp) { + // setLoading(true); + try { + let url = "".concat(serverUrl, "/functions/AuthLoginAsMail/"); + const headers = { + "Content-Type": "application/json", + "X-Parse-Application-Id": parseId + }; + let body = { + email: contact.email, + otp: otp + }; + let user = await axios__WEBPACK_IMPORTED_MODULE_26__["default"].post(url, body, { + headers: headers + }); + if (user.data.result === "Invalid Otp") { + alert("Invalid Otp"); + setLoading(false); + } else if (user.data.result === "user not found!") { + alert("User not found!"); + setLoading(false); + } else { + let _user = user.data.result; + const parseId = localStorage.getItem("parseAppId"); + const contractUserDetails = await (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.contractUsers)(_user.email); + localStorage.setItem("UserInformation", JSON.stringify(_user)); + localStorage.setItem("Parse/".concat(parseId, "/currentUser"), JSON.stringify(_user)); + if (contractUserDetails && contractUserDetails.length > 0) { + localStorage.setItem("Extand_Class", JSON.stringify(contractUserDetails)); + } + localStorage.setItem("username", _user.name); + localStorage.setItem("accesstoken", _user.sessionToken); + setLoading(false); + // navigate(`/load/recipientSignPdf/${res?.docId}/${res?.contactId}`); + // document.getElementById("my_modal").close(); + setIsPublicContact(false); + setIsPublicTemplate(false); + setIsLoading({ + isLoad: false + }); + setDocumentId(res === null || res === void 0 ? void 0 : res.docId); + getDocumentDetails(res === null || res === void 0 ? void 0 : res.docId); + } + } catch (error) { + console.log("err ", error); + } + } else { + alert("Please Enter OTP!"); + } + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_dnd__WEBPACK_IMPORTED_MODULE_27__.DndProvider, { + backend: react_dnd_html5_backend__WEBPACK_IMPORTED_MODULE_28__.HTML5Backend + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_Title__WEBPACK_IMPORTED_MODULE_16__["default"], { + title: props.templateId ? "Public Sign" : "Request Sign" + }), isSubscriptionExpired ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_ModalUi__WEBPACK_IMPORTED_MODULE_18__["default"], { + title: "Subscription Expired", + isOpen: isSubscriptionExpired, + showClose: false + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-col justify-center items-center py-4 md:py-5 gap-5" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { + className: "text-sm md:text-lg font-normal" + }, "Owner's subscription has expired."))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, isLoading.isLoad ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_LoaderWithMsg__WEBPACK_IMPORTED_MODULE_11__["default"], { + isLoading: isLoading + }) : handleError ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_HandleError__WEBPACK_IMPORTED_MODULE_12__["default"], { + handleError: handleError + }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, isUiLoading && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "absolute h-[100vh] w-full flex flex-col justify-center items-center z-[999] bg-[#e6f2f2] bg-opacity-80" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_Loader__WEBPACK_IMPORTED_MODULE_21__["default"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "text-[13px] text-base-content" + }, "This might take some time")), isCelebration && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "relative z-[1000]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react_confetti__WEBPACK_IMPORTED_MODULE_8___default()), { + width: window.innerWidth, + height: window.innerHeight + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + style: { + pointerEvents: isExpired || isDecline.isDeclined && isDecline.currnt === "another" ? "none" : "auto" + }, + className: "relative op-card overflow-hidden flex flex-col md:flex-row justify-between bg-base-300" + }, !requestSignTour && signerObjectId && requestSignTourFunction(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_ModalUi__WEBPACK_IMPORTED_MODULE_18__["default"], { + isOpen: isAlert.isShow, + title: "Alert message", + handleClose: () => { + setIsAlert({ + isShow: false, + alertMessage: "" + }); + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "h-full p-[20px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, isAlert.alertMessage), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "h-[1px] w-full my-[15px] bg-[#9f9f9f]" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => { + setIsAlert({ + isShow: false, + alertMessage: "" + }); + }, + type: "button", + className: "op-btn op-btn-primary" + }, "Ok"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(reactour__WEBPACK_IMPORTED_MODULE_7__["default"], { + showNumber: false, + showNavigation: false, + showNavigationNumber: false, + onRequestClose: closeTour, + steps: tourConfig, + isOpen: widgetsTour, + rounded: 5, + closeWithMask: false + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_PdfDeclineModal__WEBPACK_IMPORTED_MODULE_15__["default"], { + show: isDecline.isDeclined, + headMsg: "Document Declined", + bodyMssg: isDecline.currnt === "Sure" ? "Are you sure want to decline this document ?" : isDecline.currnt === "YouDeclined" ? "You have declined this document!" : isDecline.currnt === "another" && "You can not sign this document as it has been declined/revoked.", + footerMessage: isDecline.currnt === "Sure", + declineDoc: declineDoc, + setIsDecline: setIsDecline + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_PdfDeclineModal__WEBPACK_IMPORTED_MODULE_15__["default"], { + show: isExpired, + headMsg: "Document Expired!", + bodyMssg: "This document expired on ".concat(expiredDate, " and is no longer available to sign.") + }), !isEmailVerified && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_pdf_VerifyEmail__WEBPACK_IMPORTED_MODULE_23__["default"], { + isVerifyModal: isVerifyModal, + setIsVerifyModal: setIsVerifyModal, + handleVerifyEmail: handleVerifyEmail, + setOtp: setOtp, + otp: otp, + otpLoader: otpLoader, + handleVerifyBtn: handleVerifyBtn, + handleResend: handleResend + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_ModalUi__WEBPACK_IMPORTED_MODULE_18__["default"], { + isOpen: isPublicContact, + title: "Contact Details", + handleClose: () => { + setIsPublicContact(false); + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "h-full p-[20px]" + }, isOtp ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("form", { + onSubmit: VerifyOTP + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-col gap-2" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "You will get a OTP via Email"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { + className: "op-input op-input-bordered flex items-center gap-2 " + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + type: "number", + name: "otp", + className: "grow", + placeholder: "Enter Verification Code", + required: true, + value: otp, + onChange: e => setOtp(e.target.value), + disabled: loading + }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "op-modal-action" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex gap-2" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-ghost", + onClick: () => { + // document.getElementById("my_modal").close(); + setIsPublicContact(false); + setLoading(false); + setIsOtp(false); + setOtp(); + setContact({ + name: "", + email: "", + phone: "" + }); + } + }, "Cancel"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-primary", + disabled: loading + }, loading ? "Loading..." : "Verify")))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("form", { + onSubmit: handlePublicUser + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-col gap-2" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { + className: "op-input op-input-bordered flex items-center gap-2 " + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 16 16", + fill: "currentColor", + className: "w-4 h-4 opacity-70" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("path", { + d: "M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM12.735 14c.618 0 1.093-.561.872-1.139a6.002 6.002 0 0 0-11.215 0c-.22.578.254 1.139.872 1.139h9.47Z" + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + type: "text", + className: "grow", + name: "name", + value: contact.name, + onChange: handleInputChange, + placeholder: "name", + required: true, + disabled: loading + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { + className: "op-input op-input-bordered flex items-center gap-2 " + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 16 16", + fill: "currentColor", + className: "w-4 h-4 opacity-70" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("path", { + d: "M2.5 3A1.5 1.5 0 0 0 1 4.5v.793c.026.009.051.02.076.032L7.674 8.51c.206.1.446.1.652 0l6.598-3.185A.755.755 0 0 1 15 5.293V4.5A1.5 1.5 0 0 0 13.5 3h-11Z" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("path", { + d: "M15 6.954 8.978 9.86a2.25 2.25 0 0 1-1.956 0L1 6.954V11.5A1.5 1.5 0 0 0 2.5 13h11a1.5 1.5 0 0 0 1.5-1.5V6.954Z" + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + type: "text", + className: "grow", + name: "email", + value: contact.email, + onChange: handleInputChange, + placeholder: "Email", + required: true, + disabled: loading + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { + className: "op-input op-input-bordered flex items-center gap-2 " + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 16 16", + fill: "currentColor", + className: "w-4 h-4 opacity-70" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("path", { + d: "M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM12.735 14c.618 0 1.093-.561.872-1.139a6.002 6.002 0 0 0-11.215 0c-.22.578.254 1.139.872 1.139h9.47Z" + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + value: contact.phone, + onChange: handleInputChange, + type: "text", + name: "phone", + className: "grow", + placeholder: "phone", + disabled: loading + }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "op-modal-action" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex gap-2" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-ghost", + onClick: () => { + // document.getElementById("my_modal").close(); + setIsPublicContact(false); + } + }, "Close"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-primary", + disabled: loading + }, loading ? "Loading..." : "Submit")))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_ModalUi__WEBPACK_IMPORTED_MODULE_18__["default"], { + isOpen: defaultSignAlert.isShow, + title: "Auto sign", + handleClose: () => setDefaultSignAlert({ + isShow: false, + alertMessage: "" + }) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "h-full p-[20px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, defaultSignAlert.alertMessage), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "h-[1px] w-full my-[15px] bg-[#9f9f9f]" + }), defaultSignImg ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => addDefaultSignature(), + type: "button", + className: "op-btn op-btn-primary" + }, "Yes"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => setDefaultSignAlert({ + isShow: false, + alertMessage: "" + }), + type: "button", + className: "op-btn op-btn-secondary" + }, "Close")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => setIsAlert({ + isShow: false, + alertMessage: "" + }), + type: "button", + className: "op-btn op-btn-primary" + }, "Ok"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_pdf_RenderAllPdfPage__WEBPACK_IMPORTED_MODULE_6__["default"], { + signerPos: signerPos, + signerObjectId: signerObjectId, + signPdfUrl: pdfDetails[0] && (((_pdfDetails$13 = pdfDetails[0]) === null || _pdfDetails$13 === void 0 ? void 0 : _pdfDetails$13.SignedUrl) || ((_pdfDetails$14 = pdfDetails[0]) === null || _pdfDetails$14 === void 0 ? void 0 : _pdfDetails$14.URL)), + allPages: allPages, + setAllPages: setAllPages, + setPageNumber: setPageNumber, + pageNumber: pageNumber + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: " w-full md:w-[57%] flex mr-4" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_pdf_PdfZoom__WEBPACK_IMPORTED_MODULE_24__["default"], { + setScale: setScale, + scale: scale, + containerWH: containerWH, + setZoomPercent: setZoomPercent, + zoomPercent: zoomPercent + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: " w-full md:w-[95%] " + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_ModalUi__WEBPACK_IMPORTED_MODULE_18__["default"], { + isOpen: isCompleted.isModal, + title: "Document signed", + handleClose: () => { + setIsCompleted(prev => ({ + ...prev, + isModal: false + })); + }, + reduceWidth: !(isCompleted !== null && isCompleted !== void 0 && isCompleted.message) && "md:min-w-[440px] md:max-w-[400px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "h-full p-[20px] text-base-content" + }, isCompleted !== null && isCompleted !== void 0 && isCompleted.message ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, isCompleted === null || isCompleted === void 0 ? void 0 : isCompleted.message) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "px-[15px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "Congratulations! \uD83C\uDF89 This document has been successfully signed by all participants!")), !(isCompleted !== null && isCompleted !== void 0 && isCompleted.message) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex mt-4 gap-1 px-[15px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: e => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.handleToPrint)(e, pdfUrl, setIsDownloading), + type: "button", + className: "font-[500] text-[13px] mr-[5px] op-btn op-btn-neutral" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-print", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block" + }, "Print")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.handleDownloadCertificate)(pdfDetails, setIsDownloading), + className: "font-[500] text-[13px] mr-[5px] op-btn op-btn-secondary" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-award mx-[3px] lg:mx-0", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block" + }, "Certificate")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "font-[500] text-[13px] mr-[5px] op-btn op-btn-primary", + onClick: () => (0,_constant_Utils__WEBPACK_IMPORTED_MODULE_10__.handleDownloadPdf)(pdfDetails, pdfUrl, setIsDownloading) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("i", { + className: "fa-light fa-download", + "aria-hidden": "true" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "hidden lg:block" + }, "Download"))))), isDownloading === "pdf" && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "fixed z-[1000] inset-0 flex justify-center items-center bg-black bg-opacity-30" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_Loader__WEBPACK_IMPORTED_MODULE_21__["default"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_ModalUi__WEBPACK_IMPORTED_MODULE_18__["default"], { + isOpen: isDownloading === "certificate", + title: isDownloading === "certificate" ? "Generating certificate" : "PDF Download", + handleClose: () => setIsDownloading("") + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "p-3 md:p-5 text-[13px] md:text-base text-center text-base-content" + }, isDownloading === "certificate", " ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Your completion certificate is being generated. Please wait momentarily. If the download doesn't start shortly, click the button again."))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_pdf_SignPad__WEBPACK_IMPORTED_MODULE_5__["default"], { + isSignPad: isSignPad, + isStamp: isStamp, + setIsImageSelect: setIsImageSelect, + setIsSignPad: setIsSignPad, + setImage: setImage, + isImageSelect: isImageSelect, + imageRef: imageRef, + onImageChange: onImageChange, + setSignature: setSignature, + image: image, + onSaveImage: saveImage, + onSaveSign: saveSign, + defaultSign: defaultSignImg, + myInitial: myInitial, + isInitial: isInitial, + setIsInitial: setIsInitial, + setIsStamp: setIsStamp, + currWidgetsDetails: currWidgetsDetails, + setCurrWidgetsDetails: setCurrWidgetsDetails + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_pdf_PdfHeader__WEBPACK_IMPORTED_MODULE_13__["default"], { + isPdfRequestFiles: isPublicTemplate ? false : true, + pageNumber: pageNumber, + allPages: allPages, + changePage: changePage, + pdfDetails: pdfDetails, + signerPos: signerPos, + isSigned: isSigned, + isCompleted: isCompleted.isCertificate, + embedWidgetsData: isPublicTemplate ? handleUserDetails : embedWidgetsData, + isShowHeader: true, + setIsDecline: setIsDecline, + decline: true, + currentSigner: currentSigner, + pdfUrl: pdfUrl, + alreadySign: alreadySign, + totalZoomPercent: totalZoomPercent, + setTotalZoomPercent: setTotalZoomPercent, + setScale: setScale, + scale: scale, + pdfOriginalWH: pdfOriginalWH, + containerWH: containerWH, + setZoomPercent: setZoomPercent, + zoomPercent: zoomPercent, + isPublicTemplate: isPublicTemplate + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + ref: divRef, + "data-tut": "pdfArea", + className: "h-[95%]" + }, containerWH && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_pdf_RenderPdf__WEBPACK_IMPORTED_MODULE_14__["default"], { + pageNumber: pageNumber, + pdfOriginalWH: pdfOriginalWH, + pdfNewWidth: pdfNewWidth, + setIsSignPad: setIsSignPad, + setIsStamp: setIsStamp, + setSignKey: setSignKey, + pdfDetails: pdfDetails, + signerPos: signerPos, + successEmail: false, + pdfUrl: pdfUrl, + numPages: numPages, + pageDetails: pageDetails, + pdfRequest: true, + signerObjectId: signerObjectId, + signedSigners: signedSigners, + setPdfLoad: setPdfLoad, + pdfLoad: pdfLoad, + setSignerPos: setSignerPos, + containerWH: containerWH, + setIsInitial: setIsInitial, + setValidateAlert: setValidateAlert, + unSignedWidgetId: unSignedWidgetId, + setSelectWidgetId: setSelectWidgetId, + selectWidgetId: selectWidgetId, + setCurrWidgetsDetails: setCurrWidgetsDetails, + divRef: divRef, + setIsResize: setIsResize, + isResize: isResize, + setTotalZoomPercent: setTotalZoomPercent, + setScale: setScale, + scale: scale, + uniqueId: uniqueId, + ispublicTemplate: isPublicTemplate, + handleUserDetails: handleUserDetails + })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "w-full md:w-[23%] bg-base-100 overflow-y-auto hide-scrollbar hidden md:inline-block" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "max-h-screen" + }, signedSigners.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + "data-tut": "reactourSecond", + className: "mx-2 pr-2 pt-2 pb-1 text-[15px] text-base-content font-semibold border-b-[1px] border-base-300" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, " Signed by")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "mt-[2px]" + }, signedSigners.map((obj, ind) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + key: ind + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_pdf_SignerListComponent__WEBPACK_IMPORTED_MODULE_22__["default"], { + ind: ind, + obj: obj, + isMenu: isHeader, + signerPos: signerPos + })); + }))), unsignedSigners.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + "data-tut": "reactourFirst", + className: "mx-2 pr-2 pt-2 pb-1 text-[15px] text-base-content font-semibold border-b-[1px] border-base-300" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "Yet to sign")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "mt-[5px]" + }, unsignedSigners.map((obj, ind) => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + key: ind + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_pdf_SignerListComponent__WEBPACK_IMPORTED_MODULE_22__["default"], { + ind: ind, + obj: obj, + isMenu: isHeader, + signerPos: signerPos + })); + }))), defaultSignImg && !alreadySign && currentSigner && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_pdf_DefaultSignature__WEBPACK_IMPORTED_MODULE_17__["default"], { + defaultSignImg: defaultSignImg, + setDefaultSignImg: setDefaultSignImg, + userObjectId: signerObjectId, + setIsLoading: setIsLoading, + xyPostion: signerPos, + setDefaultSignAlert: setDefaultSignAlert + }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_primitives_ModalUi__WEBPACK_IMPORTED_MODULE_18__["default"], { + isOpen: validateAlert, + title: "Validation alert", + handleClose: () => { + setValidateAlert(false); + } + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "h-[100%] p-[20px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "The input does not meet the criteria set by the regular expression."), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "h-[1px] bg-[#9f9f9f] w-full my-[15px]" + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + onClick: () => setValidateAlert(false), + type: "button", + className: "op-btn op-btn-ghost" + }, "Close"))))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PdfRequestFiles); + +/***/ }), + +/***/ "./src/primitives/Alert.js": +/*!*********************************!*\ + !*** ./src/primitives/Alert.js ***! + \*********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + +const Alert = _ref => { + let { + children, + type + } = _ref; + const textcolor = type ? theme(type) : theme(); + function theme(color) { + switch (color) { + case "success": + return "op-alert-success"; + case "info": + return "op-alert-info"; + case "danger": + return "op-alert-error"; + case "warning": + return "op-alert-warning"; + default: + return ""; + } + } + return children && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "z-[1000] fixed top-20 left-1/2 transform -translate-x-1/2 text-sm" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "op-alert ".concat(textcolor) + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, children))); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Alert); + +/***/ }), + +/***/ "./src/primitives/HandleError.js": +/*!***************************************!*\ + !*** ./src/primitives/HandleError.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + +function HandleError(_ref) { + let { + handleError + } = _ref; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex justify-center items-center h-[100vh]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "text-[20px] text-[gray]" + }, handleError)); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HandleError); + +/***/ }), + +/***/ "./src/primitives/Loader.js": +/*!**********************************!*\ + !*** ./src/primitives/Loader.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + +const Loader = () => { + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "op-loading op-loading-infinity w-[4rem] text-neutral" + }); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Loader); + +/***/ }), + +/***/ "./src/primitives/LoaderWithMsg.js": +/*!*****************************************!*\ + !*** ./src/primitives/LoaderWithMsg.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _Loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Loader */ "./src/primitives/Loader.js"); + + +function LoaderWithMsg(_ref) { + let { + isLoading + } = _ref; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "flex flex-col justify-center items-center h-[100vh]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Loader__WEBPACK_IMPORTED_MODULE_1__["default"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "text-[13px] text-base-cotent" + }, isLoading.message)); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LoaderWithMsg); + +/***/ }), + +/***/ "./src/primitives/ModalUi.js": +/*!***********************************!*\ + !*** ./src/primitives/ModalUi.js ***! + \***********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _constant_const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant/const */ "./src/constant/const.js"); +/* harmony import */ var _PremiumAlertHeader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PremiumAlertHeader */ "./src/primitives/PremiumAlertHeader.js"); + + + +const ModalUi = _ref => { + let { + children, + title, + isOpen, + handleClose, + showHeader = true, + showClose = true, + reduceWidth, + showHeaderMessage + } = _ref; + const width = reduceWidth; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, isOpen && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("dialog", { + className: "op-modal op-modal-open" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "".concat(width || "md:min-w-[500px]", " op-modal-box p-0 max-h-90 overflow-y-auto hide-scrollbar text-sm") + }, showHeader && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", { + className: "text-base-content font-bold text-lg pt-[15px] px-[20px]" + }, title), showClose && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-sm op-btn-circle op-btn-ghost text-base-content absolute right-2 top-2", + onClick: () => handleClose && handleClose() + }, "\u2715")), !_constant_const__WEBPACK_IMPORTED_MODULE_1__.isEnableSubscription && showHeaderMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PremiumAlertHeader__WEBPACK_IMPORTED_MODULE_2__["default"], { + message: "Cutomize Email is free in beta, this feature will incur a fee later." + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, children)))); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ModalUi); + +/***/ }), + +/***/ "./src/primitives/PdfDeclineModal.js": +/*!*******************************************!*\ + !*** ./src/primitives/PdfDeclineModal.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _styles_signature_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/signature.css */ "./src/styles/signature.css"); + + +function CustomModal(_ref) { + let { + show, + headMsg, + bodyMssg, + footerMessage, + declineDoc, + setIsDecline + } = _ref; + const [reason, setReason] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); + return show && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("dialog", { + className: "op-modal op-modal-open absolute z-[448]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "w-[95%] md:w-[60%] lg:w-[40%] op-modal-box p-0 overflow-y-auto hide-scrollbar text-sm" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", { + className: "text-[#de4337] font-bold text-lg pt-[15px] px-[20px]" + }, headMsg && headMsg), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "p-[10px] px-[20px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { + className: "text-[15px]" + }, bodyMssg && bodyMssg)), footerMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "mx-3" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("textarea", { + rows: 3, + placeholder: "Reason (optional)", + className: "px-4 op-textarea op-textarea-bordered focus:outline-none hover:border-base-content w-full text-xs", + value: reason, + onChange: e => setReason(e.target.value) + })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { + className: "m-[15px]" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + className: "op-btn op-btn-primary mr-2 px-6", + type: "button", + onClick: () => { + setReason(""); + declineDoc(reason); + } + }, "Yes"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { + type: "button", + className: "op-btn op-btn-secondary", + onClick: () => { + setReason(""); + setIsDecline({ + isDeclined: false + }); + } + }, "Close"))))); +} +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CustomModal); + +/***/ }), + +/***/ "./src/primitives/PremiumAlertHeader.js": +/*!**********************************************!*\ + !*** ./src/primitives/PremiumAlertHeader.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + +const PremiumAlertHeader = _ref => { + let { + message + } = _ref; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("marquee", { + className: "bg-yellow-300 text-black px-2" + }, message ? message : "Currently free in Beta, this feature will incur a fee later."); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PremiumAlertHeader); + +/***/ }), + +/***/ "./src/primitives/TourContentWithBtn.js": +/*!**********************************************!*\ + !*** ./src/primitives/TourContentWithBtn.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ TourContentWithBtn) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + +function TourContentWithBtn(_ref) { + let { + message, + isChecked + } = _ref; + const [isCheck, setIsCheck] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const handleCheck = () => { + setIsCheck(!isCheck); + if (isChecked) { + isChecked(!isCheck); + } + }; + return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, message), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { + className: "flex items-center justify-center mb-0" + }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { + type: "checkbox", + className: "op-checkbox op-checkbox-xs mr-1", + checked: isCheck, + onChange: handleCheck + }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { + className: "#787878 text-[12px]" + }, "Don't show this again"))); +} + +/***/ }), + +/***/ "./src/redux/reducers/ShowTenant.js": +/*!******************************************!*\ + !*** ./src/redux/reducers/ShowTenant.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ showTenant: () => (/* binding */ showTenant) +/* harmony export */ }); +/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit */ "./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs"); + +const showTenantSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({ + name: "showTenant", + initialState: "", + reducers: { + showTenant: (state, action) => { + return action.payload; + } + } +}); +const { + showTenant +} = showTenantSlice.actions; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showTenantSlice.reducer); + +/***/ }), + +/***/ "./src/redux/reducers/TourStepsReducer.js": +/*!************************************************!*\ + !*** ./src/redux/reducers/TourStepsReducer.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ removeTourSteps: () => (/* binding */ removeTourSteps), +/* harmony export */ saveTourSteps: () => (/* binding */ saveTourSteps) +/* harmony export */ }); +/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit */ "./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs"); + +const tourStepSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({ + name: "tourStep", + initialState: [], + reducers: { + saveTourSteps: (state, action) => { + return action.payload; + }, + removeTourSteps: () => { + return []; + } + } +}); +const { + saveTourSteps, + removeTourSteps +} = tourStepSlice.actions; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (tourStepSlice.reducer); + +/***/ }), + +/***/ "./src/redux/reducers/infoReducer.js": +/*!*******************************************!*\ + !*** ./src/redux/reducers/infoReducer.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ fetchAppInfo: () => (/* binding */ fetchAppInfo) +/* harmony export */ }); +/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reduxjs/toolkit */ "./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs"); +/* harmony import */ var _constant_appinfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constant/appinfo */ "./src/constant/appinfo.js"); + + +const infoSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.createSlice)({ + name: "info", + initialState: {}, + reducers: { + fetchAppInfo: () => { + localStorage.setItem("baseUrl", "".concat(_constant_appinfo__WEBPACK_IMPORTED_MODULE_0__.appInfo.baseUrl, "/")); + localStorage.setItem("parseAppId", _constant_appinfo__WEBPACK_IMPORTED_MODULE_0__.appInfo.appId); + localStorage.setItem("appLogo", _constant_appinfo__WEBPACK_IMPORTED_MODULE_0__.appInfo.applogo); + localStorage.removeItem("userSettings"); + localStorage.setItem("userSettings", JSON.stringify(_constant_appinfo__WEBPACK_IMPORTED_MODULE_0__.appInfo.settings)); + localStorage.setItem("fev_Icon", _constant_appinfo__WEBPACK_IMPORTED_MODULE_0__.appInfo.fev_Icon); + return _constant_appinfo__WEBPACK_IMPORTED_MODULE_0__.appInfo; + } + } +}); +const { + fetchAppInfo +} = infoSlice.actions; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (infoSlice.reducer); + +/***/ }), + +/***/ "./src/redux/reducers/showHeader.js": +/*!******************************************!*\ + !*** ./src/redux/reducers/showHeader.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), +/* harmony export */ showHeader: () => (/* binding */ showHeader) +/* harmony export */ }); +/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit */ "./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs"); + +const showHeaderSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({ + name: "showTenant", + initialState: "", + reducers: { + showHeader: (state, action) => { + return action.payload; + } + } +}); +const { + showHeader +} = showHeaderSlice.actions; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (showHeaderSlice.reducer); + +/***/ }), + +/***/ "./src/redux/store.js": +/*!****************************!*\ + !*** ./src/redux/store.js ***! + \****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ store: () => (/* binding */ store) +/* harmony export */ }); +/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reduxjs/toolkit */ "./node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs"); +/* harmony import */ var _reducers_infoReducer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reducers/infoReducer */ "./src/redux/reducers/infoReducer.js"); +/* harmony import */ var _reducers_ShowTenant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reducers/ShowTenant */ "./src/redux/reducers/ShowTenant.js"); +/* harmony import */ var _reducers_TourStepsReducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reducers/TourStepsReducer */ "./src/redux/reducers/TourStepsReducer.js"); +/* harmony import */ var _reducers_showHeader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reducers/showHeader */ "./src/redux/reducers/showHeader.js"); +// import { createStore, applyMiddleware } from "redux"; +// import thunk from "redux-thunk"; +// import reducers from "./reducers"; + +// export const store = createStore(reducers, applyMiddleware(thunk)); + + + + + +const store = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__.configureStore)({ + reducer: { + appInfo: _reducers_infoReducer__WEBPACK_IMPORTED_MODULE_0__["default"], + TourSteps: _reducers_TourStepsReducer__WEBPACK_IMPORTED_MODULE_2__["default"], + ShowTenant: _reducers_ShowTenant__WEBPACK_IMPORTED_MODULE_1__["default"], + showHeader: _reducers_showHeader__WEBPACK_IMPORTED_MODULE_3__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/clsx/dist/clsx.js": +/*!****************************************!*\ + !*** ./node_modules/clsx/dist/clsx.js ***! + \****************************************/ +/***/ ((module) => { + +function r(e){var o,t,f="";if("string"==typeof e||"number"==typeof e)f+=e;else if("object"==typeof e)if(Array.isArray(e)){var n=e.length;for(o=0;o { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ cnb: () => (/* binding */ cnb) +/* harmony export */ }); +var isArray = Array.isArray; +var toClassName = function (val) { + var str = ''; + if (typeof val === 'string') + str += val; + else if (typeof val === 'object') { + var tmp = void 0; + if (isArray(val)) { + var i = 0; + var l = val.length; + while (i < l) { + tmp = toClassName(val[i++]); + if (tmp) { + if (str) { + str += ' '; + } + str += tmp; + } + } + } + else { + // eslint-disable-next-line guard-for-in + for (tmp in val) { + if (tmp && val[tmp]) { + if (str) { + str += ' '; + } + str += tmp; + } + } + } + } + return str; +}; +function cnb() { + var l = arguments.length; + var i = 0; + var n; + var tmp; + var str = ''; + while (i < l) { + n = arguments[i++]; + if (n) { + tmp = toClassName(n); + if (tmp) { + if (str) { + str += ' '; + } + str += tmp; + } + } + } + return str; +} + + +/***/ }), + +/***/ "./node_modules/crypto-js/aes.js": +/*!***************************************!*\ + !*** ./node_modules/crypto-js/aes.js ***! + \***************************************/ +/***/ (function(module, exports, __webpack_require__) { + +;(function (root, factory, undef) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js"), __webpack_require__(/*! ./enc-base64 */ "./node_modules/crypto-js/enc-base64.js"), __webpack_require__(/*! ./md5 */ "./node_modules/crypto-js/md5.js"), __webpack_require__(/*! ./evpkdf */ "./node_modules/crypto-js/evpkdf.js"), __webpack_require__(/*! ./cipher-core */ "./node_modules/crypto-js/cipher-core.js")); + } + else {} +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Lookup tables + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + + // Compute lookup tables + (function () { + // Compute double table + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + + // Walk GF(2^8) + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + + // Compute multiplication + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t >>> 8); + SUB_MIX_1[x] = (t << 16) | (t >>> 16); + SUB_MIX_2[x] = (t << 8) | (t >>> 24); + SUB_MIX_3[x] = t; + + // Compute inv sub bytes, inv mix columns tables + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); + INV_SUB_MIX_3[sx] = t; + + // Compute next counter + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + + // Precomputed Rcon lookup + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + + /** + * AES block cipher algorithm. + */ + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + var t; + + // Skip reset of nRounds has been set before and key did not change + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + // Compute number of rounds + var nRounds = this._nRounds = keySize + 6; + + // Compute number of key schedule rows + var ksRows = (nRounds + 1) * 4; + + // Compute key schedule + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + t = keySchedule[ksRow - 1]; + + if (!(ksRow % keySize)) { + // Rot word + t = (t << 8) | (t >>> 24); + + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + + // Mix Rcon + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize > 6 && ksRow % keySize == 4) { + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + + // Compute inv key schedule + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } + + if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ + INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, + + decryptBlock: function (M, offset) { + // Swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + + // Inv swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, + + _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + // Shortcut + var nRounds = this._nRounds; + + // Get input, add round key + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + + // Key schedule row counter + var ksRow = 4; + + // Rounds + for (var round = 1; round < nRounds; round++) { + // Shift rows, sub bytes, mix columns, add round key + var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + + // Update state + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + + // Shift rows, sub bytes, add round key + var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + + // Set output + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, + + keySize: 256/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); + */ + C.AES = BlockCipher._createHelper(AES); + }()); + + + return CryptoJS.AES; + +})); + +/***/ }), + +/***/ "./node_modules/crypto-js/cipher-core.js": +/*!***********************************************!*\ + !*** ./node_modules/crypto-js/cipher-core.js ***! + \***********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +;(function (root, factory, undef) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js"), __webpack_require__(/*! ./evpkdf */ "./node_modules/crypto-js/evpkdf.js")); + } + else {} +}(this, function (CryptoJS) { + + /** + * Cipher core components. + */ + CryptoJS.lib.Cipher || (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + + /** + * Abstract base cipher template. + * + * @property {number} keySize This cipher's key size. Default: 4 (128 bits) + * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) + * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. + * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. + */ + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + * + * @property {WordArray} iv The IV to use for this operation. + */ + cfg: Base.extend(), + + /** + * Creates this cipher in encryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); + */ + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, + + /** + * Creates this cipher in decryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); + */ + createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, + + /** + * Initializes a newly created cipher. + * + * @param {number} xformMode Either the encryption or decryption transormation mode constant. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @example + * + * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); + */ + init: function (xformMode, key, cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Store transform mode and key + this._xformMode = xformMode; + this._key = key; + + // Set initial values + this.reset(); + }, + + /** + * Resets this cipher to its initial state. + * + * @example + * + * cipher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-cipher logic + this._doReset(); + }, + + /** + * Adds data to be encrypted or decrypted. + * + * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. + * + * @return {WordArray} The data after processing. + * + * @example + * + * var encrypted = cipher.process('data'); + * var encrypted = cipher.process(wordArray); + */ + process: function (dataUpdate) { + // Append + this._append(dataUpdate); + + // Process available blocks + return this._process(); + }, + + /** + * Finalizes the encryption or decryption process. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. + * + * @return {WordArray} The data after final processing. + * + * @example + * + * var encrypted = cipher.finalize(); + * var encrypted = cipher.finalize('data'); + * var encrypted = cipher.finalize(wordArray); + */ + finalize: function (dataUpdate) { + // Final data update + if (dataUpdate) { + this._append(dataUpdate); + } + + // Perform concrete-cipher logic + var finalProcessedData = this._doFinalize(); + + return finalProcessedData; + }, + + keySize: 128/32, + + ivSize: 128/32, + + _ENC_XFORM_MODE: 1, + + _DEC_XFORM_MODE: 2, + + /** + * Creates shortcut functions to a cipher's object interface. + * + * @param {Cipher} cipher The cipher to create a helper for. + * + * @return {Object} An object with encrypt and decrypt shortcut functions. + * + * @static + * + * @example + * + * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); + */ + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, + + decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + + /** + * Abstract base stream cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) + */ + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + // Process partial blocks + var finalProcessedBlocks = this._process(!!'flush'); + + return finalProcessedBlocks; + }, + + blockSize: 1 + }); + + /** + * Mode namespace. + */ + var C_mode = C.mode = {}; + + /** + * Abstract base block cipher mode template. + */ + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + /** + * Creates this mode for encryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); + */ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, + + /** + * Creates this mode for decryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); + */ + createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, + + /** + * Initializes a newly created mode. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @example + * + * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); + */ + init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + + /** + * Cipher Block Chaining mode. + */ + var CBC = C_mode.CBC = (function () { + /** + * Abstract base CBC mode. + */ + var CBC = BlockCipherMode.extend(); + + /** + * CBC encryptor. + */ + CBC.Encryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // XOR and encrypt + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + /** + * CBC decryptor. + */ + CBC.Decryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + // Decrypt and XOR + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + var block; + + // Shortcut + var iv = this._iv; + + // Choose mixing block + if (iv) { + block = iv; + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + block = this._prevBlock; + } + + // XOR blocks + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + + return CBC; + }()); + + /** + * Padding namespace. + */ + var C_pad = C.pad = {}; + + /** + * PKCS #5/7 padding strategy. + */ + var Pkcs7 = C_pad.Pkcs7 = { + /** + * Pads data using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to pad. + * @param {number} blockSize The multiple that the data should be padded to. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.pad(wordArray, 4); + */ + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Create padding word + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + + // Create padding + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + + // Add padding + data.concat(padding); + }, + + /** + * Unpads data that had been padded using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to unpad. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.unpad(wordArray); + */ + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + /** + * Abstract base block cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) + */ + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + /** + * Configuration options. + * + * @property {Mode} mode The block mode to use. Default: CBC + * @property {Padding} padding The padding strategy to use. Default: Pkcs7 + */ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + + reset: function () { + var modeCreator; + + // Reset cipher + Cipher.reset.call(this); + + // Shortcuts + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + + // Reset block mode + if (this._xformMode == this._ENC_XFORM_MODE) { + modeCreator = mode.createEncryptor; + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + modeCreator = mode.createDecryptor; + // Keep at least one block in the buffer for unpadding + this._minBufferSize = 1; + } + + if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, + + _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, + + _doFinalize: function () { + var finalProcessedBlocks; + + // Shortcut + var padding = this.cfg.padding; + + // Finalize + if (this._xformMode == this._ENC_XFORM_MODE) { + // Pad data + padding.pad(this._data, this.blockSize); + + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + + // Unpad data + padding.unpad(finalProcessedBlocks); + } + + return finalProcessedBlocks; + }, + + blockSize: 128/32 + }); + + /** + * A collection of cipher parameters. + * + * @property {WordArray} ciphertext The raw ciphertext. + * @property {WordArray} key The key to this ciphertext. + * @property {WordArray} iv The IV used in the ciphering operation. + * @property {WordArray} salt The salt used with a key derivation function. + * @property {Cipher} algorithm The cipher algorithm. + * @property {Mode} mode The block mode used in the ciphering operation. + * @property {Padding} padding The padding scheme used in the ciphering operation. + * @property {number} blockSize The block size of the cipher. + * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. + */ + var CipherParams = C_lib.CipherParams = Base.extend({ + /** + * Initializes a newly created cipher params object. + * + * @param {Object} cipherParams An object with any of the possible cipher parameters. + * + * @example + * + * var cipherParams = CryptoJS.lib.CipherParams.create({ + * ciphertext: ciphertextWordArray, + * key: keyWordArray, + * iv: ivWordArray, + * salt: saltWordArray, + * algorithm: CryptoJS.algo.AES, + * mode: CryptoJS.mode.CBC, + * padding: CryptoJS.pad.PKCS7, + * blockSize: 4, + * formatter: CryptoJS.format.OpenSSL + * }); + */ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, + + /** + * Converts this cipher params object to a string. + * + * @param {Format} formatter (Optional) The formatting strategy to use. + * + * @return {string} The stringified cipher params. + * + * @throws Error If neither the formatter nor the default formatter is set. + * + * @example + * + * var string = cipherParams + ''; + * var string = cipherParams.toString(); + * var string = cipherParams.toString(CryptoJS.format.OpenSSL); + */ + toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + + /** + * Format namespace. + */ + var C_format = C.format = {}; + + /** + * OpenSSL formatting strategy. + */ + var OpenSSLFormatter = C_format.OpenSSL = { + /** + * Converts a cipher params object to an OpenSSL-compatible string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The OpenSSL-compatible string. + * + * @static + * + * @example + * + * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); + */ + stringify: function (cipherParams) { + var wordArray; + + // Shortcuts + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + + // Format + if (salt) { + wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + wordArray = ciphertext; + } + + return wordArray.toString(Base64); + }, + + /** + * Converts an OpenSSL-compatible string to a cipher params object. + * + * @param {string} openSSLStr The OpenSSL-compatible string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); + */ + parse: function (openSSLStr) { + var salt; + + // Parse base64 + var ciphertext = Base64.parse(openSSLStr); + + // Shortcut + var ciphertextWords = ciphertext.words; + + // Test for salt + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + // Extract salt + salt = WordArray.create(ciphertextWords.slice(2, 4)); + + // Remove salt from ciphertext + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + + return CipherParams.create({ ciphertext: ciphertext, salt: salt }); + } + }; + + /** + * A cipher wrapper that returns ciphertext as a serializable cipher params object. + */ + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + /** + * Configuration options. + * + * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL + */ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + + /** + * Encrypts a message. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Encrypt + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + + // Shortcut + var cipherCfg = encryptor.cfg; + + // Create and return serializable cipher params + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, + + /** + * Decrypts serialized ciphertext. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Decrypt + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + + return plaintext; + }, + + /** + * Converts serialized ciphertext to CipherParams, + * else assumed CipherParams already and returns ciphertext unchanged. + * + * @param {CipherParams|string} ciphertext The ciphertext. + * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. + * + * @return {CipherParams} The unserialized ciphertext. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); + */ + _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + + /** + * Key derivation function namespace. + */ + var C_kdf = C.kdf = {}; + + /** + * OpenSSL key derivation function. + */ + var OpenSSLKdf = C_kdf.OpenSSL = { + /** + * Derives a key and IV from a password. + * + * @param {string} password The password to derive from. + * @param {number} keySize The size in words of the key to generate. + * @param {number} ivSize The size in words of the IV to generate. + * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. + * + * @return {CipherParams} A cipher params object with the key, IV, and salt. + * + * @static + * + * @example + * + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); + */ + execute: function (password, keySize, ivSize, salt, hasher) { + // Generate random salt + if (!salt) { + salt = WordArray.random(64/8); + } + + // Derive key and IV + if (!hasher) { + var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); + } else { + var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt); + } + + + // Separate key and IV + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + + // Return params + return CipherParams.create({ key: key, iv: iv, salt: salt }); + } + }; + + /** + * A serializable cipher wrapper that derives the key from a password, + * and returns ciphertext as a serializable cipher params object. + */ + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + /** + * Configuration options. + * + * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL + */ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + + /** + * Encrypts a message using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Encrypt + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + + // Mix in derived params + ciphertext.mixIn(derivedParams); + + return ciphertext; + }, + + /** + * Decrypts serialized ciphertext using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Decrypt + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + + return plaintext; + } + }); + }()); + + +})); + +/***/ }), + +/***/ "./node_modules/crypto-js/core.js": +/*!****************************************!*\ + !*** ./node_modules/crypto-js/core.js ***! + \****************************************/ +/***/ (function(module, exports, __webpack_require__) { + +;(function (root, factory) { + if (true) { + // CommonJS + module.exports = exports = factory(); + } + else {} +}(this, function () { + + /*globals window, global, require*/ + + /** + * CryptoJS core components. + */ + var CryptoJS = CryptoJS || (function (Math, undefined) { + + var crypto; + + // Native crypto from window (Browser) + if (typeof window !== 'undefined' && window.crypto) { + crypto = window.crypto; + } + + // Native crypto in web worker (Browser) + if (typeof self !== 'undefined' && self.crypto) { + crypto = self.crypto; + } + + // Native crypto from worker + if (typeof globalThis !== 'undefined' && globalThis.crypto) { + crypto = globalThis.crypto; + } + + // Native (experimental IE 11) crypto from window (Browser) + if (!crypto && typeof window !== 'undefined' && window.msCrypto) { + crypto = window.msCrypto; + } + + // Native crypto from global (NodeJS) + if (!crypto && typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.crypto) { + crypto = __webpack_require__.g.crypto; + } + + // Native crypto import via require (NodeJS) + if (!crypto && "function" === 'function') { + try { + crypto = __webpack_require__(/*! crypto */ "?9157"); + } catch (err) {} + } + + /* + * Cryptographically secure pseudorandom number generator + * + * As Math.random() is cryptographically not safe to use + */ + var cryptoSecureRandomInt = function () { + if (crypto) { + // Use getRandomValues method (Browser) + if (typeof crypto.getRandomValues === 'function') { + try { + return crypto.getRandomValues(new Uint32Array(1))[0]; + } catch (err) {} + } + + // Use randomBytes method (NodeJS) + if (typeof crypto.randomBytes === 'function') { + try { + return crypto.randomBytes(4).readInt32LE(); + } catch (err) {} + } + } + + throw new Error('Native crypto module could not be used to get secure random number.'); + }; + + /* + * Local polyfill of Object.create + + */ + var create = Object.create || (function () { + function F() {} + + return function (obj) { + var subtype; + + F.prototype = obj; + + subtype = new F(); + + F.prototype = null; + + return subtype; + }; + }()); + + /** + * CryptoJS namespace. + */ + var C = {}; + + /** + * Library namespace. + */ + var C_lib = C.lib = {}; + + /** + * Base object for prototypal inheritance. + */ + var Base = C_lib.Base = (function () { + + + return { + /** + * Creates a new object that inherits from this object. + * + * @param {Object} overrides Properties to copy into the new object. + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * field: 'value', + * + * method: function () { + * } + * }); + */ + extend: function (overrides) { + // Spawn + var subtype = create(this); + + // Augment + if (overrides) { + subtype.mixIn(overrides); + } + + // Create default initializer + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + + // Initializer's prototype is the subtype object + subtype.init.prototype = subtype; + + // Reference supertype + subtype.$super = this; + + return subtype; + }, + + /** + * Extends this object and runs the init method. + * Arguments to create() will be passed to init(). + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var instance = MyType.create(); + */ + create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + + return instance; + }, + + /** + * Initializes a newly created object. + * Override this method to add some logic when your objects are created. + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * init: function () { + * // ... + * } + * }); + */ + init: function () { + }, + + /** + * Copies properties into this object. + * + * @param {Object} properties The properties to mix in. + * + * @example + * + * MyType.mixIn({ + * field: 'value' + * }); + */ + mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + + // IE won't copy toString using the loop above + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = instance.clone(); + */ + clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + + /** + * An array of 32-bit words. + * + * @property {Array} words The array of 32-bit words. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var WordArray = C_lib.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of 32-bit words. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.create(); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, + + /** + * Converts this word array to a string. + * + * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex + * + * @return {string} The stringified word array. + * + * @example + * + * var string = wordArray + ''; + * var string = wordArray.toString(); + * var string = wordArray.toString(CryptoJS.enc.Utf8); + */ + toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, + + /** + * Concatenates a word array to this word array. + * + * @param {WordArray} wordArray The word array to append. + * + * @return {WordArray} This word array. + * + * @example + * + * wordArray1.concat(wordArray2); + */ + concat: function (wordArray) { + // Shortcuts + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + + // Clamp excess bits + this.clamp(); + + // Concat + if (thisSigBytes % 4) { + // Copy one byte at a time + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else { + // Copy one word at a time + for (var j = 0; j < thatSigBytes; j += 4) { + thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2]; + } + } + this.sigBytes += thatSigBytes; + + // Chainable + return this; + }, + + /** + * Removes insignificant bits. + * + * @example + * + * wordArray.clamp(); + */ + clamp: function () { + // Shortcuts + var words = this.words; + var sigBytes = this.sigBytes; + + // Clamp + words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, + + /** + * Creates a copy of this word array. + * + * @return {WordArray} The clone. + * + * @example + * + * var clone = wordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + + return clone; + }, + + /** + * Creates a word array filled with random bytes. + * + * @param {number} nBytes The number of random bytes to generate. + * + * @return {WordArray} The random word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.random(16); + */ + random: function (nBytes) { + var words = []; + + for (var i = 0; i < nBytes; i += 4) { + words.push(cryptoSecureRandomInt()); + } + + return new WordArray.init(words, nBytes); + } + }); + + /** + * Encoder namespace. + */ + var C_enc = C.enc = {}; + + /** + * Hex encoding strategy. + */ + var Hex = C_enc.Hex = { + /** + * Converts a word array to a hex string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The hex string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.enc.Hex.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite >>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + + return hexChars.join(''); + }, + + /** + * Converts a hex string to a word array. + * + * @param {string} hexStr The hex string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Hex.parse(hexString); + */ + parse: function (hexStr) { + // Shortcut + var hexStrLength = hexStr.length; + + // Convert + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + + return new WordArray.init(words, hexStrLength / 2); + } + }; + + /** + * Latin1 encoding strategy. + */ + var Latin1 = C_enc.Latin1 = { + /** + * Converts a word array to a Latin1 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Latin1 string. + * + * @static + * + * @example + * + * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + + return latin1Chars.join(''); + }, + + /** + * Converts a Latin1 string to a word array. + * + * @param {string} latin1Str The Latin1 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); + */ + parse: function (latin1Str) { + // Shortcut + var latin1StrLength = latin1Str.length; + + // Convert + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + + return new WordArray.init(words, latin1StrLength); + } + }; + + /** + * UTF-8 encoding strategy. + */ + var Utf8 = C_enc.Utf8 = { + /** + * Converts a word array to a UTF-8 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-8 string. + * + * @static + * + * @example + * + * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); + */ + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, + + /** + * Converts a UTF-8 string to a word array. + * + * @param {string} utf8Str The UTF-8 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); + */ + parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + + /** + * Abstract buffered block algorithm template. + * + * The property blockSize must be implemented in a concrete subtype. + * + * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 + */ + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + /** + * Resets this block algorithm's data buffer to its initial state. + * + * @example + * + * bufferedBlockAlgorithm.reset(); + */ + reset: function () { + // Initial values + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, + + /** + * Adds new data to this block algorithm's buffer. + * + * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. + * + * @example + * + * bufferedBlockAlgorithm._append('data'); + * bufferedBlockAlgorithm._append(wordArray); + */ + _append: function (data) { + // Convert string to WordArray, else assume WordArray already + if (typeof data == 'string') { + data = Utf8.parse(data); + } + + // Append + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, + + /** + * Processes available data blocks. + * + * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. + * + * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. + * + * @return {WordArray} The processed data. + * + * @example + * + * var processedData = bufferedBlockAlgorithm._process(); + * var processedData = bufferedBlockAlgorithm._process(!!'flush'); + */ + _process: function (doFlush) { + var processedWords; + + // Shortcuts + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + + // Count blocks ready + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + // Round up to include partial blocks + nBlocksReady = Math.ceil(nBlocksReady); + } else { + // Round down to include only full blocks, + // less the number of blocks that must remain in the buffer + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + + // Count words ready + var nWordsReady = nBlocksReady * blockSize; + + // Count bytes ready + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + + // Process blocks + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + // Perform concrete-algorithm logic + this._doProcessBlock(dataWords, offset); + } + + // Remove processed words + processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + + // Return processed words + return new WordArray.init(processedWords, nBytesReady); + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = bufferedBlockAlgorithm.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + + return clone; + }, + + _minBufferSize: 0 + }); + + /** + * Abstract hasher template. + * + * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) + */ + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + */ + cfg: Base.extend(), + + /** + * Initializes a newly created hasher. + * + * @param {Object} cfg (Optional) The configuration options to use for this hash computation. + * + * @example + * + * var hasher = CryptoJS.algo.SHA256.create(); + */ + init: function (cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Set initial values + this.reset(); + }, + + /** + * Resets this hasher to its initial state. + * + * @example + * + * hasher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-hasher logic + this._doReset(); + }, + + /** + * Updates this hasher with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {Hasher} This hasher. + * + * @example + * + * hasher.update('message'); + * hasher.update(wordArray); + */ + update: function (messageUpdate) { + // Append + this._append(messageUpdate); + + // Update the hash + this._process(); + + // Chainable + return this; + }, + + /** + * Finalizes the hash computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The hash. + * + * @example + * + * var hash = hasher.finalize(); + * var hash = hasher.finalize('message'); + * var hash = hasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Final message update + if (messageUpdate) { + this._append(messageUpdate); + } + + // Perform concrete-hasher logic + var hash = this._doFinalize(); + + return hash; + }, + + blockSize: 512/32, + + /** + * Creates a shortcut function to a hasher's object interface. + * + * @param {Hasher} hasher The hasher to create a helper for. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); + */ + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, + + /** + * Creates a shortcut function to the HMAC's object interface. + * + * @param {Hasher} hasher The hasher to use in this HMAC helper. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); + */ + _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + + /** + * Algorithm namespace. + */ + var C_algo = C.algo = {}; + + return C; + }(Math)); + + + return CryptoJS; + +})); + +/***/ }), + +/***/ "./node_modules/crypto-js/enc-base64.js": +/*!**********************************************!*\ + !*** ./node_modules/crypto-js/enc-base64.js ***! + \**********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +;(function (root, factory) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); + } + else {} +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64 encoding strategy. + */ + var Base64 = C_enc.Base64 = { + /** + * Converts a word array to a Base64 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Base64 string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64 string to a word array. + * + * @param {string} base64Str The Base64 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64.parse(base64String); + */ + parse: function (base64Str) { + // Shortcuts + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + return CryptoJS.enc.Base64; + +})); + +/***/ }), + +/***/ "./node_modules/crypto-js/enc-utf8.js": +/*!********************************************!*\ + !*** ./node_modules/crypto-js/enc-utf8.js ***! + \********************************************/ +/***/ (function(module, exports, __webpack_require__) { + +;(function (root, factory) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); + } + else {} +}(this, function (CryptoJS) { + + return CryptoJS.enc.Utf8; + +})); + +/***/ }), + +/***/ "./node_modules/crypto-js/evpkdf.js": +/*!******************************************!*\ + !*** ./node_modules/crypto-js/evpkdf.js ***! + \******************************************/ +/***/ (function(module, exports, __webpack_require__) { + +;(function (root, factory, undef) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js"), __webpack_require__(/*! ./sha1 */ "./node_modules/crypto-js/sha1.js"), __webpack_require__(/*! ./hmac */ "./node_modules/crypto-js/hmac.js")); + } + else {} +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var MD5 = C_algo.MD5; + + /** + * This key derivation function is meant to conform with EVP_BytesToKey. + * www.openssl.org/docs/crypto/EVP_BytesToKey.html + */ + var EvpKDF = C_algo.EvpKDF = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hash algorithm to use. Default: MD5 + * @property {number} iterations The number of iterations to perform. Default: 1 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: MD5, + iterations: 1 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.EvpKDF.create(); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + var block; + + // Shortcut + var cfg = this.cfg; + + // Init hasher + var hasher = cfg.hasher.create(); + + // Initial values + var derivedKey = WordArray.create(); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + if (block) { + hasher.update(block); + } + block = hasher.update(password).finalize(salt); + hasher.reset(); + + // Iterations + for (var i = 1; i < iterations; i++) { + block = hasher.finalize(block); + hasher.reset(); + } + + derivedKey.concat(block); + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.EvpKDF(password, salt); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.EvpKDF = function (password, salt, cfg) { + return EvpKDF.create(cfg).compute(password, salt); + }; + }()); + + + return CryptoJS.EvpKDF; + +})); + +/***/ }), + +/***/ "./node_modules/crypto-js/hmac.js": +/*!****************************************!*\ + !*** ./node_modules/crypto-js/hmac.js ***! + \****************************************/ +/***/ (function(module, exports, __webpack_require__) { + +;(function (root, factory) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); + } + else {} +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var C_algo = C.algo; + + /** + * HMAC algorithm. + */ + var HMAC = C_algo.HMAC = Base.extend({ + /** + * Initializes a newly created HMAC. + * + * @param {Hasher} hasher The hash algorithm to use. + * @param {WordArray|string} key The secret key. + * + * @example + * + * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); + */ + init: function (hasher, key) { + // Init hasher + hasher = this._hasher = new hasher.init(); + + // Convert string to WordArray, else assume WordArray already + if (typeof key == 'string') { + key = Utf8.parse(key); + } + + // Shortcuts + var hasherBlockSize = hasher.blockSize; + var hasherBlockSizeBytes = hasherBlockSize * 4; + + // Allow arbitrary length keys + if (key.sigBytes > hasherBlockSizeBytes) { + key = hasher.finalize(key); + } + + // Clamp excess bits + key.clamp(); + + // Clone key for inner and outer pads + var oKey = this._oKey = key.clone(); + var iKey = this._iKey = key.clone(); + + // Shortcuts + var oKeyWords = oKey.words; + var iKeyWords = iKey.words; + + // XOR keys with pad constants + for (var i = 0; i < hasherBlockSize; i++) { + oKeyWords[i] ^= 0x5c5c5c5c; + iKeyWords[i] ^= 0x36363636; + } + oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; + + // Set initial values + this.reset(); + }, + + /** + * Resets this HMAC to its initial state. + * + * @example + * + * hmacHasher.reset(); + */ + reset: function () { + // Shortcut + var hasher = this._hasher; + + // Reset + hasher.reset(); + hasher.update(this._iKey); + }, + + /** + * Updates this HMAC with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {HMAC} This HMAC instance. + * + * @example + * + * hmacHasher.update('message'); + * hmacHasher.update(wordArray); + */ + update: function (messageUpdate) { + this._hasher.update(messageUpdate); + + // Chainable + return this; + }, + + /** + * Finalizes the HMAC computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The HMAC. + * + * @example + * + * var hmac = hmacHasher.finalize(); + * var hmac = hmacHasher.finalize('message'); + * var hmac = hmacHasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Shortcut + var hasher = this._hasher; + + // Compute HMAC + var innerHash = hasher.finalize(messageUpdate); + hasher.reset(); + var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); + + return hmac; + } + }); + }()); + + +})); + +/***/ }), + +/***/ "./node_modules/crypto-js/md5.js": +/*!***************************************!*\ + !*** ./node_modules/crypto-js/md5.js ***! + \***************************************/ +/***/ (function(module, exports, __webpack_require__) { + +;(function (root, factory) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); + } + else {} +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var T = []; + + // Compute constants + (function () { + for (var i = 0; i < 64; i++) { + T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; + } + }()); + + /** + * MD5 hash algorithm. + */ + var MD5 = C_algo.MD5 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + + // Shortcuts + var H = this._hash.words; + + var M_offset_0 = M[offset + 0]; + var M_offset_1 = M[offset + 1]; + var M_offset_2 = M[offset + 2]; + var M_offset_3 = M[offset + 3]; + var M_offset_4 = M[offset + 4]; + var M_offset_5 = M[offset + 5]; + var M_offset_6 = M[offset + 6]; + var M_offset_7 = M[offset + 7]; + var M_offset_8 = M[offset + 8]; + var M_offset_9 = M[offset + 9]; + var M_offset_10 = M[offset + 10]; + var M_offset_11 = M[offset + 11]; + var M_offset_12 = M[offset + 12]; + var M_offset_13 = M[offset + 13]; + var M_offset_14 = M[offset + 14]; + var M_offset_15 = M[offset + 15]; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + + // Computation + a = FF(a, b, c, d, M_offset_0, 7, T[0]); + d = FF(d, a, b, c, M_offset_1, 12, T[1]); + c = FF(c, d, a, b, M_offset_2, 17, T[2]); + b = FF(b, c, d, a, M_offset_3, 22, T[3]); + a = FF(a, b, c, d, M_offset_4, 7, T[4]); + d = FF(d, a, b, c, M_offset_5, 12, T[5]); + c = FF(c, d, a, b, M_offset_6, 17, T[6]); + b = FF(b, c, d, a, M_offset_7, 22, T[7]); + a = FF(a, b, c, d, M_offset_8, 7, T[8]); + d = FF(d, a, b, c, M_offset_9, 12, T[9]); + c = FF(c, d, a, b, M_offset_10, 17, T[10]); + b = FF(b, c, d, a, M_offset_11, 22, T[11]); + a = FF(a, b, c, d, M_offset_12, 7, T[12]); + d = FF(d, a, b, c, M_offset_13, 12, T[13]); + c = FF(c, d, a, b, M_offset_14, 17, T[14]); + b = FF(b, c, d, a, M_offset_15, 22, T[15]); + + a = GG(a, b, c, d, M_offset_1, 5, T[16]); + d = GG(d, a, b, c, M_offset_6, 9, T[17]); + c = GG(c, d, a, b, M_offset_11, 14, T[18]); + b = GG(b, c, d, a, M_offset_0, 20, T[19]); + a = GG(a, b, c, d, M_offset_5, 5, T[20]); + d = GG(d, a, b, c, M_offset_10, 9, T[21]); + c = GG(c, d, a, b, M_offset_15, 14, T[22]); + b = GG(b, c, d, a, M_offset_4, 20, T[23]); + a = GG(a, b, c, d, M_offset_9, 5, T[24]); + d = GG(d, a, b, c, M_offset_14, 9, T[25]); + c = GG(c, d, a, b, M_offset_3, 14, T[26]); + b = GG(b, c, d, a, M_offset_8, 20, T[27]); + a = GG(a, b, c, d, M_offset_13, 5, T[28]); + d = GG(d, a, b, c, M_offset_2, 9, T[29]); + c = GG(c, d, a, b, M_offset_7, 14, T[30]); + b = GG(b, c, d, a, M_offset_12, 20, T[31]); + + a = HH(a, b, c, d, M_offset_5, 4, T[32]); + d = HH(d, a, b, c, M_offset_8, 11, T[33]); + c = HH(c, d, a, b, M_offset_11, 16, T[34]); + b = HH(b, c, d, a, M_offset_14, 23, T[35]); + a = HH(a, b, c, d, M_offset_1, 4, T[36]); + d = HH(d, a, b, c, M_offset_4, 11, T[37]); + c = HH(c, d, a, b, M_offset_7, 16, T[38]); + b = HH(b, c, d, a, M_offset_10, 23, T[39]); + a = HH(a, b, c, d, M_offset_13, 4, T[40]); + d = HH(d, a, b, c, M_offset_0, 11, T[41]); + c = HH(c, d, a, b, M_offset_3, 16, T[42]); + b = HH(b, c, d, a, M_offset_6, 23, T[43]); + a = HH(a, b, c, d, M_offset_9, 4, T[44]); + d = HH(d, a, b, c, M_offset_12, 11, T[45]); + c = HH(c, d, a, b, M_offset_15, 16, T[46]); + b = HH(b, c, d, a, M_offset_2, 23, T[47]); + + a = II(a, b, c, d, M_offset_0, 6, T[48]); + d = II(d, a, b, c, M_offset_7, 10, T[49]); + c = II(c, d, a, b, M_offset_14, 15, T[50]); + b = II(b, c, d, a, M_offset_5, 21, T[51]); + a = II(a, b, c, d, M_offset_12, 6, T[52]); + d = II(d, a, b, c, M_offset_3, 10, T[53]); + c = II(c, d, a, b, M_offset_10, 15, T[54]); + b = II(b, c, d, a, M_offset_1, 21, T[55]); + a = II(a, b, c, d, M_offset_8, 6, T[56]); + d = II(d, a, b, c, M_offset_15, 10, T[57]); + c = II(c, d, a, b, M_offset_6, 15, T[58]); + b = II(b, c, d, a, M_offset_13, 21, T[59]); + a = II(a, b, c, d, M_offset_4, 6, T[60]); + d = II(d, a, b, c, M_offset_11, 10, T[61]); + c = II(c, d, a, b, M_offset_2, 15, T[62]); + b = II(b, c, d, a, M_offset_9, 21, T[63]); + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + + var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); + var nBitsTotalL = nBitsTotal; + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( + (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | + (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) + ); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | + (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) + ); + + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 4; i++) { + // Shortcut + var H_i = H[i]; + + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.MD5('message'); + * var hash = CryptoJS.MD5(wordArray); + */ + C.MD5 = Hasher._createHelper(MD5); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacMD5(message, key); + */ + C.HmacMD5 = Hasher._createHmacHelper(MD5); + }(Math)); + + + return CryptoJS.MD5; + +})); + +/***/ }), + +/***/ "./node_modules/crypto-js/sha1.js": +/*!****************************************!*\ + !*** ./node_modules/crypto-js/sha1.js ***! + \****************************************/ +/***/ (function(module, exports, __webpack_require__) { + +;(function (root, factory) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); + } + else {} +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Reusable object + var W = []; + + /** + * SHA-1 hash algorithm. + */ + var SHA1 = C_algo.SHA1 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476, + 0xc3d2e1f0 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + + // Computation + for (var i = 0; i < 80; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; + W[i] = (n << 1) | (n >>> 31); + } + + var t = ((a << 5) | (a >>> 27)) + e + W[i]; + if (i < 20) { + t += ((b & c) | (~b & d)) + 0x5a827999; + } else if (i < 40) { + t += (b ^ c ^ d) + 0x6ed9eba1; + } else if (i < 60) { + t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; + } else /* if (i < 80) */ { + t += (b ^ c ^ d) - 0x359d3e2a; + } + + e = d; + d = c; + c = (b << 30) | (b >>> 2); + b = a; + a = t; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA1('message'); + * var hash = CryptoJS.SHA1(wordArray); + */ + C.SHA1 = Hasher._createHelper(SHA1); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA1(message, key); + */ + C.HmacSHA1 = Hasher._createHmacHelper(SHA1); + }()); + + + return CryptoJS.SHA1; + +})); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@radix-ui/colors/black-alpha.css": +/*!*********************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@radix-ui/colors/black-alpha.css ***! + \*********************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); +/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:root { + --black-a1: rgba(0, 0, 0, 0.05); + --black-a2: rgba(0, 0, 0, 0.1); + --black-a3: rgba(0, 0, 0, 0.15); + --black-a4: rgba(0, 0, 0, 0.2); + --black-a5: rgba(0, 0, 0, 0.3); + --black-a6: rgba(0, 0, 0, 0.4); + --black-a7: rgba(0, 0, 0, 0.5); + --black-a8: rgba(0, 0, 0, 0.6); + --black-a9: rgba(0, 0, 0, 0.7); + --black-a10: rgba(0, 0, 0, 0.8); + --black-a11: rgba(0, 0, 0, 0.9); + --black-a12: rgba(0, 0, 0, 0.95); +} + +@supports (color: color(display-p3 1 1 1)) { + @media (color-gamut: p3) { + :root { + --black-a1: color(display-p3 0 0 0 / 0.05); + --black-a2: color(display-p3 0 0 0 / 0.1); + --black-a3: color(display-p3 0 0 0 / 0.15); + --black-a4: color(display-p3 0 0 0 / 0.2); + --black-a5: color(display-p3 0 0 0 / 0.3); + --black-a6: color(display-p3 0 0 0 / 0.4); + --black-a7: color(display-p3 0 0 0 / 0.5); + --black-a8: color(display-p3 0 0 0 / 0.6); + --black-a9: color(display-p3 0 0 0 / 0.7); + --black-a10: color(display-p3 0 0 0 / 0.8); + --black-a11: color(display-p3 0 0 0 / 0.9); + --black-a12: color(display-p3 0 0 0 / 0.95); + } + } +}`, "",{"version":3,"sources":["webpack://./node_modules/@radix-ui/colors/black-alpha.css"],"names":[],"mappings":"AAAA;EACE,+BAA+B;EAC/B,8BAA8B;EAC9B,+BAA+B;EAC/B,8BAA8B;EAC9B,8BAA8B;EAC9B,8BAA8B;EAC9B,8BAA8B;EAC9B,8BAA8B;EAC9B,8BAA8B;EAC9B,+BAA+B;EAC/B,+BAA+B;EAC/B,gCAAgC;AAClC;;AAEA;EACE;IACE;MACE,0CAA0C;MAC1C,yCAAyC;MACzC,0CAA0C;MAC1C,yCAAyC;MACzC,yCAAyC;MACzC,yCAAyC;MACzC,yCAAyC;MACzC,yCAAyC;MACzC,yCAAyC;MACzC,0CAA0C;MAC1C,0CAA0C;MAC1C,2CAA2C;IAC7C;EACF;AACF","sourcesContent":[":root {\n --black-a1: rgba(0, 0, 0, 0.05);\n --black-a2: rgba(0, 0, 0, 0.1);\n --black-a3: rgba(0, 0, 0, 0.15);\n --black-a4: rgba(0, 0, 0, 0.2);\n --black-a5: rgba(0, 0, 0, 0.3);\n --black-a6: rgba(0, 0, 0, 0.4);\n --black-a7: rgba(0, 0, 0, 0.5);\n --black-a8: rgba(0, 0, 0, 0.6);\n --black-a9: rgba(0, 0, 0, 0.7);\n --black-a10: rgba(0, 0, 0, 0.8);\n --black-a11: rgba(0, 0, 0, 0.9);\n --black-a12: rgba(0, 0, 0, 0.95);\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root {\n --black-a1: color(display-p3 0 0 0 / 0.05);\n --black-a2: color(display-p3 0 0 0 / 0.1);\n --black-a3: color(display-p3 0 0 0 / 0.15);\n --black-a4: color(display-p3 0 0 0 / 0.2);\n --black-a5: color(display-p3 0 0 0 / 0.3);\n --black-a6: color(display-p3 0 0 0 / 0.4);\n --black-a7: color(display-p3 0 0 0 / 0.5);\n --black-a8: color(display-p3 0 0 0 / 0.6);\n --black-a9: color(display-p3 0 0 0 / 0.7);\n --black-a10: color(display-p3 0 0 0 / 0.8);\n --black-a11: color(display-p3 0 0 0 / 0.9);\n --black-a12: color(display-p3 0 0 0 / 0.95);\n }\n }\n}"],"sourceRoot":""}]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@radix-ui/colors/mauve.css": +/*!***************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@radix-ui/colors/mauve.css ***! + \***************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); +/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:root, .light, .light-theme { + --mauve-1: #fdfcfd; + --mauve-2: #faf9fb; + --mauve-3: #f2eff3; + --mauve-4: #eae7ec; + --mauve-5: #e3dfe6; + --mauve-6: #dbd8e0; + --mauve-7: #d0cdd7; + --mauve-8: #bcbac7; + --mauve-9: #8e8c99; + --mauve-10: #84828e; + --mauve-11: #65636d; + --mauve-12: #211f26; +} + +@supports (color: color(display-p3 1 1 1)) { + @media (color-gamut: p3) { + :root, .light, .light-theme { + --mauve-1: color(display-p3 0.991 0.988 0.992); + --mauve-2: color(display-p3 0.98 0.976 0.984); + --mauve-3: color(display-p3 0.946 0.938 0.952); + --mauve-4: color(display-p3 0.915 0.906 0.925); + --mauve-5: color(display-p3 0.886 0.876 0.901); + --mauve-6: color(display-p3 0.856 0.846 0.875); + --mauve-7: color(display-p3 0.814 0.804 0.84); + --mauve-8: color(display-p3 0.735 0.728 0.777); + --mauve-9: color(display-p3 0.555 0.549 0.596); + --mauve-10: color(display-p3 0.514 0.508 0.552); + --mauve-11: color(display-p3 0.395 0.388 0.424); + --mauve-12: color(display-p3 0.128 0.122 0.147); + } + } +}`, "",{"version":3,"sources":["webpack://./node_modules/@radix-ui/colors/mauve.css"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;AACrB;;AAEA;EACE;IACE;MACE,8CAA8C;MAC9C,6CAA6C;MAC7C,8CAA8C;MAC9C,8CAA8C;MAC9C,8CAA8C;MAC9C,8CAA8C;MAC9C,6CAA6C;MAC7C,8CAA8C;MAC9C,8CAA8C;MAC9C,+CAA+C;MAC/C,+CAA+C;MAC/C,+CAA+C;IACjD;EACF;AACF","sourcesContent":[":root, .light, .light-theme {\n --mauve-1: #fdfcfd;\n --mauve-2: #faf9fb;\n --mauve-3: #f2eff3;\n --mauve-4: #eae7ec;\n --mauve-5: #e3dfe6;\n --mauve-6: #dbd8e0;\n --mauve-7: #d0cdd7;\n --mauve-8: #bcbac7;\n --mauve-9: #8e8c99;\n --mauve-10: #84828e;\n --mauve-11: #65636d;\n --mauve-12: #211f26;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, .light, .light-theme {\n --mauve-1: color(display-p3 0.991 0.988 0.992);\n --mauve-2: color(display-p3 0.98 0.976 0.984);\n --mauve-3: color(display-p3 0.946 0.938 0.952);\n --mauve-4: color(display-p3 0.915 0.906 0.925);\n --mauve-5: color(display-p3 0.886 0.876 0.901);\n --mauve-6: color(display-p3 0.856 0.846 0.875);\n --mauve-7: color(display-p3 0.814 0.804 0.84);\n --mauve-8: color(display-p3 0.735 0.728 0.777);\n --mauve-9: color(display-p3 0.555 0.549 0.596);\n --mauve-10: color(display-p3 0.514 0.508 0.552);\n --mauve-11: color(display-p3 0.395 0.388 0.424);\n --mauve-12: color(display-p3 0.128 0.122 0.147);\n }\n }\n}"],"sourceRoot":""}]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@radix-ui/colors/violet.css": +/*!****************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@radix-ui/colors/violet.css ***! + \****************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); +/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:root, .light, .light-theme { + --violet-1: #fdfcfe; + --violet-2: #faf8ff; + --violet-3: #f4f0fe; + --violet-4: #ebe4ff; + --violet-5: #e1d9ff; + --violet-6: #d4cafe; + --violet-7: #c2b5f5; + --violet-8: #aa99ec; + --violet-9: #6e56cf; + --violet-10: #654dc4; + --violet-11: #6550b9; + --violet-12: #2f265f; +} + +@supports (color: color(display-p3 1 1 1)) { + @media (color-gamut: p3) { + :root, .light, .light-theme { + --violet-1: color(display-p3 0.991 0.988 0.995); + --violet-2: color(display-p3 0.978 0.974 0.998); + --violet-3: color(display-p3 0.953 0.943 0.993); + --violet-4: color(display-p3 0.916 0.897 1); + --violet-5: color(display-p3 0.876 0.851 1); + --violet-6: color(display-p3 0.825 0.793 0.981); + --violet-7: color(display-p3 0.752 0.712 0.943); + --violet-8: color(display-p3 0.654 0.602 0.902); + --violet-9: color(display-p3 0.417 0.341 0.784); + --violet-10: color(display-p3 0.381 0.306 0.741); + --violet-11: color(display-p3 0.383 0.317 0.702); + --violet-12: color(display-p3 0.179 0.15 0.359); + } + } +}`, "",{"version":3,"sources":["webpack://./node_modules/@radix-ui/colors/violet.css"],"names":[],"mappings":"AAAA;EACE,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,oBAAoB;AACtB;;AAEA;EACE;IACE;MACE,+CAA+C;MAC/C,+CAA+C;MAC/C,+CAA+C;MAC/C,2CAA2C;MAC3C,2CAA2C;MAC3C,+CAA+C;MAC/C,+CAA+C;MAC/C,+CAA+C;MAC/C,+CAA+C;MAC/C,gDAAgD;MAChD,gDAAgD;MAChD,+CAA+C;IACjD;EACF;AACF","sourcesContent":[":root, .light, .light-theme {\n --violet-1: #fdfcfe;\n --violet-2: #faf8ff;\n --violet-3: #f4f0fe;\n --violet-4: #ebe4ff;\n --violet-5: #e1d9ff;\n --violet-6: #d4cafe;\n --violet-7: #c2b5f5;\n --violet-8: #aa99ec;\n --violet-9: #6e56cf;\n --violet-10: #654dc4;\n --violet-11: #6550b9;\n --violet-12: #2f265f;\n}\n\n@supports (color: color(display-p3 1 1 1)) {\n @media (color-gamut: p3) {\n :root, .light, .light-theme {\n --violet-1: color(display-p3 0.991 0.988 0.995);\n --violet-2: color(display-p3 0.978 0.974 0.998);\n --violet-3: color(display-p3 0.953 0.943 0.993);\n --violet-4: color(display-p3 0.916 0.897 1);\n --violet-5: color(display-p3 0.876 0.851 1);\n --violet-6: color(display-p3 0.825 0.793 0.981);\n --violet-7: color(display-p3 0.752 0.712 0.943);\n --violet-8: color(display-p3 0.654 0.602 0.902);\n --violet-9: color(display-p3 0.417 0.341 0.784);\n --violet-10: color(display-p3 0.381 0.306 0.741);\n --violet-11: color(display-p3 0.383 0.317 0.702);\n --violet-12: color(display-p3 0.179 0.15 0.359);\n }\n }\n}"],"sourceRoot":""}]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/react-datepicker/dist/react-datepicker.css": +/*!*************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/react-datepicker/dist/react-datepicker.css ***! + \*************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); +/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `@charset "UTF-8"; +.react-datepicker__year-read-view--down-arrow, +.react-datepicker__month-read-view--down-arrow, +.react-datepicker__month-year-read-view--down-arrow, .react-datepicker__navigation-icon::before { + border-color: #ccc; + border-style: solid; + border-width: 3px 3px 0 0; + content: ""; + display: block; + height: 9px; + position: absolute; + top: 6px; + width: 9px; +} +.react-datepicker-wrapper { + display: inline-block; + padding: 0; + border: 0; +} + +.react-datepicker { + font-family: "Helvetica Neue", helvetica, arial, sans-serif; + font-size: 0.8rem; + background-color: #fff; + color: #000; + border: 1px solid #aeaeae; + border-radius: 0.3rem; + display: inline-block; + position: relative; + line-height: initial; +} + +.react-datepicker--time-only .react-datepicker__time-container { + border-left: 0; +} +.react-datepicker--time-only .react-datepicker__time, +.react-datepicker--time-only .react-datepicker__time-box { + border-bottom-left-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.react-datepicker-popper { + z-index: 1; + line-height: 0; +} +.react-datepicker-popper .react-datepicker__triangle { + stroke: #aeaeae; +} +.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle { + fill: #f0f0f0; + color: #f0f0f0; +} +.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle { + fill: #fff; + color: #fff; +} + +.react-datepicker__header { + text-align: center; + background-color: #f0f0f0; + border-bottom: 1px solid #aeaeae; + border-top-left-radius: 0.3rem; + padding: 8px 0; + position: relative; +} +.react-datepicker__header--time { + padding-bottom: 8px; + padding-left: 5px; + padding-right: 5px; +} +.react-datepicker__header--time:not(.react-datepicker__header--time--only) { + border-top-left-radius: 0; +} +.react-datepicker__header:not(.react-datepicker__header--has-time-select) { + border-top-right-radius: 0.3rem; +} + +.react-datepicker__year-dropdown-container--select, +.react-datepicker__month-dropdown-container--select, +.react-datepicker__month-year-dropdown-container--select, +.react-datepicker__year-dropdown-container--scroll, +.react-datepicker__month-dropdown-container--scroll, +.react-datepicker__month-year-dropdown-container--scroll { + display: inline-block; + margin: 0 15px; +} + +.react-datepicker__current-month, +.react-datepicker-time__header, +.react-datepicker-year-header { + margin-top: 0; + color: #000; + font-weight: bold; + font-size: 0.944rem; +} + +h2.react-datepicker__current-month { + padding: 0; + margin: 0; +} + +.react-datepicker-time__header { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.react-datepicker__navigation { + align-items: center; + background: none; + display: flex; + justify-content: center; + text-align: center; + cursor: pointer; + position: absolute; + top: 2px; + padding: 0; + border: none; + z-index: 1; + height: 32px; + width: 32px; + text-indent: -999em; + overflow: hidden; +} +.react-datepicker__navigation--previous { + left: 2px; +} +.react-datepicker__navigation--next { + right: 2px; +} +.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button) { + right: 85px; +} +.react-datepicker__navigation--years { + position: relative; + top: 0; + display: block; + margin-left: auto; + margin-right: auto; +} +.react-datepicker__navigation--years-previous { + top: 4px; +} +.react-datepicker__navigation--years-upcoming { + top: -4px; +} +.react-datepicker__navigation:hover *::before { + border-color: #a6a6a6; +} + +.react-datepicker__navigation-icon { + position: relative; + top: -1px; + font-size: 20px; + width: 0; +} +.react-datepicker__navigation-icon--next { + left: -2px; +} +.react-datepicker__navigation-icon--next::before { + transform: rotate(45deg); + left: -7px; +} +.react-datepicker__navigation-icon--previous { + right: -2px; +} +.react-datepicker__navigation-icon--previous::before { + transform: rotate(225deg); + right: -7px; +} + +.react-datepicker__month-container { + float: left; +} + +.react-datepicker__year { + margin: 0.4rem; + text-align: center; +} +.react-datepicker__year-wrapper { + display: flex; + flex-wrap: wrap; + max-width: 180px; +} +.react-datepicker__year .react-datepicker__year-text { + display: inline-block; + width: 4rem; + margin: 2px; +} + +.react-datepicker__month { + margin: 0.4rem; + text-align: center; +} +.react-datepicker__month .react-datepicker__month-text, +.react-datepicker__month .react-datepicker__quarter-text { + display: inline-block; + width: 4rem; + margin: 2px; +} + +.react-datepicker__input-time-container { + clear: both; + width: 100%; + float: left; + margin: 5px 0 10px 15px; + text-align: left; +} +.react-datepicker__input-time-container .react-datepicker-time__caption { + display: inline-block; +} +.react-datepicker__input-time-container .react-datepicker-time__input-container { + display: inline-block; +} +.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input { + display: inline-block; + margin-left: 10px; +} +.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input { + width: auto; +} +.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button, +.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} +.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time] { + -moz-appearance: textfield; +} +.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter { + margin-left: 5px; + display: inline-block; +} + +.react-datepicker__time-container { + float: right; + border-left: 1px solid #aeaeae; + width: 85px; +} +.react-datepicker__time-container--with-today-button { + display: inline; + border: 1px solid #aeaeae; + border-radius: 0.3rem; + position: absolute; + right: -87px; + top: 0; +} +.react-datepicker__time-container .react-datepicker__time { + position: relative; + background: white; + border-bottom-right-radius: 0.3rem; +} +.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box { + width: 85px; + overflow-x: hidden; + margin: 0 auto; + text-align: center; + border-bottom-right-radius: 0.3rem; +} +.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list { + list-style: none; + margin: 0; + height: calc(195px + 1.7rem / 2); + overflow-y: scroll; + padding-right: 0; + padding-left: 0; + width: 100%; + box-sizing: content-box; +} +.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item { + height: 30px; + padding: 5px 10px; + white-space: nowrap; +} +.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover { + cursor: pointer; + background-color: #f0f0f0; +} +.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected { + background-color: #216ba5; + color: white; + font-weight: bold; +} +.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover { + background-color: #216ba5; +} +.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled { + color: #ccc; +} +.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover { + cursor: default; + background-color: transparent; +} + +.react-datepicker__week-number { + color: #ccc; + display: inline-block; + width: 1.7rem; + line-height: 1.7rem; + text-align: center; + margin: 0.166rem; +} +.react-datepicker__week-number.react-datepicker__week-number--clickable { + cursor: pointer; +} +.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected, +.react-datepicker__week-number--keyboard-selected):hover { + border-radius: 0.3rem; + background-color: #f0f0f0; +} +.react-datepicker__week-number--selected { + border-radius: 0.3rem; + background-color: #216ba5; + color: #fff; +} +.react-datepicker__week-number--selected:hover { + background-color: #1d5d90; +} +.react-datepicker__week-number--keyboard-selected { + border-radius: 0.3rem; + background-color: #2a87d0; + color: #fff; +} +.react-datepicker__week-number--keyboard-selected:hover { + background-color: #1d5d90; +} + +.react-datepicker__day-names { + white-space: nowrap; + margin-bottom: -8px; +} + +.react-datepicker__week { + white-space: nowrap; +} + +.react-datepicker__day-name, +.react-datepicker__day, +.react-datepicker__time-name { + color: #000; + display: inline-block; + width: 1.7rem; + line-height: 1.7rem; + text-align: center; + margin: 0.166rem; +} + +.react-datepicker__day, +.react-datepicker__month-text, +.react-datepicker__quarter-text, +.react-datepicker__year-text { + cursor: pointer; +} +.react-datepicker__day:hover, +.react-datepicker__month-text:hover, +.react-datepicker__quarter-text:hover, +.react-datepicker__year-text:hover { + border-radius: 0.3rem; + background-color: #f0f0f0; +} +.react-datepicker__day--today, +.react-datepicker__month-text--today, +.react-datepicker__quarter-text--today, +.react-datepicker__year-text--today { + font-weight: bold; +} +.react-datepicker__day--highlighted, +.react-datepicker__month-text--highlighted, +.react-datepicker__quarter-text--highlighted, +.react-datepicker__year-text--highlighted { + border-radius: 0.3rem; + background-color: #3dcc4a; + color: #fff; +} +.react-datepicker__day--highlighted:hover, +.react-datepicker__month-text--highlighted:hover, +.react-datepicker__quarter-text--highlighted:hover, +.react-datepicker__year-text--highlighted:hover { + background-color: #32be3f; +} +.react-datepicker__day--highlighted-custom-1, +.react-datepicker__month-text--highlighted-custom-1, +.react-datepicker__quarter-text--highlighted-custom-1, +.react-datepicker__year-text--highlighted-custom-1 { + color: magenta; +} +.react-datepicker__day--highlighted-custom-2, +.react-datepicker__month-text--highlighted-custom-2, +.react-datepicker__quarter-text--highlighted-custom-2, +.react-datepicker__year-text--highlighted-custom-2 { + color: green; +} +.react-datepicker__day--holidays, +.react-datepicker__month-text--holidays, +.react-datepicker__quarter-text--holidays, +.react-datepicker__year-text--holidays { + position: relative; + border-radius: 0.3rem; + background-color: #ff6803; + color: #fff; +} +.react-datepicker__day--holidays .overlay, +.react-datepicker__month-text--holidays .overlay, +.react-datepicker__quarter-text--holidays .overlay, +.react-datepicker__year-text--holidays .overlay { + position: absolute; + bottom: 100%; + left: 50%; + transform: translateX(-50%); + background-color: #333; + color: #fff; + padding: 4px; + border-radius: 4px; + white-space: nowrap; + visibility: hidden; + opacity: 0; + transition: visibility 0s, opacity 0.3s ease-in-out; +} +.react-datepicker__day--holidays:hover, +.react-datepicker__month-text--holidays:hover, +.react-datepicker__quarter-text--holidays:hover, +.react-datepicker__year-text--holidays:hover { + background-color: #cf5300; +} +.react-datepicker__day--holidays:hover .overlay, +.react-datepicker__month-text--holidays:hover .overlay, +.react-datepicker__quarter-text--holidays:hover .overlay, +.react-datepicker__year-text--holidays:hover .overlay { + visibility: visible; + opacity: 1; +} +.react-datepicker__day--selected, .react-datepicker__day--in-selecting-range, .react-datepicker__day--in-range, +.react-datepicker__month-text--selected, +.react-datepicker__month-text--in-selecting-range, +.react-datepicker__month-text--in-range, +.react-datepicker__quarter-text--selected, +.react-datepicker__quarter-text--in-selecting-range, +.react-datepicker__quarter-text--in-range, +.react-datepicker__year-text--selected, +.react-datepicker__year-text--in-selecting-range, +.react-datepicker__year-text--in-range { + border-radius: 0.3rem; + background-color: #216ba5; + color: #fff; +} +.react-datepicker__day--selected:hover, .react-datepicker__day--in-selecting-range:hover, .react-datepicker__day--in-range:hover, +.react-datepicker__month-text--selected:hover, +.react-datepicker__month-text--in-selecting-range:hover, +.react-datepicker__month-text--in-range:hover, +.react-datepicker__quarter-text--selected:hover, +.react-datepicker__quarter-text--in-selecting-range:hover, +.react-datepicker__quarter-text--in-range:hover, +.react-datepicker__year-text--selected:hover, +.react-datepicker__year-text--in-selecting-range:hover, +.react-datepicker__year-text--in-range:hover { + background-color: #1d5d90; +} +.react-datepicker__day--keyboard-selected, +.react-datepicker__month-text--keyboard-selected, +.react-datepicker__quarter-text--keyboard-selected, +.react-datepicker__year-text--keyboard-selected { + border-radius: 0.3rem; + background-color: #bad9f1; + color: rgb(0, 0, 0); +} +.react-datepicker__day--keyboard-selected:hover, +.react-datepicker__month-text--keyboard-selected:hover, +.react-datepicker__quarter-text--keyboard-selected:hover, +.react-datepicker__year-text--keyboard-selected:hover { + background-color: #1d5d90; +} +.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range, +.react-datepicker__month-text--in-range, +.react-datepicker__quarter-text--in-range, +.react-datepicker__year-text--in-range), +.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range, +.react-datepicker__month-text--in-range, +.react-datepicker__quarter-text--in-range, +.react-datepicker__year-text--in-range), +.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range, +.react-datepicker__month-text--in-range, +.react-datepicker__quarter-text--in-range, +.react-datepicker__year-text--in-range), +.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range, +.react-datepicker__month-text--in-range, +.react-datepicker__quarter-text--in-range, +.react-datepicker__year-text--in-range) { + background-color: rgba(33, 107, 165, 0.5); +} +.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range, +.react-datepicker__month-text--in-selecting-range, +.react-datepicker__quarter-text--in-selecting-range, +.react-datepicker__year-text--in-selecting-range), .react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range, +.react-datepicker__month-text--in-selecting-range, +.react-datepicker__quarter-text--in-selecting-range, +.react-datepicker__year-text--in-selecting-range), +.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range, +.react-datepicker__month-text--in-selecting-range, +.react-datepicker__quarter-text--in-selecting-range, +.react-datepicker__year-text--in-selecting-range), +.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range, +.react-datepicker__month-text--in-selecting-range, +.react-datepicker__quarter-text--in-selecting-range, +.react-datepicker__year-text--in-selecting-range), +.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range, +.react-datepicker__month-text--in-selecting-range, +.react-datepicker__quarter-text--in-selecting-range, +.react-datepicker__year-text--in-selecting-range), +.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range, +.react-datepicker__month-text--in-selecting-range, +.react-datepicker__quarter-text--in-selecting-range, +.react-datepicker__year-text--in-selecting-range), +.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range, +.react-datepicker__month-text--in-selecting-range, +.react-datepicker__quarter-text--in-selecting-range, +.react-datepicker__year-text--in-selecting-range), +.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range, +.react-datepicker__month-text--in-selecting-range, +.react-datepicker__quarter-text--in-selecting-range, +.react-datepicker__year-text--in-selecting-range) { + background-color: #f0f0f0; + color: #000; +} +.react-datepicker__day--disabled, +.react-datepicker__month-text--disabled, +.react-datepicker__quarter-text--disabled, +.react-datepicker__year-text--disabled { + cursor: default; + color: #ccc; +} +.react-datepicker__day--disabled:hover, +.react-datepicker__month-text--disabled:hover, +.react-datepicker__quarter-text--disabled:hover, +.react-datepicker__year-text--disabled:hover { + background-color: transparent; +} +.react-datepicker__day--disabled .overlay, +.react-datepicker__month-text--disabled .overlay, +.react-datepicker__quarter-text--disabled .overlay, +.react-datepicker__year-text--disabled .overlay { + position: absolute; + bottom: 70%; + left: 50%; + transform: translateX(-50%); + background-color: #333; + color: #fff; + padding: 4px; + border-radius: 4px; + white-space: nowrap; + visibility: hidden; + opacity: 0; + transition: visibility 0s, opacity 0.3s ease-in-out; +} + +.react-datepicker__input-container { + position: relative; + display: inline-block; + width: 100%; +} +.react-datepicker__input-container .react-datepicker__calendar-icon { + position: absolute; + padding: 0.5rem; + box-sizing: content-box; +} + +.react-datepicker__view-calendar-icon input { + padding: 6px 10px 5px 25px; +} + +.react-datepicker__year-read-view, +.react-datepicker__month-read-view, +.react-datepicker__month-year-read-view { + border: 1px solid transparent; + border-radius: 0.3rem; + position: relative; +} +.react-datepicker__year-read-view:hover, +.react-datepicker__month-read-view:hover, +.react-datepicker__month-year-read-view:hover { + cursor: pointer; +} +.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow, +.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow, +.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow, +.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow, +.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow, +.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow { + border-top-color: #b3b3b3; +} +.react-datepicker__year-read-view--down-arrow, +.react-datepicker__month-read-view--down-arrow, +.react-datepicker__month-year-read-view--down-arrow { + transform: rotate(135deg); + right: -16px; + top: 0; +} + +.react-datepicker__year-dropdown, +.react-datepicker__month-dropdown, +.react-datepicker__month-year-dropdown { + background-color: #f0f0f0; + position: absolute; + width: 50%; + left: 25%; + top: 30px; + z-index: 1; + text-align: center; + border-radius: 0.3rem; + border: 1px solid #aeaeae; +} +.react-datepicker__year-dropdown:hover, +.react-datepicker__month-dropdown:hover, +.react-datepicker__month-year-dropdown:hover { + cursor: pointer; +} +.react-datepicker__year-dropdown--scrollable, +.react-datepicker__month-dropdown--scrollable, +.react-datepicker__month-year-dropdown--scrollable { + height: 150px; + overflow-y: scroll; +} + +.react-datepicker__year-option, +.react-datepicker__month-option, +.react-datepicker__month-year-option { + line-height: 20px; + width: 100%; + display: block; + margin-left: auto; + margin-right: auto; +} +.react-datepicker__year-option:first-of-type, +.react-datepicker__month-option:first-of-type, +.react-datepicker__month-year-option:first-of-type { + border-top-left-radius: 0.3rem; + border-top-right-radius: 0.3rem; +} +.react-datepicker__year-option:last-of-type, +.react-datepicker__month-option:last-of-type, +.react-datepicker__month-year-option:last-of-type { + -webkit-user-select: none; + user-select: none; + border-bottom-left-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} +.react-datepicker__year-option:hover, +.react-datepicker__month-option:hover, +.react-datepicker__month-year-option:hover { + background-color: #ccc; +} +.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming, +.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming, +.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming { + border-bottom-color: #b3b3b3; +} +.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous, +.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous, +.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous { + border-top-color: #b3b3b3; +} +.react-datepicker__year-option--selected, +.react-datepicker__month-option--selected, +.react-datepicker__month-year-option--selected { + position: absolute; + left: 15px; +} + +.react-datepicker__close-icon { + cursor: pointer; + background-color: transparent; + border: 0; + outline: 0; + padding: 0 6px 0 0; + position: absolute; + top: 0; + right: 0; + height: 100%; + display: table-cell; + vertical-align: middle; +} +.react-datepicker__close-icon::after { + cursor: pointer; + background-color: #216ba5; + color: #fff; + border-radius: 50%; + height: 16px; + width: 16px; + padding: 2px; + font-size: 12px; + line-height: 1; + text-align: center; + display: table-cell; + vertical-align: middle; + content: "×"; +} +.react-datepicker__close-icon--disabled { + cursor: default; +} +.react-datepicker__close-icon--disabled::after { + cursor: default; + background-color: #ccc; +} + +.react-datepicker__today-button { + background: #f0f0f0; + border-top: 1px solid #aeaeae; + cursor: pointer; + text-align: center; + font-weight: bold; + padding: 5px 0; + clear: left; +} + +.react-datepicker__portal { + position: fixed; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.8); + left: 0; + top: 0; + justify-content: center; + align-items: center; + display: flex; + z-index: 2147483647; +} +.react-datepicker__portal .react-datepicker__day-name, +.react-datepicker__portal .react-datepicker__day, +.react-datepicker__portal .react-datepicker__time-name { + width: 3rem; + line-height: 3rem; +} +@media (max-width: 400px), (max-height: 550px) { + .react-datepicker__portal .react-datepicker__day-name, + .react-datepicker__portal .react-datepicker__day, + .react-datepicker__portal .react-datepicker__time-name { + width: 2rem; + line-height: 2rem; + } +} +.react-datepicker__portal .react-datepicker__current-month, +.react-datepicker__portal .react-datepicker-time__header { + font-size: 1.44rem; +} + +.react-datepicker__children-container { + width: 13.8rem; + margin: 0.4rem; + padding-right: 0.2rem; + padding-left: 0.2rem; + height: auto; +} + +.react-datepicker__aria-live { + position: absolute; + -webkit-clip-path: circle(0); + clip-path: circle(0); + border: 0; + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + width: 1px; + white-space: nowrap; +} + +.react-datepicker__calendar-icon { + width: 1em; + height: 1em; + vertical-align: -0.125em; +} +`, "",{"version":3,"sources":["webpack://./node_modules/react-datepicker/dist/react-datepicker.css"],"names":[],"mappings":"AAAA,gBAAgB;AAChB;;;EAGE,kBAAkB;EAClB,mBAAmB;EACnB,yBAAyB;EACzB,WAAW;EACX,cAAc;EACd,WAAW;EACX,kBAAkB;EAClB,QAAQ;EACR,UAAU;AACZ;AACA;EACE,qBAAqB;EACrB,UAAU;EACV,SAAS;AACX;;AAEA;EACE,2DAA2D;EAC3D,iBAAiB;EACjB,sBAAsB;EACtB,WAAW;EACX,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,kBAAkB;EAClB,oBAAoB;AACtB;;AAEA;EACE,cAAc;AAChB;AACA;;EAEE,iCAAiC;EACjC,kCAAkC;AACpC;;AAEA;EACE,UAAU;EACV,cAAc;AAChB;AACA;EACE,eAAe;AACjB;AACA;EACE,aAAa;EACb,cAAc;AAChB;AACA;EACE,UAAU;EACV,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,yBAAyB;EACzB,gCAAgC;EAChC,8BAA8B;EAC9B,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,mBAAmB;EACnB,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,+BAA+B;AACjC;;AAEA;;;;;;EAME,qBAAqB;EACrB,cAAc;AAChB;;AAEA;;;EAGE,aAAa;EACb,WAAW;EACX,iBAAiB;EACjB,mBAAmB;AACrB;;AAEA;EACE,UAAU;EACV,SAAS;AACX;;AAEA;EACE,uBAAuB;EACvB,mBAAmB;EACnB,gBAAgB;AAClB;;AAEA;EACE,mBAAmB;EACnB,gBAAgB;EAChB,aAAa;EACb,uBAAuB;EACvB,kBAAkB;EAClB,eAAe;EACf,kBAAkB;EAClB,QAAQ;EACR,UAAU;EACV,YAAY;EACZ,UAAU;EACV,YAAY;EACZ,WAAW;EACX,mBAAmB;EACnB,gBAAgB;AAClB;AACA;EACE,SAAS;AACX;AACA;EACE,UAAU;AACZ;AACA;EACE,WAAW;AACb;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,cAAc;EACd,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,QAAQ;AACV;AACA;EACE,SAAS;AACX;AACA;EACE,qBAAqB;AACvB;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,eAAe;EACf,QAAQ;AACV;AACA;EACE,UAAU;AACZ;AACA;EACE,wBAAwB;EACxB,UAAU;AACZ;AACA;EACE,WAAW;AACb;AACA;EACE,yBAAyB;EACzB,WAAW;AACb;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,eAAe;EACf,gBAAgB;AAClB;AACA;EACE,qBAAqB;EACrB,WAAW;EACX,WAAW;AACb;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;AACA;;EAEE,qBAAqB;EACrB,WAAW;EACX,WAAW;AACb;;AAEA;EACE,WAAW;EACX,WAAW;EACX,WAAW;EACX,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,qBAAqB;EACrB,iBAAiB;AACnB;AACA;EACE,WAAW;AACb;AACA;;EAEE,wBAAwB;EACxB,SAAS;AACX;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,gBAAgB;EAChB,qBAAqB;AACvB;;AAEA;EACE,YAAY;EACZ,8BAA8B;EAC9B,WAAW;AACb;AACA;EACE,eAAe;EACf,yBAAyB;EACzB,qBAAqB;EACrB,kBAAkB;EAClB,YAAY;EACZ,MAAM;AACR;AACA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,kCAAkC;AACpC;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,cAAc;EACd,kBAAkB;EAClB,kCAAkC;AACpC;AACA;EACE,gBAAgB;EAChB,SAAS;EACT,gCAAgC;EAChC,kBAAkB;EAClB,gBAAgB;EAChB,eAAe;EACf,WAAW;EACX,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,iBAAiB;EACjB,mBAAmB;AACrB;AACA;EACE,eAAe;EACf,yBAAyB;AAC3B;AACA;EACE,yBAAyB;EACzB,YAAY;EACZ,iBAAiB;AACnB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,WAAW;AACb;AACA;EACE,eAAe;EACf,6BAA6B;AAC/B;;AAEA;EACE,WAAW;EACX,qBAAqB;EACrB,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,eAAe;AACjB;AACA;;EAEE,qBAAqB;EACrB,yBAAyB;AAC3B;AACA;EACE,qBAAqB;EACrB,yBAAyB;EACzB,WAAW;AACb;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,qBAAqB;EACrB,yBAAyB;EACzB,WAAW;AACb;AACA;EACE,yBAAyB;AAC3B;;AAEA;EACE,mBAAmB;EACnB,mBAAmB;AACrB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;;;EAGE,WAAW;EACX,qBAAqB;EACrB,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;;;;EAIE,eAAe;AACjB;AACA;;;;EAIE,qBAAqB;EACrB,yBAAyB;AAC3B;AACA;;;;EAIE,iBAAiB;AACnB;AACA;;;;EAIE,qBAAqB;EACrB,yBAAyB;EACzB,WAAW;AACb;AACA;;;;EAIE,yBAAyB;AAC3B;AACA;;;;EAIE,cAAc;AAChB;AACA;;;;EAIE,YAAY;AACd;AACA;;;;EAIE,kBAAkB;EAClB,qBAAqB;EACrB,yBAAyB;EACzB,WAAW;AACb;AACA;;;;EAIE,kBAAkB;EAClB,YAAY;EACZ,SAAS;EACT,2BAA2B;EAC3B,sBAAsB;EACtB,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,mBAAmB;EACnB,kBAAkB;EAClB,UAAU;EACV,mDAAmD;AACrD;AACA;;;;EAIE,yBAAyB;AAC3B;AACA;;;;EAIE,mBAAmB;EACnB,UAAU;AACZ;AACA;;;;;;;;;;EAUE,qBAAqB;EACrB,yBAAyB;EACzB,WAAW;AACb;AACA;;;;;;;;;;EAUE,yBAAyB;AAC3B;AACA;;;;EAIE,qBAAqB;EACrB,yBAAyB;EACzB,mBAAmB;AACrB;AACA;;;;EAIE,yBAAyB;AAC3B;AACA;;;;;;;;;;;;;;;;EAgBE,yCAAyC;AAC3C;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BE,yBAAyB;EACzB,WAAW;AACb;AACA;;;;EAIE,eAAe;EACf,WAAW;AACb;AACA;;;;EAIE,6BAA6B;AAC/B;AACA;;;;EAIE,kBAAkB;EAClB,WAAW;EACX,SAAS;EACT,2BAA2B;EAC3B,sBAAsB;EACtB,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,mBAAmB;EACnB,kBAAkB;EAClB,UAAU;EACV,mDAAmD;AACrD;;AAEA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;AACb;AACA;EACE,kBAAkB;EAClB,eAAe;EACf,uBAAuB;AACzB;;AAEA;EACE,0BAA0B;AAC5B;;AAEA;;;EAGE,6BAA6B;EAC7B,qBAAqB;EACrB,kBAAkB;AACpB;AACA;;;EAGE,eAAe;AACjB;AACA;;;;;;EAME,yBAAyB;AAC3B;AACA;;;EAGE,yBAAyB;EACzB,YAAY;EACZ,MAAM;AACR;;AAEA;;;EAGE,yBAAyB;EACzB,kBAAkB;EAClB,UAAU;EACV,SAAS;EACT,SAAS;EACT,UAAU;EACV,kBAAkB;EAClB,qBAAqB;EACrB,yBAAyB;AAC3B;AACA;;;EAGE,eAAe;AACjB;AACA;;;EAGE,aAAa;EACb,kBAAkB;AACpB;;AAEA;;;EAGE,iBAAiB;EACjB,WAAW;EACX,cAAc;EACd,iBAAiB;EACjB,kBAAkB;AACpB;AACA;;;EAGE,8BAA8B;EAC9B,+BAA+B;AACjC;AACA;;;EAGE,yBAAyB;EAGzB,iBAAiB;EACjB,iCAAiC;EACjC,kCAAkC;AACpC;AACA;;;EAGE,sBAAsB;AACxB;AACA;;;EAGE,4BAA4B;AAC9B;AACA;;;EAGE,yBAAyB;AAC3B;AACA;;;EAGE,kBAAkB;EAClB,UAAU;AACZ;;AAEA;EACE,eAAe;EACf,6BAA6B;EAC7B,SAAS;EACT,UAAU;EACV,kBAAkB;EAClB,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,YAAY;EACZ,mBAAmB;EACnB,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,yBAAyB;EACzB,WAAW;EACX,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,eAAe;EACf,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,sBAAsB;EACtB,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;;AAEA;EACE,mBAAmB;EACnB,6BAA6B;EAC7B,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,cAAc;EACd,WAAW;AACb;;AAEA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;EACb,oCAAoC;EACpC,OAAO;EACP,MAAM;EACN,uBAAuB;EACvB,mBAAmB;EACnB,aAAa;EACb,mBAAmB;AACrB;AACA;;;EAGE,WAAW;EACX,iBAAiB;AACnB;AACA;EACE;;;IAGE,WAAW;IACX,iBAAiB;EACnB;AACF;AACA;;EAEE,kBAAkB;AACpB;;AAEA;EACE,cAAc;EACd,cAAc;EACd,qBAAqB;EACrB,oBAAoB;EACpB,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,4BAAoB;UAApB,oBAAoB;EACpB,SAAS;EACT,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,mBAAmB;AACrB;;AAEA;EACE,UAAU;EACV,WAAW;EACX,wBAAwB;AAC1B","sourcesContent":["@charset \"UTF-8\";\n.react-datepicker__year-read-view--down-arrow,\n.react-datepicker__month-read-view--down-arrow,\n.react-datepicker__month-year-read-view--down-arrow, .react-datepicker__navigation-icon::before {\n border-color: #ccc;\n border-style: solid;\n border-width: 3px 3px 0 0;\n content: \"\";\n display: block;\n height: 9px;\n position: absolute;\n top: 6px;\n width: 9px;\n}\n.react-datepicker-wrapper {\n display: inline-block;\n padding: 0;\n border: 0;\n}\n\n.react-datepicker {\n font-family: \"Helvetica Neue\", helvetica, arial, sans-serif;\n font-size: 0.8rem;\n background-color: #fff;\n color: #000;\n border: 1px solid #aeaeae;\n border-radius: 0.3rem;\n display: inline-block;\n position: relative;\n line-height: initial;\n}\n\n.react-datepicker--time-only .react-datepicker__time-container {\n border-left: 0;\n}\n.react-datepicker--time-only .react-datepicker__time,\n.react-datepicker--time-only .react-datepicker__time-box {\n border-bottom-left-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.react-datepicker-popper {\n z-index: 1;\n line-height: 0;\n}\n.react-datepicker-popper .react-datepicker__triangle {\n stroke: #aeaeae;\n}\n.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle {\n fill: #f0f0f0;\n color: #f0f0f0;\n}\n.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle {\n fill: #fff;\n color: #fff;\n}\n\n.react-datepicker__header {\n text-align: center;\n background-color: #f0f0f0;\n border-bottom: 1px solid #aeaeae;\n border-top-left-radius: 0.3rem;\n padding: 8px 0;\n position: relative;\n}\n.react-datepicker__header--time {\n padding-bottom: 8px;\n padding-left: 5px;\n padding-right: 5px;\n}\n.react-datepicker__header--time:not(.react-datepicker__header--time--only) {\n border-top-left-radius: 0;\n}\n.react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n border-top-right-radius: 0.3rem;\n}\n\n.react-datepicker__year-dropdown-container--select,\n.react-datepicker__month-dropdown-container--select,\n.react-datepicker__month-year-dropdown-container--select,\n.react-datepicker__year-dropdown-container--scroll,\n.react-datepicker__month-dropdown-container--scroll,\n.react-datepicker__month-year-dropdown-container--scroll {\n display: inline-block;\n margin: 0 15px;\n}\n\n.react-datepicker__current-month,\n.react-datepicker-time__header,\n.react-datepicker-year-header {\n margin-top: 0;\n color: #000;\n font-weight: bold;\n font-size: 0.944rem;\n}\n\nh2.react-datepicker__current-month {\n padding: 0;\n margin: 0;\n}\n\n.react-datepicker-time__header {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.react-datepicker__navigation {\n align-items: center;\n background: none;\n display: flex;\n justify-content: center;\n text-align: center;\n cursor: pointer;\n position: absolute;\n top: 2px;\n padding: 0;\n border: none;\n z-index: 1;\n height: 32px;\n width: 32px;\n text-indent: -999em;\n overflow: hidden;\n}\n.react-datepicker__navigation--previous {\n left: 2px;\n}\n.react-datepicker__navigation--next {\n right: 2px;\n}\n.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button) {\n right: 85px;\n}\n.react-datepicker__navigation--years {\n position: relative;\n top: 0;\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.react-datepicker__navigation--years-previous {\n top: 4px;\n}\n.react-datepicker__navigation--years-upcoming {\n top: -4px;\n}\n.react-datepicker__navigation:hover *::before {\n border-color: #a6a6a6;\n}\n\n.react-datepicker__navigation-icon {\n position: relative;\n top: -1px;\n font-size: 20px;\n width: 0;\n}\n.react-datepicker__navigation-icon--next {\n left: -2px;\n}\n.react-datepicker__navigation-icon--next::before {\n transform: rotate(45deg);\n left: -7px;\n}\n.react-datepicker__navigation-icon--previous {\n right: -2px;\n}\n.react-datepicker__navigation-icon--previous::before {\n transform: rotate(225deg);\n right: -7px;\n}\n\n.react-datepicker__month-container {\n float: left;\n}\n\n.react-datepicker__year {\n margin: 0.4rem;\n text-align: center;\n}\n.react-datepicker__year-wrapper {\n display: flex;\n flex-wrap: wrap;\n max-width: 180px;\n}\n.react-datepicker__year .react-datepicker__year-text {\n display: inline-block;\n width: 4rem;\n margin: 2px;\n}\n\n.react-datepicker__month {\n margin: 0.4rem;\n text-align: center;\n}\n.react-datepicker__month .react-datepicker__month-text,\n.react-datepicker__month .react-datepicker__quarter-text {\n display: inline-block;\n width: 4rem;\n margin: 2px;\n}\n\n.react-datepicker__input-time-container {\n clear: both;\n width: 100%;\n float: left;\n margin: 5px 0 10px 15px;\n text-align: left;\n}\n.react-datepicker__input-time-container .react-datepicker-time__caption {\n display: inline-block;\n}\n.react-datepicker__input-time-container .react-datepicker-time__input-container {\n display: inline-block;\n}\n.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input {\n display: inline-block;\n margin-left: 10px;\n}\n.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input {\n width: auto;\n}\n.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,\n.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time] {\n -moz-appearance: textfield;\n}\n.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter {\n margin-left: 5px;\n display: inline-block;\n}\n\n.react-datepicker__time-container {\n float: right;\n border-left: 1px solid #aeaeae;\n width: 85px;\n}\n.react-datepicker__time-container--with-today-button {\n display: inline;\n border: 1px solid #aeaeae;\n border-radius: 0.3rem;\n position: absolute;\n right: -87px;\n top: 0;\n}\n.react-datepicker__time-container .react-datepicker__time {\n position: relative;\n background: white;\n border-bottom-right-radius: 0.3rem;\n}\n.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box {\n width: 85px;\n overflow-x: hidden;\n margin: 0 auto;\n text-align: center;\n border-bottom-right-radius: 0.3rem;\n}\n.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list {\n list-style: none;\n margin: 0;\n height: calc(195px + 1.7rem / 2);\n overflow-y: scroll;\n padding-right: 0;\n padding-left: 0;\n width: 100%;\n box-sizing: content-box;\n}\n.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item {\n height: 30px;\n padding: 5px 10px;\n white-space: nowrap;\n}\n.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover {\n cursor: pointer;\n background-color: #f0f0f0;\n}\n.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected {\n background-color: #216ba5;\n color: white;\n font-weight: bold;\n}\n.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover {\n background-color: #216ba5;\n}\n.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled {\n color: #ccc;\n}\n.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover {\n cursor: default;\n background-color: transparent;\n}\n\n.react-datepicker__week-number {\n color: #ccc;\n display: inline-block;\n width: 1.7rem;\n line-height: 1.7rem;\n text-align: center;\n margin: 0.166rem;\n}\n.react-datepicker__week-number.react-datepicker__week-number--clickable {\n cursor: pointer;\n}\n.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected,\n.react-datepicker__week-number--keyboard-selected):hover {\n border-radius: 0.3rem;\n background-color: #f0f0f0;\n}\n.react-datepicker__week-number--selected {\n border-radius: 0.3rem;\n background-color: #216ba5;\n color: #fff;\n}\n.react-datepicker__week-number--selected:hover {\n background-color: #1d5d90;\n}\n.react-datepicker__week-number--keyboard-selected {\n border-radius: 0.3rem;\n background-color: #2a87d0;\n color: #fff;\n}\n.react-datepicker__week-number--keyboard-selected:hover {\n background-color: #1d5d90;\n}\n\n.react-datepicker__day-names {\n white-space: nowrap;\n margin-bottom: -8px;\n}\n\n.react-datepicker__week {\n white-space: nowrap;\n}\n\n.react-datepicker__day-name,\n.react-datepicker__day,\n.react-datepicker__time-name {\n color: #000;\n display: inline-block;\n width: 1.7rem;\n line-height: 1.7rem;\n text-align: center;\n margin: 0.166rem;\n}\n\n.react-datepicker__day,\n.react-datepicker__month-text,\n.react-datepicker__quarter-text,\n.react-datepicker__year-text {\n cursor: pointer;\n}\n.react-datepicker__day:hover,\n.react-datepicker__month-text:hover,\n.react-datepicker__quarter-text:hover,\n.react-datepicker__year-text:hover {\n border-radius: 0.3rem;\n background-color: #f0f0f0;\n}\n.react-datepicker__day--today,\n.react-datepicker__month-text--today,\n.react-datepicker__quarter-text--today,\n.react-datepicker__year-text--today {\n font-weight: bold;\n}\n.react-datepicker__day--highlighted,\n.react-datepicker__month-text--highlighted,\n.react-datepicker__quarter-text--highlighted,\n.react-datepicker__year-text--highlighted {\n border-radius: 0.3rem;\n background-color: #3dcc4a;\n color: #fff;\n}\n.react-datepicker__day--highlighted:hover,\n.react-datepicker__month-text--highlighted:hover,\n.react-datepicker__quarter-text--highlighted:hover,\n.react-datepicker__year-text--highlighted:hover {\n background-color: #32be3f;\n}\n.react-datepicker__day--highlighted-custom-1,\n.react-datepicker__month-text--highlighted-custom-1,\n.react-datepicker__quarter-text--highlighted-custom-1,\n.react-datepicker__year-text--highlighted-custom-1 {\n color: magenta;\n}\n.react-datepicker__day--highlighted-custom-2,\n.react-datepicker__month-text--highlighted-custom-2,\n.react-datepicker__quarter-text--highlighted-custom-2,\n.react-datepicker__year-text--highlighted-custom-2 {\n color: green;\n}\n.react-datepicker__day--holidays,\n.react-datepicker__month-text--holidays,\n.react-datepicker__quarter-text--holidays,\n.react-datepicker__year-text--holidays {\n position: relative;\n border-radius: 0.3rem;\n background-color: #ff6803;\n color: #fff;\n}\n.react-datepicker__day--holidays .overlay,\n.react-datepicker__month-text--holidays .overlay,\n.react-datepicker__quarter-text--holidays .overlay,\n.react-datepicker__year-text--holidays .overlay {\n position: absolute;\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n background-color: #333;\n color: #fff;\n padding: 4px;\n border-radius: 4px;\n white-space: nowrap;\n visibility: hidden;\n opacity: 0;\n transition: visibility 0s, opacity 0.3s ease-in-out;\n}\n.react-datepicker__day--holidays:hover,\n.react-datepicker__month-text--holidays:hover,\n.react-datepicker__quarter-text--holidays:hover,\n.react-datepicker__year-text--holidays:hover {\n background-color: #cf5300;\n}\n.react-datepicker__day--holidays:hover .overlay,\n.react-datepicker__month-text--holidays:hover .overlay,\n.react-datepicker__quarter-text--holidays:hover .overlay,\n.react-datepicker__year-text--holidays:hover .overlay {\n visibility: visible;\n opacity: 1;\n}\n.react-datepicker__day--selected, .react-datepicker__day--in-selecting-range, .react-datepicker__day--in-range,\n.react-datepicker__month-text--selected,\n.react-datepicker__month-text--in-selecting-range,\n.react-datepicker__month-text--in-range,\n.react-datepicker__quarter-text--selected,\n.react-datepicker__quarter-text--in-selecting-range,\n.react-datepicker__quarter-text--in-range,\n.react-datepicker__year-text--selected,\n.react-datepicker__year-text--in-selecting-range,\n.react-datepicker__year-text--in-range {\n border-radius: 0.3rem;\n background-color: #216ba5;\n color: #fff;\n}\n.react-datepicker__day--selected:hover, .react-datepicker__day--in-selecting-range:hover, .react-datepicker__day--in-range:hover,\n.react-datepicker__month-text--selected:hover,\n.react-datepicker__month-text--in-selecting-range:hover,\n.react-datepicker__month-text--in-range:hover,\n.react-datepicker__quarter-text--selected:hover,\n.react-datepicker__quarter-text--in-selecting-range:hover,\n.react-datepicker__quarter-text--in-range:hover,\n.react-datepicker__year-text--selected:hover,\n.react-datepicker__year-text--in-selecting-range:hover,\n.react-datepicker__year-text--in-range:hover {\n background-color: #1d5d90;\n}\n.react-datepicker__day--keyboard-selected,\n.react-datepicker__month-text--keyboard-selected,\n.react-datepicker__quarter-text--keyboard-selected,\n.react-datepicker__year-text--keyboard-selected {\n border-radius: 0.3rem;\n background-color: #bad9f1;\n color: rgb(0, 0, 0);\n}\n.react-datepicker__day--keyboard-selected:hover,\n.react-datepicker__month-text--keyboard-selected:hover,\n.react-datepicker__quarter-text--keyboard-selected:hover,\n.react-datepicker__year-text--keyboard-selected:hover {\n background-color: #1d5d90;\n}\n.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,\n.react-datepicker__month-text--in-range,\n.react-datepicker__quarter-text--in-range,\n.react-datepicker__year-text--in-range),\n.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,\n.react-datepicker__month-text--in-range,\n.react-datepicker__quarter-text--in-range,\n.react-datepicker__year-text--in-range),\n.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,\n.react-datepicker__month-text--in-range,\n.react-datepicker__quarter-text--in-range,\n.react-datepicker__year-text--in-range),\n.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,\n.react-datepicker__month-text--in-range,\n.react-datepicker__quarter-text--in-range,\n.react-datepicker__year-text--in-range) {\n background-color: rgba(33, 107, 165, 0.5);\n}\n.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,\n.react-datepicker__month-text--in-selecting-range,\n.react-datepicker__quarter-text--in-selecting-range,\n.react-datepicker__year-text--in-selecting-range), .react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,\n.react-datepicker__month-text--in-selecting-range,\n.react-datepicker__quarter-text--in-selecting-range,\n.react-datepicker__year-text--in-selecting-range),\n.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,\n.react-datepicker__month-text--in-selecting-range,\n.react-datepicker__quarter-text--in-selecting-range,\n.react-datepicker__year-text--in-selecting-range),\n.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,\n.react-datepicker__month-text--in-selecting-range,\n.react-datepicker__quarter-text--in-selecting-range,\n.react-datepicker__year-text--in-selecting-range),\n.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,\n.react-datepicker__month-text--in-selecting-range,\n.react-datepicker__quarter-text--in-selecting-range,\n.react-datepicker__year-text--in-selecting-range),\n.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,\n.react-datepicker__month-text--in-selecting-range,\n.react-datepicker__quarter-text--in-selecting-range,\n.react-datepicker__year-text--in-selecting-range),\n.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,\n.react-datepicker__month-text--in-selecting-range,\n.react-datepicker__quarter-text--in-selecting-range,\n.react-datepicker__year-text--in-selecting-range),\n.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,\n.react-datepicker__month-text--in-selecting-range,\n.react-datepicker__quarter-text--in-selecting-range,\n.react-datepicker__year-text--in-selecting-range) {\n background-color: #f0f0f0;\n color: #000;\n}\n.react-datepicker__day--disabled,\n.react-datepicker__month-text--disabled,\n.react-datepicker__quarter-text--disabled,\n.react-datepicker__year-text--disabled {\n cursor: default;\n color: #ccc;\n}\n.react-datepicker__day--disabled:hover,\n.react-datepicker__month-text--disabled:hover,\n.react-datepicker__quarter-text--disabled:hover,\n.react-datepicker__year-text--disabled:hover {\n background-color: transparent;\n}\n.react-datepicker__day--disabled .overlay,\n.react-datepicker__month-text--disabled .overlay,\n.react-datepicker__quarter-text--disabled .overlay,\n.react-datepicker__year-text--disabled .overlay {\n position: absolute;\n bottom: 70%;\n left: 50%;\n transform: translateX(-50%);\n background-color: #333;\n color: #fff;\n padding: 4px;\n border-radius: 4px;\n white-space: nowrap;\n visibility: hidden;\n opacity: 0;\n transition: visibility 0s, opacity 0.3s ease-in-out;\n}\n\n.react-datepicker__input-container {\n position: relative;\n display: inline-block;\n width: 100%;\n}\n.react-datepicker__input-container .react-datepicker__calendar-icon {\n position: absolute;\n padding: 0.5rem;\n box-sizing: content-box;\n}\n\n.react-datepicker__view-calendar-icon input {\n padding: 6px 10px 5px 25px;\n}\n\n.react-datepicker__year-read-view,\n.react-datepicker__month-read-view,\n.react-datepicker__month-year-read-view {\n border: 1px solid transparent;\n border-radius: 0.3rem;\n position: relative;\n}\n.react-datepicker__year-read-view:hover,\n.react-datepicker__month-read-view:hover,\n.react-datepicker__month-year-read-view:hover {\n cursor: pointer;\n}\n.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,\n.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,\n.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,\n.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,\n.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,\n.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow {\n border-top-color: #b3b3b3;\n}\n.react-datepicker__year-read-view--down-arrow,\n.react-datepicker__month-read-view--down-arrow,\n.react-datepicker__month-year-read-view--down-arrow {\n transform: rotate(135deg);\n right: -16px;\n top: 0;\n}\n\n.react-datepicker__year-dropdown,\n.react-datepicker__month-dropdown,\n.react-datepicker__month-year-dropdown {\n background-color: #f0f0f0;\n position: absolute;\n width: 50%;\n left: 25%;\n top: 30px;\n z-index: 1;\n text-align: center;\n border-radius: 0.3rem;\n border: 1px solid #aeaeae;\n}\n.react-datepicker__year-dropdown:hover,\n.react-datepicker__month-dropdown:hover,\n.react-datepicker__month-year-dropdown:hover {\n cursor: pointer;\n}\n.react-datepicker__year-dropdown--scrollable,\n.react-datepicker__month-dropdown--scrollable,\n.react-datepicker__month-year-dropdown--scrollable {\n height: 150px;\n overflow-y: scroll;\n}\n\n.react-datepicker__year-option,\n.react-datepicker__month-option,\n.react-datepicker__month-year-option {\n line-height: 20px;\n width: 100%;\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.react-datepicker__year-option:first-of-type,\n.react-datepicker__month-option:first-of-type,\n.react-datepicker__month-year-option:first-of-type {\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n.react-datepicker__year-option:last-of-type,\n.react-datepicker__month-option:last-of-type,\n.react-datepicker__month-year-option:last-of-type {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border-bottom-left-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n.react-datepicker__year-option:hover,\n.react-datepicker__month-option:hover,\n.react-datepicker__month-year-option:hover {\n background-color: #ccc;\n}\n.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,\n.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,\n.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming {\n border-bottom-color: #b3b3b3;\n}\n.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,\n.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,\n.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous {\n border-top-color: #b3b3b3;\n}\n.react-datepicker__year-option--selected,\n.react-datepicker__month-option--selected,\n.react-datepicker__month-year-option--selected {\n position: absolute;\n left: 15px;\n}\n\n.react-datepicker__close-icon {\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: 0;\n padding: 0 6px 0 0;\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n display: table-cell;\n vertical-align: middle;\n}\n.react-datepicker__close-icon::after {\n cursor: pointer;\n background-color: #216ba5;\n color: #fff;\n border-radius: 50%;\n height: 16px;\n width: 16px;\n padding: 2px;\n font-size: 12px;\n line-height: 1;\n text-align: center;\n display: table-cell;\n vertical-align: middle;\n content: \"×\";\n}\n.react-datepicker__close-icon--disabled {\n cursor: default;\n}\n.react-datepicker__close-icon--disabled::after {\n cursor: default;\n background-color: #ccc;\n}\n\n.react-datepicker__today-button {\n background: #f0f0f0;\n border-top: 1px solid #aeaeae;\n cursor: pointer;\n text-align: center;\n font-weight: bold;\n padding: 5px 0;\n clear: left;\n}\n\n.react-datepicker__portal {\n position: fixed;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.8);\n left: 0;\n top: 0;\n justify-content: center;\n align-items: center;\n display: flex;\n z-index: 2147483647;\n}\n.react-datepicker__portal .react-datepicker__day-name,\n.react-datepicker__portal .react-datepicker__day,\n.react-datepicker__portal .react-datepicker__time-name {\n width: 3rem;\n line-height: 3rem;\n}\n@media (max-width: 400px), (max-height: 550px) {\n .react-datepicker__portal .react-datepicker__day-name,\n .react-datepicker__portal .react-datepicker__day,\n .react-datepicker__portal .react-datepicker__time-name {\n width: 2rem;\n line-height: 2rem;\n }\n}\n.react-datepicker__portal .react-datepicker__current-month,\n.react-datepicker__portal .react-datepicker-time__header {\n font-size: 1.44rem;\n}\n\n.react-datepicker__children-container {\n width: 13.8rem;\n margin: 0.4rem;\n padding-right: 0.2rem;\n padding-left: 0.2rem;\n height: auto;\n}\n\n.react-datepicker__aria-live {\n position: absolute;\n clip-path: circle(0);\n border: 0;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n width: 1px;\n white-space: nowrap;\n}\n\n.react-datepicker__calendar-icon {\n width: 1em;\n height: 1em;\n vertical-align: -0.125em;\n}\n"],"sourceRoot":""}]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css ***! + \*******************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/getUrl.js */ "./node_modules/css-loader/dist/runtime/getUrl.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); +// Imports + + + +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml,%3Csvg width=%2724%27 height=%2724%27 stroke=%27%23000%27 viewBox=%270 0 24 24%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate%28360deg%29%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class=%27spinner_V8m1%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%279.5%27 fill=%27none%27 stroke-width=%273%27%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E */ "data:image/svg+xml,%3Csvg width=%2724%27 height=%2724%27 stroke=%27%23000%27 viewBox=%270 0 24 24%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate%28360deg%29%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class=%27spinner_V8m1%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%279.5%27 fill=%27none%27 stroke-width=%273%27%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E"), __webpack_require__.b); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 style=%27shape-rendering: auto;%27 width=%27200px%27 height=%27200px%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27xMidYMid%27%3E%3Cpath fill=%27none%27 stroke=%27%230a0a0a%27 stroke-width=%2710%27 stroke-dasharray=%27205.271142578125 51.317785644531256%27 d=%27M24.3 30C11.4 30 5 43.3 5 50s6.4 20 19.3 20c19.3 0 32.1-40 51.4-40 C88.6 30 95 43.3 95 50s-6.4 20-19.3 20C56.4 70 43.6 30 24.3 30z%27 stroke-linecap=%27round%27 style=%27transform:scale%280.8%29;transform-origin:50px 50px%27%3E%3Canimate attributeName=%27stroke-dashoffset%27 repeatCount=%27indefinite%27 dur=%272s%27 keyTimes=%270;1%27 values=%270;256.58892822265625%27%3E%3C/animate%3E%3C/path%3E%3C/svg%3E */ "data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 style=%27shape-rendering: auto;%27 width=%27200px%27 height=%27200px%27 viewBox=%270 0 100 100%27 preserveAspectRatio=%27xMidYMid%27%3E%3Cpath fill=%27none%27 stroke=%27%230a0a0a%27 stroke-width=%2710%27 stroke-dasharray=%27205.271142578125 51.317785644531256%27 d=%27M24.3 30C11.4 30 5 43.3 5 50s6.4 20 19.3 20c19.3 0 32.1-40 51.4-40 C88.6 30 95 43.3 95 50s-6.4 20-19.3 20C56.4 70 43.6 30 24.3 30z%27 stroke-linecap=%27round%27 style=%27transform:scale%280.8%29;transform-origin:50px 50px%27%3E%3Canimate attributeName=%27stroke-dashoffset%27 repeatCount=%27indefinite%27 dur=%272s%27 keyTimes=%270;1%27 values=%270;256.58892822265625%27%3E%3C/animate%3E%3C/path%3E%3C/svg%3E"), __webpack_require__.b); +var ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(/*! data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAASElEQVR4nGNgwAMkJSUbpKSkOvCpIaT5PxSTbogUQjMYMwxeIIXmVFIxA8UGDDyQGg0DnIDi6JKUlCxHMqCeZAOghjSAMD5FAKfeaURdUFxCAAAAAElFTkSuQmCC */ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAASElEQVR4nGNgwAMkJSUbpKSkOvCpIaT5PxSTbogUQjMYMwxeIIXmVFIxA8UGDDyQGg0DnIDi6JKUlCxHMqCeZAOghjSAMD5FAKfeaURdUFxCAAAAAElFTkSuQmCC"), __webpack_require__.b); +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `/* +! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com +*//* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; /* 1 */ + border-width: 0; /* 2 */ + border-style: solid; /* 2 */ + border-color: #e5e7eb; /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured \`sans\` font-family by default. +5. Use the user's configured \`sans\` font-feature-settings by default. +6. Use the user's configured \`sans\` font-variation-settings by default. +7. Disable tap highlights on iOS +*/ + +html, +:host { + line-height: 1.5; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ /* 3 */ + tab-size: 4; /* 3 */ + font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ + font-feature-settings: normal; /* 5 */ + font-variation-settings: normal; /* 6 */ + -webkit-tap-highlight-color: transparent; /* 7 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from \`html\` so users can set them as a class directly on the \`html\` element. +*/ + +body { + margin: 0; /* 1 */ + line-height: inherit; /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; /* 1 */ + color: inherit; /* 2 */ + border-top-width: 1px; /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured \`mono\` font-family by default. +2. Use the user's configured \`mono\` font-feature-settings by default. +3. Use the user's configured \`mono\` font-variation-settings by default. +4. Correct the odd \`em\` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ + font-feature-settings: normal; /* 2 */ + font-variation-settings: normal; /* 3 */ + font-size: 1em; /* 4 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent \`sub\` and \`sup\` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; /* 1 */ + border-color: inherit; /* 2 */ + border-collapse: collapse; /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-feature-settings: inherit; /* 1 */ + font-variation-settings: inherit; /* 1 */ + font-size: 100%; /* 1 */ + font-weight: inherit; /* 1 */ + line-height: inherit; /* 1 */ + letter-spacing: inherit; /* 1 */ + color: inherit; /* 1 */ + margin: 0; /* 2 */ + padding: 0; /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +input:where([type='button']), +input:where([type='reset']), +input:where([type='submit']) { + -webkit-appearance: button; /* 1 */ + background-color: transparent; /* 2 */ + background-image: none; /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional \`:invalid\` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to \`inherit\` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Reset default styling for dialogs. +*/ +dialog { + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::placeholder, +textarea::placeholder { + opacity: 1; /* 1 */ + color: #9ca3af; /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ +:disabled { + cursor: default; +} + +/* +1. Make replaced elements \`display: block\` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add \`vertical-align: middle\` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; /* 1 */ + vertical-align: middle; /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* Make elements with the HTML hidden attribute stay hidden by default */ +[hidden] { + display: none; +} + +:root, +[data-theme] { + background-color: var(--fallback-b1,oklch(var(--b1)/1)); + color: var(--fallback-bc,oklch(var(--bc)/1)); +} + +@supports not (color: oklch(0% 0 0)) { + + :root { + color-scheme: light; + --fallback-p: #491eff; + --fallback-pc: #d4dbff; + --fallback-s: #ff41c7; + --fallback-sc: #fff9fc; + --fallback-a: #00cfbd; + --fallback-ac: #00100d; + --fallback-n: #2b3440; + --fallback-nc: #d7dde4; + --fallback-b1: #ffffff; + --fallback-b2: #e5e6e6; + --fallback-b3: #e5e6e6; + --fallback-bc: #1f2937; + --fallback-in: #00b3f0; + --fallback-inc: #000000; + --fallback-su: #00ca92; + --fallback-suc: #000000; + --fallback-wa: #ffc22d; + --fallback-wac: #000000; + --fallback-er: #ff6f70; + --fallback-erc: #000000; + } + + @media (prefers-color-scheme: dark) { + + :root { + color-scheme: dark; + --fallback-p: #7582ff; + --fallback-pc: #050617; + --fallback-s: #ff71cf; + --fallback-sc: #190211; + --fallback-a: #00c7b5; + --fallback-ac: #000e0c; + --fallback-n: #2a323c; + --fallback-nc: #a6adbb; + --fallback-b1: #1d232a; + --fallback-b2: #191e24; + --fallback-b3: #15191e; + --fallback-bc: #a6adbb; + --fallback-in: #00b3f0; + --fallback-inc: #000000; + --fallback-su: #00ca92; + --fallback-suc: #000000; + --fallback-wa: #ffc22d; + --fallback-wac: #000000; + --fallback-er: #ff6f70; + --fallback-erc: #000000; + } + } +} + +html { + -webkit-tap-highlight-color: transparent; +} + +* { + scrollbar-color: color-mix(in oklch, currentColor 35%, transparent) transparent; +} + +*:hover { + scrollbar-color: color-mix(in oklch, currentColor 60%, transparent) transparent; +} + +:root { + color-scheme: light; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --pc: 89.824% 0.06192 275.75; + --ac: 15.352% 0.0368 183.61; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 49.12% 0.3096 275.75; + --s: 69.71% 0.329 342.55; + --sc: 98.71% 0.0106 342.55; + --a: 76.76% 0.184 183.61; + --n: 32.1785% 0.02476 255.701624; + --nc: 89.4994% 0.011585 252.096176; + --b1: 100% 0 0; + --b2: 96.1151% 0 0; + --b3: 92.4169% 0.00108 197.137559; + --bc: 27.8078% 0.029596 256.847952; +} + +@media (prefers-color-scheme: dark) { + + :root { + color-scheme: dark; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --pc: 13.138% 0.0392 275.75; + --sc: 14.96% 0.052 342.55; + --ac: 14.902% 0.0334 183.61; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 65.69% 0.196 275.75; + --s: 74.8% 0.26 342.55; + --a: 74.51% 0.167 183.61; + --n: 31.3815% 0.021108 254.139175; + --nc: 74.6477% 0.0216 264.435964; + --b1: 25.3267% 0.015896 252.417568; + --b2: 23.2607% 0.013807 253.100675; + --b3: 21.1484% 0.01165 254.087939; + --bc: 74.6477% 0.0216 264.435964; + } +} + +[data-theme=light] { + color-scheme: light; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --pc: 89.824% 0.06192 275.75; + --ac: 15.352% 0.0368 183.61; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 49.12% 0.3096 275.75; + --s: 69.71% 0.329 342.55; + --sc: 98.71% 0.0106 342.55; + --a: 76.76% 0.184 183.61; + --n: 32.1785% 0.02476 255.701624; + --nc: 89.4994% 0.011585 252.096176; + --b1: 100% 0 0; + --b2: 96.1151% 0 0; + --b3: 92.4169% 0.00108 197.137559; + --bc: 27.8078% 0.029596 256.847952; +} + +[data-theme=dark] { + color-scheme: dark; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --pc: 13.138% 0.0392 275.75; + --sc: 14.96% 0.052 342.55; + --ac: 14.902% 0.0334 183.61; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 65.69% 0.196 275.75; + --s: 74.8% 0.26 342.55; + --a: 74.51% 0.167 183.61; + --n: 31.3815% 0.021108 254.139175; + --nc: 74.6477% 0.0216 264.435964; + --b1: 25.3267% 0.015896 252.417568; + --b2: 23.2607% 0.013807 253.100675; + --b3: 21.1484% 0.01165 254.087939; + --bc: 74.6477% 0.0216 264.435964; +} + +[data-theme=cupcake] { + color-scheme: light; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --pc: 15.2344% 0.017892 200.026556; + --sc: 15.787% 0.020249 356.29965; + --ac: 15.8762% 0.029206 78.618794; + --nc: 84.7148% 0.013247 313.189598; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --p: 76.172% 0.089459 200.026556; + --s: 78.9351% 0.101246 356.29965; + --a: 79.3811% 0.146032 78.618794; + --n: 23.5742% 0.066235 313.189598; + --b1: 97.7882% 0.00418 56.375637; + --b2: 93.9822% 0.007638 61.449292; + --b3: 91.5861% 0.006811 53.440502; + --bc: 23.5742% 0.066235 313.189598; + --rounded-btn: 1.9rem; + --tab-border: 2px; + --tab-radius: 0.7rem; +} + +[data-theme=bumblebee] { + color-scheme: light; + --b2: 93% 0 0; + --b3: 86% 0 0; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --bc: 20% 0 0; + --ac: 16.254% 0.0314 56.52; + --nc: 82.55% 0.015 281.99; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 89.51% 0.2132 96.61; + --pc: 38.92% 0.046 96.61; + --s: 80.39% 0.194 70.76; + --sc: 39.38% 0.068 70.76; + --a: 81.27% 0.157 56.52; + --n: 12.75% 0.075 281.99; + --b1: 100% 0 0; +} + +[data-theme=emerald] { + color-scheme: light; + --b2: 93% 0 0; + --b3: 86% 0 0; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 76.6626% 0.135433 153.450024; + --pc: 33.3872% 0.040618 162.240129; + --s: 61.3028% 0.202368 261.294233; + --sc: 100% 0 0; + --a: 72.7725% 0.149783 33.200363; + --ac: 0% 0 0; + --n: 35.5192% 0.032071 262.988584; + --nc: 98.4625% 0.001706 247.838921; + --b1: 100% 0 0; + --bc: 35.5192% 0.032071 262.988584; + --animation-btn: 0; + --animation-input: 0; + --btn-focus-scale: 1; +} + +[data-theme=corporate] { + color-scheme: light; + --b2: 93% 0 0; + --b3: 86% 0 0; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --pc: 12.078% 0.0456 269.1; + --sc: 13.0739% 0.010951 256.688055; + --ac: 15.3934% 0.022799 163.57888; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --border-btn: 1px; + --tab-border: 1px; + --p: 60.39% 0.228 269.1; + --s: 65.3694% 0.054756 256.688055; + --a: 76.9669% 0.113994 163.57888; + --n: 22.3899% 0.031305 278.07229; + --nc: 95.8796% 0.008588 247.915135; + --b1: 100% 0 0; + --bc: 22.3899% 0.031305 278.07229; + --rounded-box: 0.25rem; + --rounded-btn: .125rem; + --rounded-badge: .125rem; + --tab-radius: 0.25rem; + --animation-btn: 0; + --animation-input: 0; + --btn-focus-scale: 1; +} + +[data-theme=synthwave] { + color-scheme: dark; + --b2: 20.2941% 0.076211 287.835609; + --b3: 18.7665% 0.070475 287.835609; + --pc: 14.4421% 0.031903 342.009383; + --sc: 15.6543% 0.02362 227.382405; + --ac: 17.608% 0.0412 93.72; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 72.2105% 0.159514 342.009383; + --s: 78.2714% 0.118101 227.382405; + --a: 88.04% 0.206 93.72; + --n: 25.5554% 0.103537 286.507967; + --nc: 97.9365% 0.00819 301.358346; + --b1: 21.8216% 0.081948 287.835609; + --bc: 97.9365% 0.00819 301.358346; + --in: 76.5197% 0.12273 231.831603; + --inc: 23.5017% 0.096418 290.329844; + --su: 86.0572% 0.115038 178.624677; + --suc: 23.5017% 0.096418 290.329844; + --wa: 85.531% 0.122117 93.722227; + --wac: 23.5017% 0.096418 290.329844; + --er: 73.7005% 0.121339 32.639257; + --erc: 23.5017% 0.096418 290.329844; +} + +[data-theme=retro] { + color-scheme: light; + --inc: 90.923% 0.043042 262.880917; + --suc: 12.541% 0.033982 149.213788; + --wac: 13.3168% 0.031484 58.31834; + --erc: 13.144% 0.0398 27.33; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --p: 76.8664% 0.104092 22.664655; + --pc: 26.5104% 0.006243 0.522862; + --s: 80.7415% 0.052534 159.094608; + --sc: 26.5104% 0.006243 0.522862; + --a: 70.3919% 0.125455 52.953428; + --ac: 26.5104% 0.006243 0.522862; + --n: 28.4181% 0.009519 355.534017; + --nc: 92.5604% 0.025113 89.217311; + --b1: 91.6374% 0.034554 90.51575; + --b2: 88.2722% 0.049418 91.774344; + --b3: 84.133% 0.065952 90.856665; + --bc: 26.5104% 0.006243 0.522862; + --in: 54.615% 0.215208 262.880917; + --su: 62.7052% 0.169912 149.213788; + --wa: 66.584% 0.157422 58.31834; + --er: 65.72% 0.199 27.33; + --rounded-box: 0.4rem; + --rounded-btn: 0.4rem; + --rounded-badge: 0.4rem; + --tab-radius: 0.4rem; +} + +[data-theme=cyberpunk] { + color-scheme: light; + --b2: 87.8943% 0.16647 104.32; + --b3: 81.2786% 0.15394 104.32; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --bc: 18.902% 0.0358 104.32; + --pc: 14.844% 0.0418 6.35; + --sc: 16.666% 0.0368 204.72; + --ac: 14.372% 0.04352 310.43; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace; + --p: 74.22% 0.209 6.35; + --s: 83.33% 0.184 204.72; + --a: 71.86% 0.2176 310.43; + --n: 23.04% 0.065 269.31; + --nc: 94.51% 0.179 104.32; + --b1: 94.51% 0.179 104.32; + --rounded-box: 0; + --rounded-btn: 0; + --rounded-badge: 0; + --tab-radius: 0; +} + +[data-theme=valentine] { + color-scheme: light; + --b2: 88.0567% 0.024834 337.06289; + --b3: 81.4288% 0.022964 337.06289; + --pc: 13.7239% 0.030755 15.066527; + --sc: 14.3942% 0.029258 293.189609; + --ac: 14.2537% 0.014961 197.828857; + --inc: 90.923% 0.043042 262.880917; + --suc: 12.541% 0.033982 149.213788; + --wac: 13.3168% 0.031484 58.31834; + --erc: 14.614% 0.0414 27.33; + --rounded-box: 1rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --p: 68.6197% 0.153774 15.066527; + --s: 71.971% 0.14629 293.189609; + --a: 71.2685% 0.074804 197.828857; + --n: 54.6053% 0.143342 358.004839; + --nc: 90.2701% 0.037202 336.955191; + --b1: 94.6846% 0.026703 337.06289; + --bc: 37.3085% 0.081131 4.606426; + --in: 54.615% 0.215208 262.880917; + --su: 62.7052% 0.169912 149.213788; + --wa: 66.584% 0.157422 58.31834; + --er: 73.07% 0.207 27.33; + --rounded-btn: 1.9rem; + --tab-radius: 0.7rem; +} + +[data-theme=halloween] { + color-scheme: dark; + --b2: 23.0416% 0 0; + --b3: 21.3072% 0 0; + --bc: 84.9552% 0 0; + --sc: 89.196% 0.0496 305.03; + --nc: 84.8742% 0.009322 65.681484; + --inc: 90.923% 0.043042 262.880917; + --suc: 12.541% 0.033982 149.213788; + --wac: 13.3168% 0.031484 58.31834; + --erc: 13.144% 0.0398 27.33; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 77.48% 0.204 60.62; + --pc: 19.6935% 0.004671 196.779412; + --s: 45.98% 0.248 305.03; + --a: 64.8% 0.223 136.073479; + --ac: 0% 0 0; + --n: 24.371% 0.046608 65.681484; + --b1: 24.7759% 0 0; + --in: 54.615% 0.215208 262.880917; + --su: 62.7052% 0.169912 149.213788; + --wa: 66.584% 0.157422 58.31834; + --er: 65.72% 0.199 27.33; +} + +[data-theme=garden] { + color-scheme: light; + --b2: 86.4453% 0.002011 17.197414; + --b3: 79.9386% 0.00186 17.197414; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --sc: 89.699% 0.022197 355.095988; + --ac: 11.2547% 0.010859 154.390187; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 62.45% 0.278 3.83636; + --pc: 100% 0 0; + --s: 48.4952% 0.110985 355.095988; + --a: 56.2735% 0.054297 154.390187; + --n: 24.1559% 0.049362 89.070594; + --nc: 92.9519% 0.002163 17.197414; + --b1: 92.9519% 0.002163 17.197414; + --bc: 16.9617% 0.001664 17.32068; +} + +[data-theme=forest] { + color-scheme: dark; + --b2: 17.522% 0.007709 17.911578; + --b3: 16.2032% 0.007129 17.911578; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --bc: 83.7682% 0.001658 17.911578; + --sc: 13.9553% 0.027077 168.327128; + --ac: 14.1257% 0.02389 185.713193; + --nc: 86.1397% 0.007806 171.364646; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 68.6283% 0.185567 148.958922; + --pc: 0% 0 0; + --s: 69.7764% 0.135385 168.327128; + --a: 70.6285% 0.119451 185.713193; + --n: 30.6985% 0.039032 171.364646; + --b1: 18.8409% 0.00829 17.911578; + --rounded-btn: 1.9rem; +} + +[data-theme=aqua] { + color-scheme: dark; + --b2: 45.3464% 0.118611 261.181672; + --b3: 41.9333% 0.109683 261.181672; + --bc: 89.7519% 0.025508 261.181672; + --sc: 12.1365% 0.02175 309.782946; + --ac: 18.6854% 0.020445 94.555431; + --nc: 12.2124% 0.023402 243.760661; + --inc: 90.923% 0.043042 262.880917; + --suc: 12.541% 0.033982 149.213788; + --wac: 13.3168% 0.031484 58.31834; + --erc: 14.79% 0.038 27.33; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 85.6617% 0.14498 198.6458; + --pc: 40.1249% 0.068266 197.603872; + --s: 60.6827% 0.108752 309.782946; + --a: 93.4269% 0.102225 94.555431; + --n: 61.0622% 0.117009 243.760661; + --b1: 48.7596% 0.127539 261.181672; + --in: 54.615% 0.215208 262.880917; + --su: 62.7052% 0.169912 149.213788; + --wa: 66.584% 0.157422 58.31834; + --er: 73.95% 0.19 27.33; +} + +[data-theme=lofi] { + color-scheme: light; + --inc: 15.908% 0.0206 205.9; + --suc: 18.026% 0.0306 164.14; + --wac: 17.674% 0.027 79.94; + --erc: 15.732% 0.03 28.47; + --border-btn: 1px; + --tab-border: 1px; + --p: 15.9066% 0 0; + --pc: 100% 0 0; + --s: 21.455% 0.001566 17.278957; + --sc: 100% 0 0; + --a: 26.8618% 0 0; + --ac: 100% 0 0; + --n: 0% 0 0; + --nc: 100% 0 0; + --b1: 100% 0 0; + --b2: 96.1151% 0 0; + --b3: 92.268% 0.001082 17.17934; + --bc: 0% 0 0; + --in: 79.54% 0.103 205.9; + --su: 90.13% 0.153 164.14; + --wa: 88.37% 0.135 79.94; + --er: 78.66% 0.15 28.47; + --rounded-box: 0.25rem; + --rounded-btn: 0.125rem; + --rounded-badge: 0.125rem; + --tab-radius: 0.125rem; + --animation-btn: 0; + --animation-input: 0; + --btn-focus-scale: 1; +} + +[data-theme=pastel] { + color-scheme: light; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --bc: 20% 0 0; + --pc: 16.6166% 0.006979 316.8737; + --sc: 17.6153% 0.009839 8.688364; + --ac: 17.8419% 0.012056 170.923263; + --nc: 14.2681% 0.014702 228.183906; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --p: 83.0828% 0.034896 316.8737; + --s: 88.0763% 0.049197 8.688364; + --a: 89.2096% 0.06028 170.923263; + --n: 71.3406% 0.07351 228.183906; + --b1: 100% 0 0; + --b2: 98.4625% 0.001706 247.838921; + --b3: 87.1681% 0.009339 258.338227; + --rounded-btn: 1.9rem; + --tab-radius: 0.7rem; +} + +[data-theme=fantasy] { + color-scheme: light; + --b2: 93% 0 0; + --b3: 86% 0 0; + --in: 72.06% 0.191 231.6; + --su: 64.8% 0.150 160; + --wa: 84.71% 0.199 83.87; + --er: 71.76% 0.221 22.18; + --pc: 87.49% 0.0378 325.02; + --sc: 90.784% 0.0324 241.36; + --ac: 15.196% 0.0408 56.72; + --nc: 85.5616% 0.005919 256.847952; + --inc: 0% 0 0; + --suc: 0% 0 0; + --wac: 0% 0 0; + --erc: 0% 0 0; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 37.45% 0.189 325.02; + --s: 53.92% 0.162 241.36; + --a: 75.98% 0.204 56.72; + --n: 27.8078% 0.029596 256.847952; + --b1: 100% 0 0; + --bc: 27.8078% 0.029596 256.847952; +} + +[data-theme=wireframe] { + color-scheme: light; + --bc: 20% 0 0; + --pc: 15.6521% 0 0; + --sc: 15.6521% 0 0; + --ac: 15.6521% 0 0; + --nc: 18.8014% 0 0; + --inc: 89.0403% 0.062643 264.052021; + --suc: 90.395% 0.035372 142.495339; + --wac: 14.1626% 0.019994 108.702381; + --erc: 12.5591% 0.051537 29.233885; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + font-family: Chalkboard,comic sans ms,'sans-serif'; + --p: 78.2604% 0 0; + --s: 78.2604% 0 0; + --a: 78.2604% 0 0; + --n: 94.007% 0 0; + --b1: 100% 0 0; + --b2: 94.9119% 0 0; + --b3: 89.7547% 0 0; + --in: 45.2014% 0.313214 264.052021; + --su: 51.9752% 0.176858 142.495339; + --wa: 70.8131% 0.099969 108.702381; + --er: 62.7955% 0.257683 29.233885; + --rounded-box: 0.2rem; + --rounded-btn: 0.2rem; + --rounded-badge: 0.2rem; + --tab-radius: 0.2rem; +} + +[data-theme=black] { + color-scheme: dark; + --pc: 86.736% 0 0; + --sc: 86.736% 0 0; + --ac: 86.736% 0 0; + --nc: 86.736% 0 0; + --inc: 89.0403% 0.062643 264.052021; + --suc: 90.395% 0.035372 142.495339; + --wac: 19.3597% 0.042201 109.769232; + --erc: 12.5591% 0.051537 29.233885; + --border-btn: 1px; + --tab-border: 1px; + --p: 33.6799% 0 0; + --s: 33.6799% 0 0; + --a: 33.6799% 0 0; + --b1: 0% 0 0; + --b2: 19.1251% 0 0; + --b3: 26.8618% 0 0; + --bc: 87.6096% 0 0; + --n: 33.6799% 0 0; + --in: 45.2014% 0.313214 264.052021; + --su: 51.9752% 0.176858 142.495339; + --wa: 96.7983% 0.211006 109.769232; + --er: 62.7955% 0.257683 29.233885; + --rounded-box: 0; + --rounded-btn: 0; + --rounded-badge: 0; + --animation-btn: 0; + --animation-input: 0; + --btn-focus-scale: 1; + --tab-radius: 0; +} + +[data-theme=luxury] { + color-scheme: dark; + --pc: 20% 0 0; + --sc: 85.5163% 0.012821 261.069149; + --ac: 87.3349% 0.010348 338.82597; + --inc: 15.8122% 0.024356 237.133883; + --suc: 15.6239% 0.038579 132.154381; + --wac: 17.2255% 0.027305 102.89115; + --erc: 14.3506% 0.035271 22.568916; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 100% 0 0; + --s: 27.5815% 0.064106 261.069149; + --a: 36.6744% 0.051741 338.82597; + --n: 24.27% 0.057015 59.825019; + --nc: 93.2033% 0.089631 90.861683; + --b1: 14.0765% 0.004386 285.822869; + --b2: 20.2191% 0.004211 308.22937; + --b3: 29.8961% 0.003818 308.318612; + --bc: 75.6879% 0.123666 76.890484; + --in: 79.0612% 0.121778 237.133883; + --su: 78.1197% 0.192894 132.154381; + --wa: 86.1274% 0.136524 102.89115; + --er: 71.7531% 0.176357 22.568916; +} + +[data-theme=dracula] { + color-scheme: dark; + --b2: 26.8053% 0.020556 277.508664; + --b3: 24.7877% 0.019009 277.508664; + --pc: 15.0922% 0.036614 346.812432; + --sc: 14.8405% 0.029709 301.883095; + --ac: 16.6785% 0.024826 66.558491; + --nc: 87.8891% 0.006515 275.524078; + --inc: 17.6526% 0.018676 212.846491; + --suc: 17.4199% 0.043903 148.024881; + --wac: 19.1068% 0.026849 112.757109; + --erc: 13.6441% 0.041266 24.430965; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 75.4611% 0.18307 346.812432; + --s: 74.2023% 0.148546 301.883095; + --a: 83.3927% 0.124132 66.558491; + --n: 39.4456% 0.032576 275.524078; + --b1: 28.8229% 0.022103 277.508664; + --bc: 97.7477% 0.007913 106.545019; + --in: 88.263% 0.09338 212.846491; + --su: 87.0995% 0.219516 148.024881; + --wa: 95.5338% 0.134246 112.757109; + --er: 68.2204% 0.206328 24.430965; +} + +[data-theme=cmyk] { + color-scheme: light; + --b2: 93% 0 0; + --b3: 86% 0 0; + --bc: 20% 0 0; + --pc: 14.3544% 0.02666 239.443325; + --sc: 12.8953% 0.040552 359.339283; + --ac: 18.8458% 0.037948 105.306968; + --nc: 84.3557% 0 0; + --inc: 13.6952% 0.0189 217.284104; + --suc: 89.3898% 0.032505 321.406278; + --wac: 14.2473% 0.031969 52.023412; + --erc: 12.4027% 0.041677 28.717543; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 71.7722% 0.133298 239.443325; + --s: 64.4766% 0.202758 359.339283; + --a: 94.2289% 0.189741 105.306968; + --n: 21.7787% 0 0; + --b1: 100% 0 0; + --in: 68.4759% 0.094499 217.284104; + --su: 46.949% 0.162524 321.406278; + --wa: 71.2364% 0.159843 52.023412; + --er: 62.0133% 0.208385 28.717543; +} + +[data-theme=autumn] { + color-scheme: light; + --b2: 89.1077% 0 0; + --b3: 82.4006% 0 0; + --bc: 19.1629% 0 0; + --pc: 88.1446% 0.032232 17.530175; + --sc: 12.3353% 0.033821 23.865865; + --ac: 14.6851% 0.018999 60.729616; + --nc: 90.8734% 0.007475 51.902819; + --inc: 13.8449% 0.019596 207.284192; + --suc: 12.199% 0.016032 174.616213; + --wac: 14.0163% 0.032982 56.844303; + --erc: 90.614% 0.0482 24.16; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 40.7232% 0.16116 17.530175; + --s: 61.6763% 0.169105 23.865865; + --a: 73.4253% 0.094994 60.729616; + --n: 54.3672% 0.037374 51.902819; + --b1: 95.8147% 0 0; + --in: 69.2245% 0.097979 207.284192; + --su: 60.9951% 0.080159 174.616213; + --wa: 70.0817% 0.164909 56.844303; + --er: 53.07% 0.241 24.16; +} + +[data-theme=business] { + color-scheme: dark; + --b2: 22.6487% 0 0; + --b3: 20.944% 0 0; + --bc: 84.8707% 0 0; + --pc: 88.3407% 0.019811 251.473931; + --sc: 12.8185% 0.005481 229.389418; + --ac: 13.4542% 0.033545 35.791525; + --nc: 85.4882% 0.00265 253.041249; + --inc: 12.5233% 0.028702 240.033697; + --suc: 14.0454% 0.018919 156.59611; + --wac: 15.4965% 0.023141 81.519177; + --erc: 90.3221% 0.029356 29.674507; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 41.7036% 0.099057 251.473931; + --s: 64.0924% 0.027405 229.389418; + --a: 67.271% 0.167726 35.791525; + --n: 27.441% 0.01325 253.041249; + --b1: 24.3535% 0 0; + --in: 62.6163% 0.143511 240.033697; + --su: 70.2268% 0.094594 156.59611; + --wa: 77.4824% 0.115704 81.519177; + --er: 51.6105% 0.14678 29.674507; + --rounded-box: 0.25rem; + --rounded-btn: .125rem; + --rounded-badge: .125rem; +} + +[data-theme=acid] { + color-scheme: light; + --b2: 91.6146% 0 0; + --b3: 84.7189% 0 0; + --bc: 19.7021% 0 0; + --pc: 14.38% 0.0714 330.759573; + --sc: 14.674% 0.0448 48.250878; + --ac: 18.556% 0.0528 122.962951; + --nc: 84.262% 0.0256 278.68; + --inc: 12.144% 0.0454 252.05; + --suc: 17.144% 0.0532 158.53; + --wac: 18.202% 0.0424 100.5; + --erc: 12.968% 0.0586 29.349188; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --p: 71.9% 0.357 330.759573; + --s: 73.37% 0.224 48.250878; + --a: 92.78% 0.264 122.962951; + --n: 21.31% 0.128 278.68; + --b1: 98.5104% 0 0; + --in: 60.72% 0.227 252.05; + --su: 85.72% 0.266 158.53; + --wa: 91.01% 0.212 100.5; + --er: 64.84% 0.293 29.349188; + --rounded-box: 1.25rem; + --rounded-btn: 1rem; + --rounded-badge: 1rem; + --tab-radius: 0.7rem; +} + +[data-theme=lemonade] { + color-scheme: light; + --b2: 91.8003% 0.0186 123.72; + --b3: 84.8906% 0.0172 123.72; + --bc: 19.742% 0.004 123.72; + --pc: 11.784% 0.0398 134.6; + --sc: 15.55% 0.0392 111.09; + --ac: 17.078% 0.0402 100.73; + --nc: 86.196% 0.015 108.6; + --inc: 17.238% 0.0094 224.14; + --suc: 17.238% 0.0094 157.85; + --wac: 17.238% 0.0094 102.15; + --erc: 17.238% 0.0094 25.85; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 58.92% 0.199 134.6; + --s: 77.75% 0.196 111.09; + --a: 85.39% 0.201 100.73; + --n: 30.98% 0.075 108.6; + --b1: 98.71% 0.02 123.72; + --in: 86.19% 0.047 224.14; + --su: 86.19% 0.047 157.85; + --wa: 86.19% 0.047 102.15; + --er: 86.19% 0.047 25.85; +} + +[data-theme=night] { + color-scheme: dark; + --b2: 19.3144% 0.037037 265.754874; + --b3: 17.8606% 0.034249 265.754874; + --bc: 84.1536% 0.007965 265.754874; + --pc: 15.0703% 0.027798 232.66148; + --sc: 13.6023% 0.031661 276.934902; + --ac: 14.4721% 0.035244 350.048739; + --nc: 85.5899% 0.00737 260.030984; + --suc: 15.6904% 0.026506 181.911977; + --wac: 16.6486% 0.027912 82.95003; + --erc: 14.3572% 0.034051 13.11834; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 75.3513% 0.138989 232.66148; + --s: 68.0113% 0.158303 276.934902; + --a: 72.3603% 0.176218 350.048739; + --n: 27.9495% 0.036848 260.030984; + --b1: 20.7682% 0.039824 265.754874; + --in: 68.4553% 0.148062 237.25135; + --inc: 0% 0 0; + --su: 78.452% 0.132529 181.911977; + --wa: 83.2428% 0.139558 82.95003; + --er: 71.7858% 0.170255 13.11834; +} + +[data-theme=coffee] { + color-scheme: dark; + --b2: 20.1585% 0.021457 329.708637; + --b3: 18.6412% 0.019842 329.708637; + --pc: 14.3993% 0.024765 62.756393; + --sc: 86.893% 0.00597 199.19444; + --ac: 88.5243% 0.014881 224.389184; + --nc: 83.3022% 0.003149 326.261446; + --inc: 15.898% 0.012774 184.558367; + --suc: 14.9445% 0.014491 131.116276; + --wac: 17.6301% 0.028162 87.722413; + --erc: 15.4637% 0.025644 31.871922; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 71.9967% 0.123825 62.756393; + --s: 34.465% 0.029849 199.19444; + --a: 42.6213% 0.074405 224.389184; + --n: 16.5109% 0.015743 326.261446; + --b1: 21.6758% 0.023072 329.708637; + --bc: 72.3547% 0.092794 79.129387; + --in: 79.4902% 0.063869 184.558367; + --su: 74.7224% 0.072456 131.116276; + --wa: 88.1503% 0.140812 87.722413; + --er: 77.3187% 0.12822 31.871922; +} + +[data-theme=winter] { + color-scheme: light; + --pc: 91.372% 0.051 257.57; + --sc: 88.5103% 0.03222 282.339433; + --ac: 11.988% 0.038303 335.171434; + --nc: 83.9233% 0.012704 257.651965; + --inc: 17.6255% 0.017178 214.515264; + --suc: 16.0988% 0.015404 197.823719; + --wac: 17.8345% 0.009167 71.47031; + --erc: 14.6185% 0.022037 20.076293; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 56.86% 0.255 257.57; + --s: 42.5516% 0.161098 282.339433; + --a: 59.9398% 0.191515 335.171434; + --n: 19.6166% 0.063518 257.651965; + --b1: 100% 0 0; + --b2: 97.4663% 0.011947 259.822565; + --b3: 93.2686% 0.016223 262.751375; + --bc: 41.8869% 0.053885 255.824911; + --in: 88.1275% 0.085888 214.515264; + --su: 80.4941% 0.077019 197.823719; + --wa: 89.1725% 0.045833 71.47031; + --er: 73.0926% 0.110185 20.076293; +} + +[data-theme=dim] { + color-scheme: dark; + --pc: 17.2267% 0.028331 139.549991; + --sc: 14.6752% 0.033181 35.353059; + --ac: 14.8459% 0.026728 311.37924; + --inc: 17.2157% 0.028409 206.182959; + --suc: 17.2343% 0.028437 166.534048; + --wac: 17.2327% 0.028447 94.818679; + --erc: 16.4838% 0.019914 33.756357; + --rounded-box: 1rem; + --rounded-btn: 0.5rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --tab-radius: 0.5rem; + --p: 86.1335% 0.141656 139.549991; + --s: 73.3759% 0.165904 35.353059; + --a: 74.2296% 0.133641 311.37924; + --n: 24.7311% 0.020483 264.094728; + --nc: 82.9011% 0.031335 222.959324; + --b1: 30.8577% 0.023243 264.149498; + --b2: 28.0368% 0.01983 264.182074; + --b3: 26.3469% 0.018403 262.177739; + --bc: 82.9011% 0.031335 222.959324; + --in: 86.0785% 0.142046 206.182959; + --su: 86.1717% 0.142187 166.534048; + --wa: 86.1634% 0.142236 94.818679; + --er: 82.4189% 0.09957 33.756357; +} + +[data-theme=nord] { + color-scheme: light; + --pc: 11.8872% 0.015449 254.027774; + --sc: 13.9303% 0.011822 248.687186; + --ac: 15.4929% 0.01245 217.469017; + --inc: 13.8414% 0.012499 332.664922; + --suc: 15.3654% 0.01498 131.063061; + --wac: 17.0972% 0.017847 84.093335; + --erc: 12.122% 0.024119 15.341883; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --p: 59.4359% 0.077246 254.027774; + --s: 69.6516% 0.059108 248.687186; + --a: 77.4643% 0.062249 217.469017; + --n: 45.229% 0.035214 264.1312; + --nc: 89.9258% 0.016374 262.749256; + --b1: 95.1276% 0.007445 260.731539; + --b2: 93.2996% 0.010389 261.788485; + --b3: 89.9258% 0.016374 262.749256; + --bc: 32.4374% 0.022945 264.182036; + --in: 69.2072% 0.062496 332.664922; + --su: 76.827% 0.074899 131.063061; + --wa: 85.4862% 0.089234 84.093335; + --er: 60.61% 0.120594 15.341883; + --rounded-box: 0.4rem; + --rounded-btn: 0.2rem; + --rounded-badge: 0.4rem; + --tab-radius: 0.2rem; +} + +[data-theme=sunset] { + color-scheme: dark; + --pc: 14.9408% 0.031656 39.94703; + --sc: 14.5075% 0.035531 2.72034; + --ac: 14.2589% 0.033336 299.844533; + --inc: 17.1119% 0.017054 206.015183; + --suc: 17.1122% 0.017172 144.77874; + --wac: 17.1139% 0.016961 74.427797; + --erc: 17.1023% 0.015778 16.886379; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --tab-border: 1px; + --p: 74.7039% 0.158278 39.94703; + --s: 72.5375% 0.177654 2.72034; + --a: 71.2947% 0.166678 299.844533; + --n: 26% 0.019 237.69; + --nc: 70% 0.019 237.69; + --b1: 22% 0.019 237.69; + --b2: 20% 0.019 237.69; + --b3: 18% 0.019 237.69; + --bc: 77.3835% 0.043586 245.096534; + --in: 85.5596% 0.085271 206.015183; + --su: 85.5609% 0.08586 144.77874; + --wa: 85.5695% 0.084806 74.427797; + --er: 85.5116% 0.07889 16.886379; + --rounded-box: 1.2rem; + --rounded-btn: 0.8rem; + --rounded-badge: 0.4rem; + --tab-radius: 0.7rem; +} + +[data-theme=opensigncss] { + --p: 29.4653% 0.114548 259.060129; + --rounded-box: 1rem; + --rounded-badge: 1.9rem; + --animation-btn: 0.25s; + --animation-input: .2s; + --btn-focus-scale: 0.95; + --border-btn: 1px; + --pc: 84.4531% 0.004702 258.326791; + --s: 32.7837% 0.040885 261.34687; + --sc: 85.8339% 0.023006 260.719442; + --a: 57.4438% 0.231491 22.179909; + --ac: 91.4247% 0.043935 23.179579; + --n: 84.1373% 0.024157 256.1141; + --nc: 18.4081% 0.003758 164.597654; + --b1: 100% 0 0; + --b2: 90.0601% 0 0; + --b3: 80.1517% 0 0; + --bc: 20.0193% 0 0; + --in: 73.4592% 0.158874 236.357514; + --inc: 96.9871% 0.001324 106.423821; + --su: 64.8159% 0.147405 159.672666; + --suc: 96.9871% 0.001324 106.423821; + --wa: 83.8398% 0.172209 83.573967; + --wac: 88.0005% 0.02504 251.91698; + --er: 80.4902% 0.112017 15.727522; + --erc: 15.997% 0.023284 14.898517; + --rounded-btn: 1.9rem; + --tab-border: 2px; + --tab-radius: 0.7rem; +} + +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; +} +.container { + width: 100%; +} +@media (min-width: 640px) { + + .container { + max-width: 640px; + } +} +@media (min-width: 768px) { + + .container { + max-width: 768px; + } +} +@media (min-width: 1024px) { + + .container { + max-width: 1024px; + } +} +@media (min-width: 1280px) { + + .container { + max-width: 1280px; + } +} +@media (min-width: 1536px) { + + .container { + max-width: 1536px; + } +} +.op-alert { + display: grid; + width: 100%; + grid-auto-flow: row; + align-content: flex-start; + align-items: center; + justify-items: center; + gap: 1rem; + text-align: center; + border-radius: var(--rounded-box, 1rem); + border-width: 1px; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + padding: 1rem; + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --alert-bg: var(--fallback-b2,oklch(var(--b2)/1)); + --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1)); + background-color: var(--alert-bg); +} +@media (min-width: 640px) { + + .op-alert { + grid-auto-flow: column; + grid-template-columns: auto minmax(auto,1fr); + justify-items: start; + text-align: start; + } +} +.op-badge { + display: inline-flex; + align-items: center; + justify-content: center; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; + height: 1.25rem; + font-size: 0.875rem; + line-height: 1.25rem; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + padding-left: 0.563rem; + padding-right: 0.563rem; + border-radius: var(--rounded-badge, 1.9rem); + border-width: 1px; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); +} +@media (hover:hover) { + + .op-menu li > *:not(ul, .op-menu-title, details, .op-btn):active, +.op-menu li > *:not(ul, .op-menu-title, details, .op-btn).op-active, +.op-menu li > details > summary:active { + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); + } + + .op-tab:hover { + --tw-text-opacity: 1; + } + + .op-tabs-boxed :is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]):hover, .op-tabs-boxed :is(input:checked):hover { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + } + + .op-table tr.op-hover:hover, + .op-table tr.op-hover:nth-child(even):hover { + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + } +} +.op-btn { + display: inline-flex; + height: 3rem; + min-height: 3rem; + flex-shrink: 0; + cursor: pointer; + -webkit-user-select: none; + user-select: none; + flex-wrap: wrap; + align-items: center; + justify-content: center; + border-radius: var(--rounded-btn, 0.5rem); + border-color: transparent; + border-color: oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity)); + padding-left: 1rem; + padding-right: 1rem; + text-align: center; + font-size: 0.875rem; + line-height: 1em; + gap: 0.5rem; + font-weight: 600; + text-decoration-line: none; + transition-duration: 200ms; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + border-width: var(--border-btn, 1px); + transition-property: color, background-color, border-color, opacity, box-shadow, transform; + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + outline-color: var(--fallback-bc,oklch(var(--bc)/1)); + background-color: oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity)); + --tw-bg-opacity: 1; + --tw-border-opacity: 1; +} +.op-btn-disabled, + .op-btn[disabled], + .op-btn:disabled { + pointer-events: none; +} +.op-btn-square { + height: 3rem; + width: 3rem; + padding: 0px; +} +.op-btn-circle { + height: 3rem; + width: 3rem; + border-radius: 9999px; + padding: 0px; +} +:where(.op-btn:is(input[type="checkbox"])), +:where(.op-btn:is(input[type="radio"])) { + width: auto; + -webkit-appearance: none; + appearance: none; +} +.op-btn:is(input[type="checkbox"]):after, +.op-btn:is(input[type="radio"]):after { + --tw-content: attr(aria-label); + content: var(--tw-content); +} +.op-card { + position: relative; + display: flex; + flex-direction: column; + border-radius: var(--rounded-box, 1rem); +} +.op-card:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} +.op-card-body { + display: flex; + flex: 1 1 auto; + flex-direction: column; + padding: var(--padding-card, 2rem); + gap: 0.5rem; +} +.op-card-body :where(p) { + flex-grow: 1; +} +.op-card-actions { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + gap: 0.5rem; +} +.op-card figure { + display: flex; + align-items: center; + justify-content: center; +} +.op-card.op-image-full { + display: grid; +} +.op-card.op-image-full:before { + position: relative; + content: ""; + z-index: 10; + border-radius: var(--rounded-box, 1rem); + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + opacity: 0.75; +} +.op-card.op-image-full:before, + .op-card.op-image-full > * { + grid-column-start: 1; + grid-row-start: 1; +} +.op-card.op-image-full > figure img { + height: 100%; + object-fit: cover; +} +.op-card.op-image-full > .op-card-body { + position: relative; + z-index: 20; + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); +} +.op-checkbox { + flex-shrink: 0; + --chkbg: var(--fallback-bc,oklch(var(--bc)/1)); + --chkfg: var(--fallback-b1,oklch(var(--b1)/1)); + height: 1.5rem; + width: 1.5rem; + cursor: pointer; + -webkit-appearance: none; + appearance: none; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-border-opacity: 0.2; +} +.op-divider { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; + margin-top: 1rem; + margin-bottom: 1rem; + height: 1rem; + white-space: nowrap; +} +.op-divider:before, + .op-divider:after { + height: 0.125rem; + width: 100%; + flex-grow: 1; + --tw-content: ''; + content: var(--tw-content); + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); +} +.op-dropdown { + position: relative; + display: inline-block; +} +.op-dropdown > *:not(summary):focus { + outline: 2px solid transparent; + outline-offset: 2px; +} +.op-dropdown .op-dropdown-content { + position: absolute; +} +.op-dropdown:is(:not(details)) .op-dropdown-content { + visibility: hidden; + opacity: 0; + transform-origin: top; + --tw-scale-x: .95; + --tw-scale-y: .95; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; +} +.op-dropdown-end .op-dropdown-content { + inset-inline-end: 0px; +} +.op-dropdown-left .op-dropdown-content { + bottom: auto; + inset-inline-end: 100%; + top: 0px; + transform-origin: right; +} +.op-dropdown-right .op-dropdown-content { + bottom: auto; + inset-inline-start: 100%; + top: 0px; + transform-origin: left; +} +.op-dropdown-bottom .op-dropdown-content { + bottom: auto; + top: 100%; + transform-origin: top; +} +.op-dropdown-top .op-dropdown-content { + bottom: 100%; + top: auto; + transform-origin: bottom; +} +.op-dropdown-end.op-dropdown-right .op-dropdown-content { + bottom: 0px; + top: auto; +} +.op-dropdown-end.op-dropdown-left .op-dropdown-content { + bottom: 0px; + top: auto; +} +.op-dropdown.op-dropdown-open .op-dropdown-content, +.op-dropdown:not(.op-dropdown-hover):focus .op-dropdown-content, +.op-dropdown:focus-within .op-dropdown-content { + visibility: visible; + opacity: 1; +} +@media (hover: hover) { + + .op-dropdown.op-dropdown-hover:hover .op-dropdown-content { + visibility: visible; + opacity: 1; + } + + .op-btn:hover { + --tw-border-opacity: 1; + border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + + .op-btn:hover { + background-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%, + black + ); + border-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%, + black + ); + } + } + + @supports not (color: oklch(0% 0 0)) { + + .op-btn:hover { + background-color: var(--btn-color, var(--fallback-b2)); + border-color: var(--btn-color, var(--fallback-b2)); + } + } + + .op-btn.op-glass:hover { + --glass-opacity: 25%; + --glass-border-opacity: 15%; + } + + .op-btn-ghost:hover { + border-color: transparent; + } + + @supports (color: oklch(0% 0 0)) { + + .op-btn-ghost:hover { + background-color: var(--fallback-bc,oklch(var(--bc)/0.2)); + } + } + + .op-btn-outline:hover { + --tw-border-opacity: 1; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-b1,oklch(var(--b1)/var(--tw-text-opacity))); + } + + .op-btn-outline.op-btn-primary:hover { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + + .op-btn-outline.op-btn-primary:hover { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + } + + .op-btn-outline.op-btn-secondary:hover { + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + + .op-btn-outline.op-btn-secondary:hover { + background-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + } + } + + .op-btn-outline.op-btn-accent:hover { + --tw-text-opacity: 1; + color: var(--fallback-ac,oklch(var(--ac)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + + .op-btn-outline.op-btn-accent:hover { + background-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); + } + } + + .op-btn-outline.op-btn-success:hover { + --tw-text-opacity: 1; + color: var(--fallback-suc,oklch(var(--suc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + + .op-btn-outline.op-btn-success:hover { + background-color: color-mix(in oklab, var(--fallback-su,oklch(var(--su)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-su,oklch(var(--su)/1)) 90%, black); + } + } + + .op-btn-outline.op-btn-info:hover { + --tw-text-opacity: 1; + color: var(--fallback-inc,oklch(var(--inc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + + .op-btn-outline.op-btn-info:hover { + background-color: color-mix(in oklab, var(--fallback-in,oklch(var(--in)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-in,oklch(var(--in)/1)) 90%, black); + } + } + + .op-btn-outline.op-btn-warning:hover { + --tw-text-opacity: 1; + color: var(--fallback-wac,oklch(var(--wac)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + + .op-btn-outline.op-btn-warning:hover { + background-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black); + } + } + + .op-btn-outline.op-btn-error:hover { + --tw-text-opacity: 1; + color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + + .op-btn-outline.op-btn-error:hover { + background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black); + } + } + + .op-btn-disabled:hover, + .op-btn[disabled]:hover, + .op-btn:disabled:hover { + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.2; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; + } + + @supports (color: color-mix(in oklab, black, black)) { + + .op-btn:is(input[type="checkbox"]:checked):hover, .op-btn:is(input[type="radio"]:checked):hover { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + } + + .op-dropdown.op-dropdown-hover:hover .op-dropdown-content { + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + } + + :where(.op-menu li:not(.op-menu-title, .op-disabled) > *:not(ul, details, .op-menu-title)):not(.op-active, .op-btn):hover, :where(.op-menu li:not(.op-menu-title, .op-disabled) > details > summary:not(.op-menu-title)):not(.op-active, .op-btn):hover { + cursor: pointer; + outline: 2px solid transparent; + outline-offset: 2px; + } + + @supports (color: oklch(0% 0 0)) { + + :where(.op-menu li:not(.op-menu-title, .op-disabled) > *:not(ul, details, .op-menu-title)):not(.op-active, .op-btn):hover, :where(.op-menu li:not(.op-menu-title, .op-disabled) > details > summary:not(.op-menu-title)):not(.op-active, .op-btn):hover { + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + } + } + + .op-tab[disabled], + .op-tab[disabled]:hover { + cursor: not-allowed; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; + } +} +.op-dropdown:is(details) summary::-webkit-details-marker { + display: none; +} +.op-file-input { + height: 3rem; + flex-shrink: 1; + padding-inline-end: 1rem; + font-size: 1rem; + line-height: 2; + line-height: 1.5rem; + overflow: hidden; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-border-opacity: 0; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} +.op-file-input::-webkit-file-upload-button { + margin-inline-end: 1rem; + display: inline-flex; + height: 100%; + flex-shrink: 0; + cursor: pointer; + -webkit-user-select: none; + user-select: none; + flex-wrap: wrap; + align-items: center; + justify-content: center; + padding-left: 1rem; + padding-right: 1rem; + text-align: center; + font-size: 0.875rem; + line-height: 1.25rem; + line-height: 1em; + -webkit-transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; + border-style: solid; + --tw-border-opacity: 1; + border-color: var(--fallback-n,oklch(var(--n)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + font-weight: 600; + text-transform: uppercase; + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); + text-decoration-line: none; + border-width: var(--border-btn, 1px); + animation: button-pop var(--animation-btn, 0.25s) ease-out; +} +.op-file-input::file-selector-button { + margin-inline-end: 1rem; + display: inline-flex; + height: 100%; + flex-shrink: 0; + cursor: pointer; + -webkit-user-select: none; + user-select: none; + flex-wrap: wrap; + align-items: center; + justify-content: center; + padding-left: 1rem; + padding-right: 1rem; + text-align: center; + font-size: 0.875rem; + line-height: 1.25rem; + line-height: 1em; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; + border-style: solid; + --tw-border-opacity: 1; + border-color: var(--fallback-n,oklch(var(--n)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + font-weight: 600; + text-transform: uppercase; + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); + text-decoration-line: none; + border-width: var(--border-btn, 1px); + animation: button-pop var(--animation-btn, 0.25s) ease-out; +} +.op-footer { + display: grid; + width: 100%; + grid-auto-flow: row; + place-items: start; + column-gap: 1rem; + row-gap: 2.5rem; + font-size: 0.875rem; + line-height: 1.25rem; +} +.op-footer > * { + display: grid; + place-items: start; + gap: 0.5rem; +} +.op-footer-center { + place-items: center; + text-align: center; +} +.op-footer-center > * { + place-items: center; +} +@media (min-width: 48rem) { + + .op-footer { + grid-auto-flow: column; + } + + .op-footer-center { + grid-auto-flow: row dense; + } +} +.op-input { + flex-shrink: 1; + -webkit-appearance: none; + appearance: none; + height: 3rem; + padding-left: 1rem; + padding-right: 1rem; + font-size: 1rem; + line-height: 2; + line-height: 1.5rem; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: transparent; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} +.op-input[type="number"]::-webkit-inner-spin-button, +.op-input-md[type="number"]::-webkit-inner-spin-button { + margin-top: -1rem; + margin-bottom: -1rem; + margin-inline-end: -1rem; +} +.op-input-xs[type="number"]::-webkit-inner-spin-button { + margin-top: -0.25rem; + margin-bottom: -0.25rem; + margin-inline-end: -0px; +} +.op-input-sm[type="number"]::-webkit-inner-spin-button { + margin-top: 0px; + margin-bottom: 0px; + margin-inline-end: -0px; +} +.op-join { + display: inline-flex; + align-items: stretch; + border-radius: var(--rounded-btn, 0.5rem); +} +.op-join :where(.op-join-item) { + border-start-end-radius: 0; + border-end-end-radius: 0; + border-end-start-radius: 0; + border-start-start-radius: 0; +} +.op-join .op-join-item:not(:first-child):not(:last-child), + .op-join *:not(:first-child):not(:last-child) .op-join-item { + border-start-end-radius: 0; + border-end-end-radius: 0; + border-end-start-radius: 0; + border-start-start-radius: 0; +} +.op-join .op-join-item:first-child:not(:last-child), + .op-join *:first-child:not(:last-child) .op-join-item { + border-start-end-radius: 0; + border-end-end-radius: 0; +} +.op-join .op-dropdown .op-join-item:first-child:not(:last-child), + .op-join *:first-child:not(:last-child) .op-dropdown .op-join-item { + border-start-end-radius: inherit; + border-end-end-radius: inherit; +} +.op-join :where(.op-join-item:first-child:not(:last-child)), + .op-join :where(*:first-child:not(:last-child) .op-join-item) { + border-end-start-radius: inherit; + border-start-start-radius: inherit; +} +.op-join .op-join-item:last-child:not(:first-child), + .op-join *:last-child:not(:first-child) .op-join-item { + border-end-start-radius: 0; + border-start-start-radius: 0; +} +.op-join :where(.op-join-item:last-child:not(:first-child)), + .op-join :where(*:last-child:not(:first-child) .op-join-item) { + border-start-end-radius: inherit; + border-end-end-radius: inherit; +} +@supports not selector(:has(*)) { + + :where(.op-join *) { + border-radius: inherit; + } +} +@supports selector(:has(*)) { + + :where(.op-join *:has(.op-join-item)) { + border-radius: inherit; + } +} +.op-link { + cursor: pointer; + text-decoration-line: underline; +} +.op-menu { + display: flex; + flex-direction: column; + flex-wrap: wrap; + font-size: 0.875rem; + line-height: 1.25rem; + padding: 0.5rem; +} +.op-menu :where(li ul) { + position: relative; + white-space: nowrap; + margin-inline-start: 1rem; + padding-inline-start: 0.5rem; +} +.op-menu :where(li:not(.op-menu-title) > *:not(ul, details, .op-menu-title, .op-btn)), .op-menu :where(li:not(.op-menu-title) > details > summary:not(.op-menu-title)) { + display: grid; + grid-auto-flow: column; + align-content: flex-start; + align-items: center; + gap: 0.5rem; + grid-auto-columns: minmax(auto, -webkit-max-content) auto -webkit-max-content; + grid-auto-columns: minmax(auto, max-content) auto max-content; + -webkit-user-select: none; + user-select: none; +} +.op-menu li.op-disabled { + cursor: not-allowed; + -webkit-user-select: none; + user-select: none; + color: var(--fallback-bc,oklch(var(--bc)/0.3)); +} +.op-menu :where(li > .op-menu-dropdown:not(.op-menu-dropdown-show)) { + display: none; +} +:where(.op-menu li) { + position: relative; + display: flex; + flex-shrink: 0; + flex-direction: column; + flex-wrap: wrap; + align-items: stretch; +} +:where(.op-menu li) .op-badge { + justify-self: end; +} +.op-modal { + pointer-events: none; + position: fixed; + inset: 0px; + margin: 0px; + display: grid; + height: 100%; + max-height: none; + width: 100%; + max-width: none; + justify-items: center; + padding: 0px; + opacity: 0; + overscroll-behavior: contain; + z-index: 999; + background-color: transparent; + color: inherit; + transition-duration: 200ms; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-property: transform, opacity, visibility; + overflow-y: hidden; +} +:where(.op-modal) { + align-items: center; +} +.op-modal-box { + max-height: calc(100vh - 5em); + grid-column-start: 1; + grid-row-start: 1; + width: 91.666667%; + max-width: 32rem; + --tw-scale-x: .9; + --tw-scale-y: .9; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + border-bottom-right-radius: var(--rounded-box, 1rem); + border-bottom-left-radius: var(--rounded-box, 1rem); + border-top-left-radius: var(--rounded-box, 1rem); + border-top-right-radius: var(--rounded-box, 1rem); + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); + padding: 1.5rem; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; + box-shadow: rgba(0, 0, 0, 0.25) 0px 25px 50px -12px; + overflow-y: auto; + overscroll-behavior: contain; +} +.op-modal-open, +.op-modal:target, +.op-modal-toggle:checked + .op-modal, +.op-modal[open] { + pointer-events: auto; + visibility: visible; + opacity: 1; +} +.op-modal-action { + display: flex; + margin-top: 1.5rem; + justify-content: flex-end; +} +:root:has(:is(.op-modal-open, .op-modal:target, .op-modal-toggle:checked + .op-modal, .op-modal[open])) { + overflow: hidden; + scrollbar-gutter: stable; +} +.op-navbar { + display: flex; + align-items: center; + padding: var(--navbar-padding, 0.5rem); + min-height: 4rem; + width: 100%; +} +:where(.op-navbar > *:not(script, style)) { + display: inline-flex; + align-items: center; +} +.op-radio { + flex-shrink: 0; + --chkbg: var(--bc); + height: 1.5rem; + width: 1.5rem; + cursor: pointer; + -webkit-appearance: none; + appearance: none; + border-radius: 9999px; + border-width: 1px; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-border-opacity: 0.2; +} +.op-select { + display: inline-flex; + cursor: pointer; + -webkit-user-select: none; + user-select: none; + -webkit-appearance: none; + appearance: none; + height: 3rem; + min-height: 3rem; + padding-inline-start: 1rem; + padding-inline-end: 2.5rem; + font-size: 0.875rem; + line-height: 1.25rem; + line-height: 2; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: transparent; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); + background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), + linear-gradient(135deg, currentColor 50%, transparent 50%); + background-position: calc(100% - 20px) calc(1px + 50%), + calc(100% - 16.1px) calc(1px + 50%); + background-size: 4px 4px, + 4px 4px; + background-repeat: no-repeat; +} +.op-select[multiple] { + height: auto; +} +.op-tabs { + display: grid; + align-items: flex-end; +} +.op-tabs-lifted:has(.op-tab-content[class^="op-rounded-"]) + .op-tab:first-child:not(:is(.op-tab-active, [aria-selected="true"])), .op-tabs-lifted:has(.op-tab-content[class*=" op-rounded-"]) + .op-tab:first-child:not(:is(.op-tab-active, [aria-selected="true"])) { + border-bottom-color: transparent; +} +.op-tab { + position: relative; + grid-row-start: 1; + display: inline-flex; + height: 2rem; + cursor: pointer; + -webkit-user-select: none; + user-select: none; + -webkit-appearance: none; + appearance: none; + flex-wrap: wrap; + align-items: center; + justify-content: center; + text-align: center; + font-size: 0.875rem; + line-height: 1.25rem; + line-height: 2; + --tab-padding: 1rem; + --tw-text-opacity: 0.5; + --tab-color: var(--fallback-bc,oklch(var(--bc)/1)); + --tab-bg: var(--fallback-b1,oklch(var(--b1)/1)); + --tab-border-color: var(--fallback-b3,oklch(var(--b3)/1)); + color: var(--tab-color); + padding-inline-start: var(--tab-padding, 1rem); + padding-inline-end: var(--tab-padding, 1rem); +} +.op-tab:is(input[type="radio"]) { + width: auto; + border-bottom-right-radius: 0px; + border-bottom-left-radius: 0px; +} +.op-tab:is(input[type="radio"]):after { + --tw-content: attr(aria-label); + content: var(--tw-content); +} +.op-tab:not(input):empty { + cursor: default; + grid-column-start: span 9999; +} +:checked + .op-tab-content:nth-child(2), + :is(.op-tab-active, [aria-selected="true"]) + .op-tab-content:nth-child(2) { + border-start-start-radius: 0px; +} +input.op-tab:checked + .op-tab-content, +:is(.op-tab-active, [aria-selected="true"]) + .op-tab-content { + display: block; +} +.op-table { + position: relative; + width: 100%; + border-radius: var(--rounded-box, 1rem); + text-align: left; + font-size: 0.875rem; + line-height: 1.25rem; +} +.op-table :where(.op-table-pin-rows thead tr) { + position: -webkit-sticky; + position: sticky; + top: 0px; + z-index: 1; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} +.op-table :where(.op-table-pin-rows tfoot tr) { + position: -webkit-sticky; + position: sticky; + bottom: 0px; + z-index: 1; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} +.op-table :where(.op-table-pin-cols tr th) { + position: -webkit-sticky; + position: sticky; + left: 0px; + right: 0px; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} +.op-textarea { + min-height: 3rem; + flex-shrink: 1; + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + font-size: 0.875rem; + line-height: 1.25rem; + line-height: 2; + border-radius: var(--rounded-btn, 0.5rem); + border-width: 1px; + border-color: transparent; + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} +.op-toggle { + flex-shrink: 0; + --tglbg: var(--fallback-b1,oklch(var(--b1)/1)); + --handleoffset: 1.5rem; + --handleoffsetcalculator: calc(var(--handleoffset) * -1); + --togglehandleborder: 0 0; + height: 1.5rem; + width: 3rem; + cursor: pointer; + -webkit-appearance: none; + appearance: none; + border-radius: var(--rounded-badge, 1.9rem); + border-width: 1px; + border-color: currentColor; + background-color: currentColor; + color: var(--fallback-bc,oklch(var(--bc)/0.5)); + transition: background, + box-shadow var(--animation-input, 0.2s) ease-out; + box-shadow: var(--handleoffsetcalculator) 0 0 2px var(--tglbg) inset, + 0 0 0 2px var(--tglbg) inset, + var(--togglehandleborder); +} +.op-alert-info { + border-color: var(--fallback-in,oklch(var(--in)/0.2)); + --tw-text-opacity: 1; + color: var(--fallback-inc,oklch(var(--inc)/var(--tw-text-opacity))); + --alert-bg: var(--fallback-in,oklch(var(--in)/1)); + --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1)); +} +.op-alert-success { + border-color: var(--fallback-su,oklch(var(--su)/0.2)); + --tw-text-opacity: 1; + color: var(--fallback-suc,oklch(var(--suc)/var(--tw-text-opacity))); + --alert-bg: var(--fallback-su,oklch(var(--su)/1)); + --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1)); +} +.op-alert-warning { + border-color: var(--fallback-wa,oklch(var(--wa)/0.2)); + --tw-text-opacity: 1; + color: var(--fallback-wac,oklch(var(--wac)/var(--tw-text-opacity))); + --alert-bg: var(--fallback-wa,oklch(var(--wa)/1)); + --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1)); +} +.op-alert-error { + border-color: var(--fallback-er,oklch(var(--er)/0.2)); + --tw-text-opacity: 1; + color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity))); + --alert-bg: var(--fallback-er,oklch(var(--er)/1)); + --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1)); +} +.op-badge-primary { + --tw-border-opacity: 1; + border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} +.op-badge-outline.op-badge-primary { + --tw-text-opacity: 1; + color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity))); +} +@media (prefers-reduced-motion: no-preference) { + + .op-btn { + animation: button-pop var(--animation-btn, 0.25s) ease-out; + } +} +.op-btn:active:hover, + .op-btn:active:focus { + animation: button-pop 0s ease-out; + transform: scale(var(--btn-focus-scale, 0.97)); +} +@supports not (color: oklch(0% 0 0)) { + + .op-btn { + background-color: var(--btn-color, var(--fallback-b2)); + border-color: var(--btn-color, var(--fallback-b2)); + } + + .op-btn-primary { + --btn-color: var(--fallback-p); + } + + .op-btn-secondary { + --btn-color: var(--fallback-s); + } + + .op-btn-accent { + --btn-color: var(--fallback-a); + } + + .op-btn-neutral { + --btn-color: var(--fallback-n); + } + + .op-btn-info { + --btn-color: var(--fallback-in); + } + + .op-btn-error { + --btn-color: var(--fallback-er); + } +} +@supports (color: color-mix(in oklab, black, black)) { + + .op-btn-active { + background-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b3)) / var(--tw-bg-opacity, 1)) 90%, + black + ); + border-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b3)) / var(--tw-border-opacity, 1)) 90%, + black + ); + } + + .op-btn-outline.op-btn-primary.op-btn-active { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + + .op-btn-outline.op-btn-secondary.op-btn-active { + background-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + } + + .op-btn-outline.op-btn-accent.op-btn-active { + background-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-a,oklch(var(--a)/1)) 90%, black); + } + + .op-btn-outline.op-btn-success.op-btn-active { + background-color: color-mix(in oklab, var(--fallback-su,oklch(var(--su)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-su,oklch(var(--su)/1)) 90%, black); + } + + .op-btn-outline.op-btn-info.op-btn-active { + background-color: color-mix(in oklab, var(--fallback-in,oklch(var(--in)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-in,oklch(var(--in)/1)) 90%, black); + } + + .op-btn-outline.op-btn-warning.op-btn-active { + background-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black); + } + + .op-btn-outline.op-btn-error.op-btn-active { + background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black); + } +} +.op-btn:focus-visible { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; +} +.op-btn-primary { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + outline-color: var(--fallback-p,oklch(var(--p)/1)); +} +@supports (color: oklch(0% 0 0)) { + + .op-btn-primary { + --btn-color: var(--p); + } + + .op-btn-secondary { + --btn-color: var(--s); + } + + .op-btn-accent { + --btn-color: var(--a); + } + + .op-btn-neutral { + --btn-color: var(--n); + } + + .op-btn-info { + --btn-color: var(--in); + } + + .op-btn-error { + --btn-color: var(--er); + } +} +.op-btn-secondary { + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); + outline-color: var(--fallback-s,oklch(var(--s)/1)); +} +.op-btn-accent { + --tw-text-opacity: 1; + color: var(--fallback-ac,oklch(var(--ac)/var(--tw-text-opacity))); + outline-color: var(--fallback-a,oklch(var(--a)/1)); +} +.op-btn-neutral { + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); + outline-color: var(--fallback-n,oklch(var(--n)/1)); +} +.op-btn-info { + --tw-text-opacity: 1; + color: var(--fallback-inc,oklch(var(--inc)/var(--tw-text-opacity))); + outline-color: var(--fallback-in,oklch(var(--in)/1)); +} +.op-btn-error { + --tw-text-opacity: 1; + color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity))); + outline-color: var(--fallback-er,oklch(var(--er)/1)); +} +.op-btn.op-glass { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + outline-color: currentColor; +} +.op-btn.op-glass.op-btn-active { + --glass-opacity: 25%; + --glass-border-opacity: 15%; +} +.op-btn-ghost { + border-width: 1px; + border-color: transparent; + background-color: transparent; + color: currentColor; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + outline-color: currentColor; +} +.op-btn-ghost.op-btn-active { + border-color: transparent; + background-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} +.op-btn-link.op-btn-active { + border-color: transparent; + background-color: transparent; + text-decoration-line: underline; +} +.op-btn-outline { + border-color: currentColor; + background-color: transparent; + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.op-btn-outline.op-btn-active { + --tw-border-opacity: 1; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-b1,oklch(var(--b1)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-primary { + --tw-text-opacity: 1; + color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-primary.op-btn-active { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-secondary { + --tw-text-opacity: 1; + color: var(--fallback-s,oklch(var(--s)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-secondary.op-btn-active { + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-accent { + --tw-text-opacity: 1; + color: var(--fallback-a,oklch(var(--a)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-accent.op-btn-active { + --tw-text-opacity: 1; + color: var(--fallback-ac,oklch(var(--ac)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-success { + --tw-text-opacity: 1; + color: var(--fallback-su,oklch(var(--su)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-success.op-btn-active { + --tw-text-opacity: 1; + color: var(--fallback-suc,oklch(var(--suc)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-info { + --tw-text-opacity: 1; + color: var(--fallback-in,oklch(var(--in)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-info.op-btn-active { + --tw-text-opacity: 1; + color: var(--fallback-inc,oklch(var(--inc)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-warning { + --tw-text-opacity: 1; + color: var(--fallback-wa,oklch(var(--wa)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-warning.op-btn-active { + --tw-text-opacity: 1; + color: var(--fallback-wac,oklch(var(--wac)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-error { + --tw-text-opacity: 1; + color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity))); +} +.op-btn-outline.op-btn-error.op-btn-active { + --tw-text-opacity: 1; + color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity))); +} +.op-btn.op-btn-disabled, + .op-btn[disabled], + .op-btn:disabled { + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.2; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; +} +.op-btn:is(input[type="checkbox"]:checked), +.op-btn:is(input[type="radio"]:checked) { + --tw-border-opacity: 1; + border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} +.op-btn:is(input[type="checkbox"]:checked):focus-visible, .op-btn:is(input[type="radio"]:checked):focus-visible { + outline-color: var(--fallback-p,oklch(var(--p)/1)); +} +@keyframes button-pop { + + 0% { + transform: scale(var(--btn-focus-scale, 0.98)); + } + + 40% { + transform: scale(1.02); + } + + 100% { + transform: scale(1); + } +} +.op-card :where(figure:first-child) { + overflow: hidden; + border-start-start-radius: inherit; + border-start-end-radius: inherit; + border-end-start-radius: unset; + border-end-end-radius: unset; +} +.op-card :where(figure:last-child) { + overflow: hidden; + border-start-start-radius: unset; + border-start-end-radius: unset; + border-end-start-radius: inherit; + border-end-end-radius: inherit; +} +.op-card:focus-visible { + outline: 2px solid currentColor; + outline-offset: 2px; +} +.op-card.op-bordered { + border-width: 1px; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); +} +.op-card.op-compact .op-card-body { + padding: 1rem; + font-size: 0.875rem; + line-height: 1.25rem; +} +.op-card-title { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 1.25rem; + line-height: 1.75rem; + font-weight: 600; +} +.op-card.op-image-full :where(figure) { + overflow: hidden; + border-radius: inherit; +} +.op-checkbox:focus { + box-shadow: none; +} +.op-checkbox:focus-visible { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/1)); +} +.op-checkbox:disabled { + border-width: 0px; + cursor: not-allowed; + border-color: transparent; + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.2; +} +.op-checkbox:checked, + .op-checkbox[aria-checked="true"] { + background-repeat: no-repeat; + animation: checkmark var(--animation-input, 0.2s) ease-out; + background-color: var(--chkbg); + background-image: linear-gradient(-45deg, transparent 65%, var(--chkbg) 65.99%), + linear-gradient(45deg, transparent 75%, var(--chkbg) 75.99%), + linear-gradient(-45deg, var(--chkbg) 40%, transparent 40.99%), + linear-gradient( + 45deg, + var(--chkbg) 30%, + var(--chkfg) 30.99%, + var(--chkfg) 40%, + transparent 40.99% + ), + linear-gradient(-45deg, var(--chkfg) 50%, var(--chkbg) 50.99%); +} +.op-checkbox:indeterminate { + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + background-repeat: no-repeat; + animation: checkmark var(--animation-input, 0.2s) ease-out; + background-image: linear-gradient(90deg, transparent 80%, var(--chkbg) 80%), + linear-gradient(-90deg, transparent 80%, var(--chkbg) 80%), + linear-gradient(0deg, var(--chkbg) 43%, var(--chkfg) 43%, var(--chkfg) 57%, var(--chkbg) 57%); +} +@keyframes checkmark { + + 0% { + background-position-y: 5px; + } + + 50% { + background-position-y: -2px; + } + + 100% { + background-position-y: 0; + } +} +.op-divider:not(:empty) { + gap: 1rem; +} +.op-dropdown.op-dropdown-open .op-dropdown-content, +.op-dropdown:focus .op-dropdown-content, +.op-dropdown:focus-within .op-dropdown-content { + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.op-file-input-bordered { + --tw-border-opacity: 0.2; +} +.op-file-input:focus { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} +.op-file-input-disabled, + .op-file-input[disabled] { + cursor: not-allowed; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + --tw-text-opacity: 0.2; +} +.op-file-input-disabled::placeholder, + .op-file-input[disabled]::placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} +.op-file-input-disabled::-webkit-file-upload-button, .op-file-input[disabled]::-webkit-file-upload-button { + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.2; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; +} +.op-file-input-disabled::file-selector-button, .op-file-input[disabled]::file-selector-button { + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.2; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; +} +.op-input input { + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); + background-color: transparent; +} +.op-input input:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} +.op-input[list]::-webkit-calendar-picker-indicator { + line-height: 1em; +} +.op-input-bordered { + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} +.op-input:focus, + .op-input:focus-within { + box-shadow: none; + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} +.op-input:has(> input[disabled]), + .op-input-disabled, + .op-input:disabled, + .op-input[disabled] { + cursor: not-allowed; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + color: var(--fallback-bc,oklch(var(--bc)/0.4)); +} +.op-input:has(> input[disabled])::placeholder, + .op-input-disabled::placeholder, + .op-input:disabled::placeholder, + .op-input[disabled]::placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} +.op-input:has(> input[disabled]) > input[disabled] { + cursor: not-allowed; +} +.op-input::-webkit-date-and-time-value { + text-align: inherit; +} +.op-join > :where(*:not(:first-child)) { + margin-top: 0px; + margin-bottom: 0px; + margin-inline-start: -1px; +} +.op-join > :where(*:not(:first-child)):is(.op-btn) { + margin-inline-start: calc(var(--border-btn) * -1); +} +.op-join-item:focus { + isolation: isolate; +} +.op-link-primary { + --tw-text-opacity: 1; + color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity))); +} +@supports (color:color-mix(in oklab,black,black)) { + + @media (hover:hover) { + + .op-link-primary:hover { + color: color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 80%,black); + } + + .op-link-secondary:hover { + color: color-mix(in oklab,var(--fallback-s,oklch(var(--s)/1)) 80%,black); + } + + .op-link-accent:hover { + color: color-mix(in oklab,var(--fallback-a,oklch(var(--a)/1)) 80%,black); + } + } +} +.op-link-secondary { + --tw-text-opacity: 1; + color: var(--fallback-s,oklch(var(--s)/var(--tw-text-opacity))); +} +.op-link-accent { + --tw-text-opacity: 1; + color: var(--fallback-a,oklch(var(--a)/var(--tw-text-opacity))); +} +.op-link:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} +.op-link:focus-visible { + outline: 2px solid currentColor; + outline-offset: 2px; +} +.op-loading { + pointer-events: none; + display: inline-block; + aspect-ratio: 1 / 1; + width: 1.5rem; + background-color: currentColor; + -webkit-mask-size: 100%; + mask-size: 100%; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___}); + mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___}); +} +.op-loading-infinity { + -webkit-mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___}); + mask-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___}); +} +:where(.op-menu li:empty) { + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.1; + margin: 0.5rem 1rem; + height: 1px; +} +.op-menu :where(li ul):before { + position: absolute; + bottom: 0.75rem; + inset-inline-start: 0px; + top: 0.75rem; + width: 1px; + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.1; + content: ""; +} +.op-menu :where(li:not(.op-menu-title) > *:not(ul, details, .op-menu-title, .op-btn)), +.op-menu :where(li:not(.op-menu-title) > details > summary:not(.op-menu-title)) { + border-radius: var(--rounded-btn, 0.5rem); + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + text-align: start; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; + text-wrap: balance; +} +:where(.op-menu li:not(.op-menu-title, .op-disabled) > *:not(ul, details, .op-menu-title)):not(summary, .op-active, .op-btn).op-focus, :where(.op-menu li:not(.op-menu-title, .op-disabled) > *:not(ul, details, .op-menu-title)):not(summary, .op-active, .op-btn):focus, :where(.op-menu li:not(.op-menu-title, .op-disabled) > *:not(ul, details, .op-menu-title)):is(summary):not(.op-active, .op-btn):focus-visible, :where(.op-menu li:not(.op-menu-title, .op-disabled) > details > summary:not(.op-menu-title)):not(summary, .op-active, .op-btn).op-focus, :where(.op-menu li:not(.op-menu-title, .op-disabled) > details > summary:not(.op-menu-title)):not(summary, .op-active, .op-btn):focus, :where(.op-menu li:not(.op-menu-title, .op-disabled) > details > summary:not(.op-menu-title)):is(summary):not(.op-active, .op-btn):focus-visible { + cursor: pointer; + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + outline: 2px solid transparent; + outline-offset: 2px; +} +.op-menu li > *:not(ul, .op-menu-title, details, .op-btn):active, +.op-menu li > *:not(ul, .op-menu-title, details, .op-btn).op-active, +.op-menu li > details > summary:active { + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); +} +.op-menu :where(li > details > summary)::-webkit-details-marker { + display: none; +} +.op-menu :where(li > details > summary):after, +.op-menu :where(li > .op-menu-dropdown-toggle):after { + justify-self: end; + display: block; + margin-top: -0.5rem; + height: 0.5rem; + width: 0.5rem; + transform: rotate(45deg); + transition-property: transform, margin-top; + transition-duration: 0.3s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + content: ""; + transform-origin: 75% 75%; + box-shadow: 2px 2px; + pointer-events: none; +} +.op-menu :where(li > details[open] > summary):after, +.op-menu :where(li > .op-menu-dropdown-toggle.op-menu-dropdown-show):after { + transform: rotate(225deg); + margin-top: 0; +} +.op-mockup-browser .op-mockup-browser-toolbar .op-input { + position: relative; + margin-left: auto; + margin-right: auto; + display: block; + height: 1.75rem; + width: 24rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + padding-left: 2rem; + direction: ltr; +} +.op-mockup-browser .op-mockup-browser-toolbar .op-input:before { + content: ""; + position: absolute; + left: 0.5rem; + top: 50%; + aspect-ratio: 1 / 1; + height: 0.75rem; + --tw-translate-y: -50%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + border-radius: 9999px; + border-width: 2px; + border-color: currentColor; + opacity: 0.6; +} +.op-mockup-browser .op-mockup-browser-toolbar .op-input:after { + content: ""; + position: absolute; + left: 1.25rem; + top: 50%; + height: 0.5rem; + --tw-translate-y: 25%; + --tw-rotate: -45deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + border-radius: 9999px; + border-width: 1px; + border-color: currentColor; + opacity: 0.6; +} +.op-modal:not(dialog:not(.op-modal-open)), + .op-modal::backdrop { + background-color: #0006; + animation: modal-pop 0.2s ease-out; +} +.op-modal-open .op-modal-box, +.op-modal-toggle:checked + .op-modal .op-modal-box, +.op-modal:target .op-modal-box, +.op-modal[open] .op-modal-box { + --tw-translate-y: 0px; + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.op-modal-action > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.5rem * var(--tw-space-x-reverse)); + margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); +} +@keyframes modal-pop { + + 0% { + opacity: 0; + } +} +@keyframes progress-loading { + + 50% { + background-position-x: -115%; + } +} +.op-radio:focus { + box-shadow: none; +} +.op-radio:focus-visible { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/1)); +} +.op-radio:checked, + .op-radio[aria-checked="true"] { + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + background-image: none; + animation: radiomark var(--animation-input, 0.2s) ease-out; + box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset; +} +.op-radio:disabled { + cursor: not-allowed; + opacity: 0.2; +} +@keyframes radiomark { + + 0% { + box-shadow: 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset; + } + + 50% { + box-shadow: 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset; + } + + 100% { + box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset; + } +} +@keyframes rating-pop { + + 0% { + transform: translateY(-0.125em); + } + + 40% { + transform: translateY(-0.125em); + } + + 100% { + transform: translateY(0); + } +} +.op-select-bordered { + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} +.op-select:focus { + box-shadow: none; + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} +.op-select-disabled, + .op-select:disabled, + .op-select[disabled] { + cursor: not-allowed; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + color: var(--fallback-bc,oklch(var(--bc)/0.4)); +} +.op-select-disabled::placeholder, + .op-select:disabled::placeholder, + .op-select[disabled]::placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} +.op-select-multiple, + .op-select[multiple], + .op-select[size].op-select:not([size="1"]) { + background-image: none; + padding-right: 1rem; +} +[dir="rtl"] .op-select { + background-position: calc(0% + 12px) calc(1px + 50%), + calc(0% + 16px) calc(1px + 50%); +} +@keyframes skeleton { + + from { + background-position: 150%; + } + + to { + background-position: -50%; + } +} +.op-tabs-lifted > .op-tab:focus-visible { + border-end-end-radius: 0; + border-end-start-radius: 0; +} +.op-tab:is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]), .op-tab:is(input:checked) { + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-border-opacity: 1; + --tw-text-opacity: 1; +} +.op-tab:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} +.op-tab:focus-visible { + outline: 2px solid currentColor; + outline-offset: -5px; +} +.op-tab-disabled, + .op-tab[disabled] { + cursor: not-allowed; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; +} +.op-tabs-bordered > .op-tab { + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + --tw-border-opacity: 0.2; + border-style: solid; + border-bottom-width: calc(var(--tab-border, 1px) + 1px); +} +.op-tabs-lifted > .op-tab { + border: var(--tab-border, 1px) solid transparent; + border-width: 0 0 var(--tab-border, 1px) 0; + border-start-start-radius: var(--tab-radius, 0.5rem); + border-start-end-radius: var(--tab-radius, 0.5rem); + border-bottom-color: var(--tab-border-color); + padding-inline-start: var(--tab-padding, 1rem); + padding-inline-end: var(--tab-padding, 1rem); + padding-top: var(--tab-border, 1px); +} +.op-tabs-lifted > .op-tab:is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]), .op-tabs-lifted > .op-tab:is(input:checked) { + background-color: var(--tab-bg); + border-width: var(--tab-border, 1px) var(--tab-border, 1px) 0 var(--tab-border, 1px); + border-inline-start-color: var(--tab-border-color); + border-inline-end-color: var(--tab-border-color); + border-top-color: var(--tab-border-color); + padding-inline-start: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px)); + padding-inline-end: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px)); + padding-bottom: var(--tab-border, 1px); + padding-top: 0; +} +.op-tabs-lifted > .op-tab:is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]):before, .op-tabs-lifted > .op-tab:is(input:checked):before { + z-index: 1; + content: ""; + display: block; + position: absolute; + width: calc(100% + var(--tab-radius, 0.5rem) * 2); + height: var(--tab-radius, 0.5rem); + bottom: 0; + background-size: var(--tab-radius, 0.5rem); + background-position: top left, + top right; + background-repeat: no-repeat; + --tab-grad: calc(69% - var(--tab-border, 1px)); + --radius-start: radial-gradient( + circle at top left, + transparent var(--tab-grad), + var(--tab-border-color) calc(var(--tab-grad) + 0.25px), + var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)), + var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + 0.25px) + ); + --radius-end: radial-gradient( + circle at top right, + transparent var(--tab-grad), + var(--tab-border-color) calc(var(--tab-grad) + 0.25px), + var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)), + var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + 0.25px) + ); + background-image: var(--radius-start), var(--radius-end); +} +.op-tabs-lifted > .op-tab:is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]):first-child:before, .op-tabs-lifted > .op-tab:is(input:checked):first-child:before { + background-image: var(--radius-end); + background-position: top right; +} +[dir="rtl"] .op-tabs-lifted > .op-tab:is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]):first-child:before, [dir="rtl"] .op-tabs-lifted > .op-tab:is(input:checked):first-child:before { + background-image: var(--radius-start); + background-position: top left; +} +.op-tabs-lifted > .op-tab:is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]):last-child:before, .op-tabs-lifted > .op-tab:is(input:checked):last-child:before { + background-image: var(--radius-start); + background-position: top left; +} +[dir="rtl"] .op-tabs-lifted > .op-tab:is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]):last-child:before, [dir="rtl"] .op-tabs-lifted > .op-tab:is(input:checked):last-child:before { + background-image: var(--radius-end); + background-position: top right; +} +.op-tabs-lifted + > :is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]) + + .op-tabs-lifted + :is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]):before, .op-tabs-lifted > .op-tab:is(input:checked) + .op-tabs-lifted .op-tab:is(input:checked):before { + background-image: var(--radius-end); + background-position: top right; +} +.op-tabs-boxed { + border-radius: var(--rounded-btn, 0.5rem); + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + padding: 0.25rem; +} +.op-tabs-boxed .op-tab { + border-radius: var(--rounded-btn, 0.5rem); +} +.op-tabs-boxed :is(.op-tab-active, [aria-selected="true"]):not(.op-tab-disabled):not([disabled]), .op-tabs-boxed :is(input:checked) { + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} +.op-table:where([dir="rtl"], [dir="rtl"] *) { + text-align: right; +} +.op-table :where(th, td) { + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + vertical-align: middle; +} +.op-table tr.op-active, + .op-table tr.op-active:nth-child(even), + .op-table-zebra tbody tr:nth-child(even) { + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); +} +.op-table :where(thead tr, tbody tr:not(:last-child), tbody tr:first-child:last-child) { + border-bottom-width: 1px; + --tw-border-opacity: 1; + border-bottom-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); +} +.op-table :where(thead, tfoot) { + white-space: nowrap; + font-size: 0.75rem; + line-height: 1rem; + font-weight: 700; + color: var(--fallback-bc,oklch(var(--bc)/0.6)); +} +.op-table :where(tfoot) { + border-top-width: 1px; + --tw-border-opacity: 1; + border-top-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); +} +.op-textarea-bordered { + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} +.op-textarea:focus { + box-shadow: none; + border-color: var(--fallback-bc,oklch(var(--bc)/0.2)); + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} +.op-textarea-disabled, + .op-textarea:disabled, + .op-textarea[disabled] { + cursor: not-allowed; + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); + color: var(--fallback-bc,oklch(var(--bc)/0.4)); +} +.op-textarea-disabled::placeholder, + .op-textarea:disabled::placeholder, + .op-textarea[disabled]::placeholder { + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity))); + --tw-placeholder-opacity: 0.2; +} +@keyframes toast-pop { + + 0% { + transform: scale(0.9); + opacity: 0; + } + + 100% { + transform: scale(1); + opacity: 1; + } +} +[dir="rtl"] .op-toggle { + --handleoffsetcalculator: calc(var(--handleoffset) * 1); +} +.op-toggle:focus-visible { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; + outline-color: var(--fallback-bc,oklch(var(--bc)/0.2)); +} +.op-toggle:hover { + background-color: currentColor; +} +.op-toggle:checked, + .op-toggle[aria-checked="true"] { + background-image: none; + --handleoffsetcalculator: var(--handleoffset); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); +} +[dir="rtl"] .op-toggle:checked, [dir="rtl"] .op-toggle[aria-checked="true"] { + --handleoffsetcalculator: calc(var(--handleoffset) * -1); +} +.op-toggle:indeterminate { + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + box-shadow: calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset, + calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset, + 0 0 0 2px var(--tglbg) inset; +} +[dir="rtl"] .op-toggle:indeterminate { + box-shadow: calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset, + calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset, + 0 0 0 2px var(--tglbg) inset; +} +.op-toggle-secondary:focus-visible { + outline-color: var(--fallback-s,oklch(var(--s)/1)); +} +.op-toggle-secondary:checked, + .op-toggle-secondary[aria-checked="true"] { + border-color: var(--fallback-s,oklch(var(--s)/var(--tw-border-opacity))); + --tw-border-opacity: 0.1; + --tw-bg-opacity: 1; + background-color: var(--fallback-s,oklch(var(--s)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); +} +.op-toggle:disabled { + cursor: not-allowed; + --tw-border-opacity: 1; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); + background-color: transparent; + opacity: 0.3; + --togglehandleborder: 0 0 0 3px var(--fallback-bc,oklch(var(--bc)/1)) inset, + var(--handleoffsetcalculator) 0 0 3px var(--fallback-bc,oklch(var(--bc)/1)) inset; +} +.no-animation { + --btn-focus-scale: 1; + --animation-btn: 0; + --animation-input: 0; +} +.op-btn-xs { + height: 1.5rem; + min-height: 1.5rem; + padding-left: 0.5rem; + padding-right: 0.5rem; + font-size: 0.75rem; +} +.op-btn-sm { + height: 2rem; + min-height: 2rem; + padding-left: 0.75rem; + padding-right: 0.75rem; + font-size: 0.875rem; +} +.op-btn-square:where(.op-btn-xs) { + height: 1.5rem; + width: 1.5rem; + padding: 0px; +} +.op-btn-square:where(.op-btn-sm) { + height: 2rem; + width: 2rem; + padding: 0px; +} +.op-btn-square:where(.op-btn-md) { + height: 3rem; + width: 3rem; + padding: 0px; +} +.op-btn-square:where(.op-btn-lg) { + height: 4rem; + width: 4rem; + padding: 0px; +} +.op-btn-circle:where(.op-btn-xs) { + height: 1.5rem; + width: 1.5rem; + border-radius: 9999px; + padding: 0px; +} +.op-btn-circle:where(.op-btn-sm) { + height: 2rem; + width: 2rem; + border-radius: 9999px; + padding: 0px; +} +.op-btn-circle:where(.op-btn-md) { + height: 3rem; + width: 3rem; + border-radius: 9999px; + padding: 0px; +} +.op-btn-circle:where(.op-btn-lg) { + height: 4rem; + width: 4rem; + border-radius: 9999px; + padding: 0px; +} +[type="checkbox"].op-checkbox-xs { + height: 1rem; + width: 1rem; +} +[type="checkbox"].op-checkbox-sm { + height: 1.25rem; + width: 1.25rem; +} +.op-file-input-sm { + height: 2rem; + padding-inline-end: 0.75rem; + font-size: 0.875rem; + line-height: 1.25rem; + line-height: 2; +} +.op-file-input-sm::-webkit-file-upload-button { + margin-right: 0.75rem; + font-size: 0.875rem; +} +.op-file-input-sm::file-selector-button { + margin-right: 0.75rem; + font-size: 0.875rem; +} +.op-input-xs { + height: 1.5rem; + padding-left: 0.5rem; + padding-right: 0.5rem; + font-size: 0.75rem; + line-height: 1rem; + line-height: 1.625; +} +.op-input-sm { + height: 2rem; + padding-left: 0.75rem; + padding-right: 0.75rem; + font-size: 0.875rem; + line-height: 2rem; +} +.op-join.op-join-vertical { + flex-direction: column; +} +.op-join.op-join-vertical .op-join-item:first-child:not(:last-child), + .op-join.op-join-vertical *:first-child:not(:last-child) .op-join-item { + border-end-start-radius: 0; + border-end-end-radius: 0; + border-start-start-radius: inherit; + border-start-end-radius: inherit; +} +.op-join.op-join-vertical .op-join-item:last-child:not(:first-child), + .op-join.op-join-vertical *:last-child:not(:first-child) .op-join-item { + border-start-start-radius: 0; + border-start-end-radius: 0; + border-end-start-radius: inherit; + border-end-end-radius: inherit; +} +.op-join.op-join-horizontal { + flex-direction: row; +} +.op-join.op-join-horizontal .op-join-item:first-child:not(:last-child), + .op-join.op-join-horizontal *:first-child:not(:last-child) .op-join-item { + border-end-end-radius: 0; + border-start-end-radius: 0; + border-end-start-radius: inherit; + border-start-start-radius: inherit; +} +.op-join.op-join-horizontal .op-join-item:last-child:not(:first-child), + .op-join.op-join-horizontal *:last-child:not(:first-child) .op-join-item { + border-end-start-radius: 0; + border-start-start-radius: 0; + border-end-end-radius: inherit; + border-start-end-radius: inherit; +} +[type="radio"].op-radio-xs { + height: 1rem; + width: 1rem; +} +.op-select-sm { + height: 2rem; + min-height: 2rem; + padding-left: 0.75rem; + padding-right: 2rem; + font-size: 0.875rem; + line-height: 2rem; +} +[dir="rtl"] .op-select-sm { + padding-left: 2rem; + padding-right: 0.75rem; +} +.op-tabs-md :where(.op-tab) { + height: 2rem; + font-size: 0.875rem; + line-height: 1.25rem; + line-height: 2; + --tab-padding: 1rem; +} +.op-tabs-lg :where(.op-tab) { + height: 3rem; + font-size: 1.125rem; + line-height: 1.75rem; + line-height: 2; + --tab-padding: 1.25rem; +} +.op-tabs-sm :where(.op-tab) { + height: 1.5rem; + font-size: 0.875rem; + line-height: .75rem; + --tab-padding: 0.75rem; +} +.op-tabs-xs :where(.op-tab) { + height: 1.25rem; + font-size: 0.75rem; + line-height: .75rem; + --tab-padding: 0.5rem; +} +.op-card-compact .op-card-body { + padding: 1rem; + font-size: 0.875rem; + line-height: 1.25rem; +} +.op-card-compact .op-card-title { + margin-bottom: 0.25rem; +} +.op-card-normal .op-card-body { + padding: var(--padding-card, 2rem); + font-size: 1rem; + line-height: 1.5rem; +} +.op-card-normal .op-card-title { + margin-bottom: 0.75rem; +} +.op-join.op-join-vertical > :where(*:not(:first-child)) { + margin-left: 0px; + margin-right: 0px; + margin-top: -1px; +} +.op-join.op-join-vertical > :where(*:not(:first-child)):is(.op-btn) { + margin-top: calc(var(--border-btn) * -1); +} +.op-join.op-join-horizontal > :where(*:not(:first-child)) { + margin-top: 0px; + margin-bottom: 0px; + margin-inline-start: -1px; +} +.op-join.op-join-horizontal > :where(*:not(:first-child)):is(.op-btn) { + margin-inline-start: calc(var(--border-btn) * -1); +} +.op-menu-sm :where(li:not(.op-menu-title) > *:not(ul, details, .op-menu-title)), .op-menu-sm :where(li:not(.op-menu-title) > details > summary:not(.op-menu-title)) { + border-radius: var(--rounded-btn, 0.5rem); + padding-left: 0.75rem; + padding-right: 0.75rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + font-size: 0.875rem; + line-height: 1.25rem; +} +.op-menu-sm .op-menu-title { + padding-left: 0.75rem; + padding-right: 0.75rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.op-modal-top :where(.op-modal-box) { + width: 100%; + max-width: none; + --tw-translate-y: -2.5rem; + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + border-bottom-right-radius: var(--rounded-box, 1rem); + border-bottom-left-radius: var(--rounded-box, 1rem); + border-top-left-radius: 0px; + border-top-right-radius: 0px; +} +.op-modal-middle :where(.op-modal-box) { + width: 91.666667%; + max-width: 32rem; + --tw-translate-y: 0px; + --tw-scale-x: .9; + --tw-scale-y: .9; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + border-top-left-radius: var(--rounded-box, 1rem); + border-top-right-radius: var(--rounded-box, 1rem); + border-bottom-right-radius: var(--rounded-box, 1rem); + border-bottom-left-radius: var(--rounded-box, 1rem); +} +.op-modal-bottom :where(.op-modal-box) { + width: 100%; + max-width: none; + --tw-translate-y: 2.5rem; + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + border-top-left-radius: var(--rounded-box, 1rem); + border-top-right-radius: var(--rounded-box, 1rem); + border-bottom-right-radius: 0px; + border-bottom-left-radius: 0px; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} +.pointer-events-none { + pointer-events: none; +} +.visible { + visibility: visible; +} +.fixed { + position: fixed; +} +.absolute { + position: absolute; +} +.relative { + position: relative; +} +.sticky { + position: -webkit-sticky; + position: sticky; +} +.inset-0 { + inset: 0px; +} +.-bottom-\\[11px\\] { + bottom: -11px; +} +.-bottom-\\[1px\\] { + bottom: -1px; +} +.-right-\\[12px\\] { + right: -12px; +} +.-right-\\[13px\\] { + right: -13px; +} +.-right-\\[1px\\] { + right: -1px; +} +.bottom-0 { + bottom: 0px; +} +.bottom-4 { + bottom: 1rem; +} +.left-0 { + left: 0px; +} +.left-1\\/2 { + left: 50%; +} +.right-0 { + right: 0px; +} +.right-1 { + right: 0.25rem; +} +.right-14 { + right: 3.5rem; +} +.right-2 { + right: 0.5rem; +} +.right-3 { + right: 0.75rem; +} +.right-4 { + right: 1rem; +} +.right-5 { + right: 1.25rem; +} +.right-\\[10px\\] { + right: 10px; +} +.top-0 { + top: 0px; +} +.top-1 { + top: 0.25rem; +} +.top-2 { + top: 0.5rem; +} +.top-20 { + top: 5rem; +} +.top-3 { + top: 0.75rem; +} +.top-\\[1px\\] { + top: 1px; +} +.top-\\[2\\.55rem\\] { + top: 2.55rem; +} +.top-\\[50\\%\\] { + top: 50%; +} +.top-auto { + top: auto; +} +.-z-\\[1\\] { + z-index: -1; +} +.z-10 { + z-index: 10; +} +.z-20 { + z-index: 20; +} +.z-30 { + z-index: 30; +} +.z-40 { + z-index: 40; +} +.z-50 { + z-index: 50; +} +.z-\\[1000\\] { + z-index: 1000; +} +.z-\\[100\\] { + z-index: 100; +} +.z-\\[1300\\] { + z-index: 1300; +} +.z-\\[1999\\] { + z-index: 1999; +} +.z-\\[1\\] { + z-index: 1; +} +.z-\\[200\\] { + z-index: 200; +} +.z-\\[20\\] { + z-index: 20; +} +.z-\\[30\\] { + z-index: 30; +} +.z-\\[448\\] { + z-index: 448; +} +.z-\\[500\\] { + z-index: 500; +} +.z-\\[501\\] { + z-index: 501; +} +.z-\\[70\\] { + z-index: 70; +} +.z-\\[999\\] { + z-index: 999; +} +.z-\\[99\\] { + z-index: 99; +} +.order-last { + order: 9999; +} +.col-span-12 { + grid-column: span 12 / span 12; +} +.m-1 { + margin: 0.25rem; +} +.m-2 { + margin: 0.5rem; +} +.m-\\[10px\\] { + margin: 10px; +} +.m-\\[15px\\] { + margin: 15px; +} +.m-\\[20px\\] { + margin: 20px; +} +.m-\\[2px\\] { + margin: 2px; +} +.m-\\[4px\\] { + margin: 4px; +} +.mx-1 { + margin-left: 0.25rem; + margin-right: 0.25rem; +} +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} +.mx-3 { + margin-left: 0.75rem; + margin-right: 0.75rem; +} +.mx-4 { + margin-left: 1rem; + margin-right: 1rem; +} +.mx-\\[100px\\] { + margin-left: 100px; + margin-right: 100px; +} +.mx-\\[25\\%\\] { + margin-left: 25%; + margin-right: 25%; +} +.mx-\\[2px\\] { + margin-left: 2px; + margin-right: 2px; +} +.mx-\\[3px\\] { + margin-left: 3px; + margin-right: 3px; +} +.mx-\\[4px\\] { + margin-left: 4px; + margin-right: 4px; +} +.mx-\\[5px\\] { + margin-left: 5px; + margin-right: 5px; +} +.mx-auto { + margin-left: auto; + margin-right: auto; +} +.my-0 { + margin-top: 0px; + margin-bottom: 0px; +} +.my-0\\.5 { + margin-top: 0.125rem; + margin-bottom: 0.125rem; +} +.my-1 { + margin-top: 0.25rem; + margin-bottom: 0.25rem; +} +.my-2 { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} +.my-3 { + margin-top: 0.75rem; + margin-bottom: 0.75rem; +} +.my-4 { + margin-top: 1rem; + margin-bottom: 1rem; +} +.my-\\[15px\\] { + margin-top: 15px; + margin-bottom: 15px; +} +.my-\\[1px\\] { + margin-top: 1px; + margin-bottom: 1px; +} +.my-\\[20px\\] { + margin-top: 20px; + margin-bottom: 20px; +} +.my-\\[2px\\] { + margin-top: 2px; + margin-bottom: 2px; +} +.my-\\[5px\\] { + margin-top: 5px; + margin-bottom: 5px; +} +.mb-0 { + margin-bottom: 0px; +} +.mb-0\\.5 { + margin-bottom: 0.125rem; +} +.mb-1 { + margin-bottom: 0.25rem; +} +.mb-11 { + margin-bottom: 2.75rem; +} +.mb-2 { + margin-bottom: 0.5rem; +} +.mb-3 { + margin-bottom: 0.75rem; +} +.mb-4 { + margin-bottom: 1rem; +} +.mb-\\[0\\.35rem\\] { + margin-bottom: 0.35rem; +} +.mb-\\[0\\.5rem\\] { + margin-bottom: 0.5rem; +} +.mb-\\[0\\.75rem\\] { + margin-bottom: 0.75rem; +} +.mb-\\[10px\\] { + margin-bottom: 10px; +} +.mb-\\[15px\\] { + margin-bottom: 15px; +} +.mb-\\[16px\\] { + margin-bottom: 16px; +} +.mb-\\[2px\\] { + margin-bottom: 2px; +} +.mb-\\[5px\\] { + margin-bottom: 5px; +} +.ml-0 { + margin-left: 0px; +} +.ml-0\\.5 { + margin-left: 0.125rem; +} +.ml-1 { + margin-left: 0.25rem; +} +.ml-2 { + margin-left: 0.5rem; +} +.ml-3 { + margin-left: 0.75rem; +} +.ml-4 { + margin-left: 1rem; +} +.ml-\\[0\\.5rem\\] { + margin-left: 0.5rem; +} +.ml-\\[10px\\] { + margin-left: 10px; +} +.ml-\\[13px\\] { + margin-left: 13px; +} +.ml-\\[2px\\] { + margin-left: 2px; +} +.ml-\\[3px\\] { + margin-left: 3px; +} +.ml-\\[4px\\] { + margin-left: 4px; +} +.ml-\\[5px\\] { + margin-left: 5px; +} +.ml-\\[6px\\] { + margin-left: 6px; +} +.ml-\\[7px\\] { + margin-left: 7px; +} +.ml-\\[8px\\] { + margin-left: 8px; +} +.mr-1 { + margin-right: 0.25rem; +} +.mr-1\\.5 { + margin-right: 0.375rem; +} +.mr-2 { + margin-right: 0.5rem; +} +.mr-4 { + margin-right: 1rem; +} +.mr-\\[10px\\] { + margin-right: 10px; +} +.mr-\\[2px\\] { + margin-right: 2px; +} +.mr-\\[3px\\] { + margin-right: 3px; +} +.mr-\\[4px\\] { + margin-right: 4px; +} +.mr-\\[5px\\] { + margin-right: 5px; +} +.mr-\\[8px\\] { + margin-right: 8px; +} +.mt-0 { + margin-top: 0px; +} +.mt-1 { + margin-top: 0.25rem; +} +.mt-2 { + margin-top: 0.5rem; +} +.mt-2\\.5 { + margin-top: 0.625rem; +} +.mt-3 { + margin-top: 0.75rem; +} +.mt-4 { + margin-top: 1rem; +} +.mt-6 { + margin-top: 1.5rem; +} +.mt-\\[0\\.4rem\\] { + margin-top: 0.4rem; +} +.mt-\\[0\\.5rem\\] { + margin-top: 0.5rem; +} +.mt-\\[0\\.750rem\\] { + margin-top: 0.750rem; +} +.mt-\\[10px\\] { + margin-top: 10px; +} +.mt-\\[14px\\] { + margin-top: 14px; +} +.mt-\\[15px\\] { + margin-top: 15px; +} +.mt-\\[1rem\\] { + margin-top: 1rem; +} +.mt-\\[2px\\] { + margin-top: 2px; +} +.mt-\\[3px\\] { + margin-top: 3px; +} +.mt-\\[50px\\] { + margin-top: 50px; +} +.mt-\\[5px\\] { + margin-top: 5px; +} +.mt-\\[6px\\] { + margin-top: 6px; +} +.mt-\\[8px\\] { + margin-top: 8px; +} +.block { + display: block; +} +.inline-block { + display: inline-block; +} +.inline { + display: inline; +} +.flex { + display: flex; +} +.inline-flex { + display: inline-flex; +} +.table { + display: table; +} +.grid { + display: grid; +} +.contents { + display: contents; +} +.hidden { + display: none; +} +.h-2 { + height: 0.5rem; +} +.h-4 { + height: 1rem; +} +.h-5 { + height: 1.25rem; +} +.h-\\[0\\.5px\\] { + height: 0.5px; +} +.h-\\[1\\.4rem\\] { + height: 1.4rem; +} +.h-\\[1\\.7rem\\] { + height: 1.7rem; +} +.h-\\[100\\%\\] { + height: 100%; +} +.h-\\[100px\\] { + height: 100px; +} +.h-\\[100vh\\] { + height: 100vh; +} +.h-\\[111px\\] { + height: 111px; +} +.h-\\[120px\\] { + height: 120px; +} +.h-\\[140px\\] { + height: 140px; +} +.h-\\[14px\\] { + height: 14px; +} +.h-\\[150px\\] { + height: 150px; +} +.h-\\[15px\\] { + height: 15px; +} +.h-\\[19px\\] { + height: 19px; +} +.h-\\[1px\\] { + height: 1px; +} +.h-\\[200px\\] { + height: 200px; +} +.h-\\[20px\\] { + height: 20px; +} +.h-\\[250px\\] { + height: 250px; +} +.h-\\[25px\\] { + height: 25px; +} +.h-\\[26px\\] { + height: 26px; +} +.h-\\[300px\\] { + height: 300px; +} +.h-\\[30px\\] { + height: 30px; +} +.h-\\[317px\\] { + height: 317px; +} +.h-\\[32px\\] { + height: 32px; +} +.h-\\[35px\\] { + height: 35px; +} +.h-\\[38px\\] { + height: 38px; +} +.h-\\[40px\\] { + height: 40px; +} +.h-\\[500px\\] { + height: 500px; +} +.h-\\[50vh\\] { + height: 50vh; +} +.h-\\[60px\\] { + height: 60px; +} +.h-\\[66px\\] { + height: 66px; +} +.h-\\[75px\\] { + height: 75px; +} +.h-\\[90\\%\\] { + height: 90%; +} +.h-\\[95\\%\\] { + height: 95%; +} +.h-full { + height: 100%; +} +.h-screen { + height: 100vh; +} +.max-h-96 { + max-height: 24rem; +} +.max-h-\\[100px\\] { + max-height: 100px; +} +.max-h-\\[100vh\\] { + max-height: 100vh; +} +.max-h-\\[180px\\] { + max-height: 180px; +} +.max-h-\\[210px\\] { + max-height: 210px; +} +.max-h-\\[250px\\] { + max-height: 250px; +} +.max-h-\\[300px\\] { + max-height: 300px; +} +.max-h-\\[310px\\] { + max-height: 310px; +} +.max-h-\\[340px\\] { + max-height: 340px; +} +.max-h-\\[38px\\] { + max-height: 38px; +} +.max-h-\\[600px\\] { + max-height: 600px; +} +.max-h-full { + max-height: 100%; +} +.max-h-screen { + max-height: 100vh; +} +.min-h-max { + min-height: -webkit-max-content; + min-height: max-content; +} +.min-h-screen { + min-height: 100vh; +} +.w-0 { + width: 0px; +} +.w-4 { + width: 1rem; +} +.w-5 { + width: 1.25rem; +} +.w-52 { + width: 13rem; +} +.w-9 { + width: 2.25rem; +} +.w-\\[1\\.4rem\\] { + width: 1.4rem; +} +.w-\\[1\\.7rem\\] { + width: 1.7rem; +} +.w-\\[100px\\] { + width: 100px; +} +.w-\\[10px\\] { + width: 10px; +} +.w-\\[120px\\] { + width: 120px; +} +.w-\\[14px\\] { + width: 14px; +} +.w-\\[150px\\] { + width: 150px; +} +.w-\\[15px\\] { + width: 15px; +} +.w-\\[18\\%\\] { + width: 18%; +} +.w-\\[183px\\] { + width: 183px; +} +.w-\\[20\\%\\] { + width: 20%; +} +.w-\\[200px\\] { + width: 200px; +} +.w-\\[220px\\] { + width: 220px; +} +.w-\\[23\\%\\] { + width: 23%; +} +.w-\\[23px\\] { + width: 23px; +} +.w-\\[250px\\] { + width: 250px; +} +.w-\\[25px\\] { + width: 25px; +} +.w-\\[26px\\] { + width: 26px; +} +.w-\\[30\\%\\] { + width: 30%; +} +.w-\\[30px\\] { + width: 30px; +} +.w-\\[35px\\] { + width: 35px; +} +.w-\\[40px\\] { + width: 40px; +} +.w-\\[450px\\] { + width: 450px; +} +.w-\\[4rem\\] { + width: 4rem; +} +.w-\\[50px\\] { + width: 50px; +} +.w-\\[60\\%\\] { + width: 60%; +} +.w-\\[60px\\] { + width: 60px; +} +.w-\\[65px\\] { + width: 65px; +} +.w-\\[70\\%\\] { + width: 70%; +} +.w-\\[75\\%\\] { + width: 75%; +} +.w-\\[75px\\] { + width: 75px; +} +.w-\\[80\\%\\] { + width: 80%; +} +.w-\\[87\\%\\] { + width: 87%; +} +.w-\\[90\\%\\] { + width: 90%; +} +.w-\\[90px\\] { + width: 90px; +} +.w-\\[95\\%\\] { + width: 95%; +} +.w-auto { + width: auto; +} +.w-fit { + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; +} +.w-full { + width: 100%; +} +.w-max { + width: -webkit-max-content; + width: max-content; +} +.min-w-56 { + min-width: 14rem; +} +.min-w-\\[300px\\] { + min-width: 300px; +} +.min-w-\\[48px\\] { + min-width: 48px; +} +.min-w-\\[90\\%\\] { + min-width: 90%; +} +.max-w-56 { + max-width: 14rem; +} +.max-w-\\[200px\\] { + max-width: 200px; +} +.max-w-\\[250px\\] { + max-width: 250px; +} +.max-w-\\[270px\\] { + max-width: 270px; +} +.max-w-\\[350px\\] { + max-width: 350px; +} +.max-w-\\[450px\\] { + max-width: 450px; +} +.max-w-\\[500px\\] { + max-width: 500px; +} +.max-w-sm { + max-width: 24rem; +} +.flex-1 { + flex: 1 1 0%; +} +.flex-none { + flex: none; +} +.grow { + flex-grow: 1; +} +.border-collapse { + border-collapse: collapse; +} +.-translate-x-1\\/2 { + --tw-translate-x: -50%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.-translate-y-1\\/2 { + --tw-translate-y: -50%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.-translate-y-\\[50\\%\\] { + --tw-translate-y: -50%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.transform { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} +.cursor-\\[url\\(\\'data\\:image\\/png\\;base64\\2c iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8\\/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAASElEQVR4nGNgwAMkJSUbpKSkOvCpIaT5PxSTbogUQjMYMwxeIIXmVFIxA8UGDDyQGg0DnIDi6JKUlCxHMqCeZAOghjSAMD5FAKfeaURdUFxCAAAAAElFTkSuQmCC\\'\\)\\2c _pointer\\] { + cursor: url(${___CSS_LOADER_URL_REPLACEMENT_2___}), pointer; +} +.cursor-all-scroll { + cursor: all-scroll; +} +.cursor-crosshair { + cursor: crosshair; +} +.cursor-default { + cursor: default; +} +.cursor-pointer { + cursor: pointer; +} +.cursor-progress { + cursor: progress; +} +.select-none { + -webkit-user-select: none; + user-select: none; +} +.resize-none { + resize: none; +} +.resize { + resize: both; +} +.list-disc { + list-style-type: disc; +} +.list-none { + list-style-type: none; +} +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} +.grid-cols-12 { + grid-template-columns: repeat(12, minmax(0, 1fr)); +} +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} +.flex-row { + flex-direction: row; +} +.flex-col { + flex-direction: column; +} +.flex-wrap { + flex-wrap: wrap; +} +.items-start { + align-items: flex-start; +} +.items-center { + align-items: center; +} +.items-stretch { + align-items: stretch; +} +.justify-start { + justify-content: flex-start; +} +.justify-end { + justify-content: flex-end; +} +.justify-center { + justify-content: center; +} +.justify-between { + justify-content: space-between; +} +.justify-around { + justify-content: space-around; +} +.gap-0 { + gap: 0px; +} +.gap-0\\.5 { + gap: 0.125rem; +} +.gap-1 { + gap: 0.25rem; +} +.gap-2 { + gap: 0.5rem; +} +.gap-3 { + gap: 0.75rem; +} +.gap-4 { + gap: 1rem; +} +.gap-5 { + gap: 1.25rem; +} +.gap-8 { + gap: 2rem; +} +.gap-\\[10px\\] { + gap: 10px; +} +.gap-\\[5px\\] { + gap: 5px; +} +.gap-\\[8px\\] { + gap: 8px; +} +.gap-x-2 { + column-gap: 0.5rem; +} +.gap-x-4 { + column-gap: 1rem; +} +.gap-x-5 { + column-gap: 1.25rem; +} +.gap-x-\\[2px\\] { + column-gap: 2px; +} +.gap-x-\\[5px\\] { + column-gap: 5px; +} +.gap-y-1 { + row-gap: 0.25rem; +} +.gap-y-2 { + row-gap: 0.5rem; +} +.gap-y-3 { + row-gap: 0.75rem; +} +.gap-y-\\[2px\\] { + row-gap: 2px; +} +.place-self-center { + place-self: center; +} +.self-start { + align-self: flex-start; +} +.self-center { + align-self: center; +} +.overflow-auto { + overflow: auto; +} +.overflow-hidden { + overflow: hidden; +} +.overflow-x-auto { + overflow-x: auto; +} +.overflow-y-auto { + overflow-y: auto; +} +.overflow-x-scroll { + overflow-x: scroll; +} +.overflow-y-scroll { + overflow-y: scroll; +} +.text-ellipsis { + text-overflow: ellipsis; +} +.whitespace-nowrap { + white-space: nowrap; +} +.whitespace-pre-wrap { + white-space: pre-wrap; +} +.break-words { + overflow-wrap: break-word; +} +.break-all { + word-break: break-all; +} +.rounded { + border-radius: 0.25rem; +} +.rounded-\\[0\\.350rem\\] { + border-radius: 0.350rem; +} +.rounded-\\[2px\\] { + border-radius: 2px; +} +.rounded-box { + border-radius: var(--rounded-box, 1rem); +} +.rounded-full { + border-radius: 9999px; +} +.rounded-lg { + border-radius: 0.5rem; +} +.rounded-md { + border-radius: 0.375rem; +} +.rounded-none { + border-radius: 0px; +} +.rounded-sm { + border-radius: 0.125rem; +} +.rounded-xl { + border-radius: 0.75rem; +} +.rounded-r-none { + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; +} +.border { + border-width: 1px; +} +.border-2 { + border-width: 2px; +} +.border-\\[0\\.1px\\] { + border-width: 0.1px; +} +.border-\\[1\\.5px\\] { + border-width: 1.5px; +} +.border-\\[1px\\] { + border-width: 1px; +} +.border-\\[2px\\] { + border-width: 2px; +} +.border-y-\\[1px\\] { + border-top-width: 1px; + border-bottom-width: 1px; +} +.border-b-\\[1px\\] { + border-bottom-width: 1px; +} +.border-b-\\[3px\\] { + border-bottom-width: 3px; +} +.border-r-\\[3px\\] { + border-right-width: 3px; +} +.border-t-\\[1px\\] { + border-top-width: 1px; +} +.border-none { + border-style: none; +} +.border-\\[\\#007bff\\] { + --tw-border-opacity: 1; + border-color: rgb(0 123 255 / var(--tw-border-opacity)); +} +.border-\\[\\#188ae2\\] { + --tw-border-opacity: 1; + border-color: rgb(24 138 226 / var(--tw-border-opacity)); +} +.border-\\[\\#33bbff\\] { + --tw-border-opacity: 1; + border-color: rgb(51 187 255 / var(--tw-border-opacity)); +} +.border-\\[\\#878787\\] { + --tw-border-opacity: 1; + border-color: rgb(135 135 135 / var(--tw-border-opacity)); +} +.border-\\[\\#888\\] { + --tw-border-opacity: 1; + border-color: rgb(136 136 136 / var(--tw-border-opacity)); +} +.border-\\[\\#8a8a8a\\] { + --tw-border-opacity: 1; + border-color: rgb(138 138 138 / var(--tw-border-opacity)); +} +.border-\\[\\#cecece\\] { + --tw-border-opacity: 1; + border-color: rgb(206 206 206 / var(--tw-border-opacity)); +} +.border-\\[\\#d6d3d3\\] { + --tw-border-opacity: 1; + border-color: rgb(214 211 211 / var(--tw-border-opacity)); +} +.border-\\[\\#ebe8e8\\] { + --tw-border-opacity: 1; + border-color: rgb(235 232 232 / var(--tw-border-opacity)); +} +.border-\\[\\#f0a8a8\\] { + --tw-border-opacity: 1; + border-color: rgb(240 168 168 / var(--tw-border-opacity)); +} +.border-\\[gray\\] { + --tw-border-opacity: 1; + border-color: rgb(128 128 128 / var(--tw-border-opacity)); +} +.border-\\[red\\] { + --tw-border-opacity: 1; + border-color: rgb(255 0 0 / var(--tw-border-opacity)); +} +.border-base-200 { + --tw-border-opacity: 1; + border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity))); +} +.border-base-300 { + --tw-border-opacity: 1; + border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity))); +} +.border-base-content { + --tw-border-opacity: 1; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); +} +.border-black { + --tw-border-opacity: 1; + border-color: rgb(0 0 0 / var(--tw-border-opacity)); +} +.border-gray-200 { + --tw-border-opacity: 1; + border-color: rgb(229 231 235 / var(--tw-border-opacity)); +} +.border-gray-300 { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} +.border-gray-400 { + --tw-border-opacity: 1; + border-color: rgb(156 163 175 / var(--tw-border-opacity)); +} +.border-indigo-800 { + --tw-border-opacity: 1; + border-color: rgb(55 48 163 / var(--tw-border-opacity)); +} +.border-t-primary { + --tw-border-opacity: 1; + border-top-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); +} +.bg-\\[\\#2ed8b6\\] { + --tw-bg-opacity: 1; + background-color: rgb(46 216 182 / var(--tw-bg-opacity)); +} +.bg-\\[\\#576081\\] { + --tw-bg-opacity: 1; + background-color: rgb(87 96 129 / var(--tw-bg-opacity)); +} +.bg-\\[\\#8a8a8a\\] { + --tw-bg-opacity: 1; + background-color: rgb(138 138 138 / var(--tw-bg-opacity)); +} +.bg-\\[\\#93a3db\\] { + --tw-bg-opacity: 1; + background-color: rgb(147 163 219 / var(--tw-bg-opacity)); +} +.bg-\\[\\#9f9f9f\\] { + --tw-bg-opacity: 1; + background-color: rgb(159 159 159 / var(--tw-bg-opacity)); +} +.bg-\\[\\#FFFFFF\\] { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.bg-\\[\\#b7b3b3\\] { + --tw-bg-opacity: 1; + background-color: rgb(183 179 179 / var(--tw-bg-opacity)); +} +.bg-\\[\\#ccc\\] { + --tw-bg-opacity: 1; + background-color: rgb(204 204 204 / var(--tw-bg-opacity)); +} +.bg-\\[\\#e3e2e1\\] { + --tw-bg-opacity: 1; + background-color: rgb(227 226 225 / var(--tw-bg-opacity)); +} +.bg-\\[\\#e6f2f2\\] { + --tw-bg-opacity: 1; + background-color: rgb(230 242 242 / var(--tw-bg-opacity)); +} +.bg-\\[\\#e6f2f2\\]\\/70 { + background-color: rgb(230 242 242 / 0.7); +} +.bg-\\[\\#f4bebe\\] { + --tw-bg-opacity: 1; + background-color: rgb(244 190 190 / var(--tw-bg-opacity)); +} +.bg-\\[\\#fff\\] { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.bg-\\[\\#ffffff\\] { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.bg-base-100 { + --tw-bg-opacity: 1; + background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); +} +.bg-base-200 { + --tw-bg-opacity: 1; + background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity))); +} +.bg-base-300 { + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); +} +.bg-base-content { + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); +} +.bg-black { + --tw-bg-opacity: 1; + background-color: rgb(0 0 0 / var(--tw-bg-opacity)); +} +.bg-blue-500 { + --tw-bg-opacity: 1; + background-color: rgb(59 130 246 / var(--tw-bg-opacity)); +} +.bg-gray-200 { + --tw-bg-opacity: 1; + background-color: rgb(229 231 235 / var(--tw-bg-opacity)); +} +.bg-gray-300 { + --tw-bg-opacity: 1; + background-color: rgb(209 213 219 / var(--tw-bg-opacity)); +} +.bg-gray-400 { + --tw-bg-opacity: 1; + background-color: rgb(156 163 175 / var(--tw-bg-opacity)); +} +.bg-gray-50 { + --tw-bg-opacity: 1; + background-color: rgb(249 250 251 / var(--tw-bg-opacity)); +} +.bg-transparent { + background-color: transparent; +} +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.bg-white\\/20 { + background-color: rgb(255 255 255 / 0.2); +} +.bg-yellow-300 { + --tw-bg-opacity: 1; + background-color: rgb(253 224 71 / var(--tw-bg-opacity)); +} +.bg-opacity-20 { + --tw-bg-opacity: 0.2; +} +.bg-opacity-25 { + --tw-bg-opacity: 0.25; +} +.bg-opacity-30 { + --tw-bg-opacity: 0.3; +} +.bg-opacity-50 { + --tw-bg-opacity: 0.5; +} +.bg-opacity-80 { + --tw-bg-opacity: 0.8; +} +.fill-current { + fill: currentColor; +} +.object-contain { + object-fit: contain; +} +.p-0 { + padding: 0px; +} +.p-2 { + padding: 0.5rem; +} +.p-3 { + padding: 0.75rem; +} +.p-4 { + padding: 1rem; +} +.p-\\[10px\\] { + padding: 10px; +} +.p-\\[15px\\] { + padding: 15px; +} +.p-\\[16px\\] { + padding: 16px; +} +.p-\\[1px\\] { + padding: 1px; +} +.p-\\[20px\\] { + padding: 20px; +} +.p-\\[2px\\] { + padding: 2px; +} +.p-\\[2rem\\] { + padding: 2rem; +} +.p-\\[30px\\] { + padding: 30px; +} +.p-\\[3px\\] { + padding: 3px; +} +.p-\\[5px\\] { + padding: 5px; +} +.p-\\[8px\\] { + padding: 8px; +} +.px-0 { + padding-left: 0px; + padding-right: 0px; +} +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} +.px-7 { + padding-left: 1.75rem; + padding-right: 1.75rem; +} +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} +.px-\\[1\\.25rem\\] { + padding-left: 1.25rem; + padding-right: 1.25rem; +} +.px-\\[10px\\] { + padding-left: 10px; + padding-right: 10px; +} +.px-\\[12px\\] { + padding-left: 12px; + padding-right: 12px; +} +.px-\\[13px\\] { + padding-left: 13px; + padding-right: 13px; +} +.px-\\[15px\\] { + padding-left: 15px; + padding-right: 15px; +} +.px-\\[20px\\] { + padding-left: 20px; + padding-right: 20px; +} +.px-\\[25px\\] { + padding-left: 25px; + padding-right: 25px; +} +.px-\\[3px\\] { + padding-left: 3px; + padding-right: 3px; +} +.px-\\[40px\\] { + padding-left: 40px; + padding-right: 40px; +} +.px-\\[4px\\] { + padding-left: 4px; + padding-right: 4px; +} +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} +.py-1\\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; +} +.py-10 { + padding-top: 2.5rem; + padding-bottom: 2.5rem; +} +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} +.py-\\[\\.75rem\\] { + padding-top: .75rem; + padding-bottom: .75rem; +} +.py-\\[1\\.5px\\] { + padding-top: 1.5px; + padding-bottom: 1.5px; +} +.py-\\[10px\\] { + padding-top: 10px; + padding-bottom: 10px; +} +.py-\\[1px\\] { + padding-top: 1px; + padding-bottom: 1px; +} +.py-\\[20px\\] { + padding-top: 20px; + padding-bottom: 20px; +} +.py-\\[2px\\] { + padding-top: 2px; + padding-bottom: 2px; +} +.py-\\[3px\\] { + padding-top: 3px; + padding-bottom: 3px; +} +.py-\\[5px\\] { + padding-top: 5px; + padding-bottom: 5px; +} +.py-\\[8px\\] { + padding-top: 8px; + padding-bottom: 8px; +} +.pb-0 { + padding-bottom: 0px; +} +.pb-1 { + padding-bottom: 0.25rem; +} +.pb-2 { + padding-bottom: 0.5rem; +} +.pb-3 { + padding-bottom: 0.75rem; +} +.pb-\\[15px\\] { + padding-bottom: 15px; +} +.pb-\\[1px\\] { + padding-bottom: 1px; +} +.pb-\\[20px\\] { + padding-bottom: 20px; +} +.pb-\\[5px\\] { + padding-bottom: 5px; +} +.pl-3 { + padding-left: 0.75rem; +} +.pl-6 { + padding-left: 1.5rem; +} +.pl-\\[10px\\] { + padding-left: 10px; +} +.pl-\\[20px\\] { + padding-left: 20px; +} +.pl-\\[5px\\] { + padding-left: 5px; +} +.pr-1 { + padding-right: 0.25rem; +} +.pr-2 { + padding-right: 0.5rem; +} +.pr-\\[3px\\] { + padding-right: 3px; +} +.pr-\\[5px\\] { + padding-right: 5px; +} +.pt-0 { + padding-top: 0px; +} +.pt-1 { + padding-top: 0.25rem; +} +.pt-2 { + padding-top: 0.5rem; +} +.pt-3 { + padding-top: 0.75rem; +} +.pt-4 { + padding-top: 1rem; +} +.pt-\\[10px\\] { + padding-top: 10px; +} +.pt-\\[15px\\] { + padding-top: 15px; +} +.pt-\\[20px\\] { + padding-top: 20px; +} +.text-left { + text-align: left; +} +.text-center { + text-align: center; +} +.align-baseline { + vertical-align: baseline; +} +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} +.text-\\[1\\.2rem\\] { + font-size: 1.2rem; +} +.text-\\[1\\.5rem\\] { + font-size: 1.5rem; +} +.text-\\[10px\\] { + font-size: 10px; +} +.text-\\[11px\\] { + font-size: 11px; +} +.text-\\[12px\\] { + font-size: 12px; +} +.text-\\[13px\\] { + font-size: 13px; +} +.text-\\[14px\\] { + font-size: 14px; +} +.text-\\[15px\\] { + font-size: 15px; +} +.text-\\[16px\\] { + font-size: 16px; +} +.text-\\[18px\\] { + font-size: 18px; +} +.text-\\[20px\\] { + font-size: 20px; +} +.text-\\[25px\\] { + font-size: 25px; +} +.text-\\[30px\\] { + font-size: 30px; +} +.text-\\[40px\\] { + font-size: 40px; +} +.text-\\[60px\\] { + font-size: 60px; +} +.text-\\[8px\\] { + font-size: 8px; +} +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} +.text-xs { + font-size: 0.75rem; + line-height: 1rem; +} +.font-\\[400\\] { + font-weight: 400; +} +.font-\\[500\\] { + font-weight: 500; +} +.font-\\[650\\] { + font-weight: 650; +} +.font-\\[700\\] { + font-weight: 700; +} +.font-bold { + font-weight: 700; +} +.font-extralight { + font-weight: 200; +} +.font-light { + font-weight: 300; +} +.font-medium { + font-weight: 500; +} +.font-normal { + font-weight: 400; +} +.font-semibold { + font-weight: 600; +} +.uppercase { + text-transform: uppercase; +} +.lowercase { + text-transform: lowercase; +} +.capitalize { + text-transform: capitalize; +} +.italic { + font-style: italic; +} +.text-\\[\\#002862\\] { + --tw-text-opacity: 1; + color: rgb(0 40 98 / var(--tw-text-opacity)); +} +.text-\\[\\#33bbff\\] { + --tw-text-opacity: 1; + color: rgb(51 187 255 / var(--tw-text-opacity)); +} +.text-\\[\\#424242\\] { + --tw-text-opacity: 1; + color: rgb(66 66 66 / var(--tw-text-opacity)); +} +.text-\\[\\#878787\\] { + --tw-text-opacity: 1; + color: rgb(135 135 135 / var(--tw-text-opacity)); +} +.text-\\[\\#a64b4e\\] { + --tw-text-opacity: 1; + color: rgb(166 75 78 / var(--tw-text-opacity)); +} +.text-\\[\\#ac4848\\] { + --tw-text-opacity: 1; + color: rgb(172 72 72 / var(--tw-text-opacity)); +} +.text-\\[\\#c42121\\] { + --tw-text-opacity: 1; + color: rgb(196 33 33 / var(--tw-text-opacity)); +} +.text-\\[\\#de4337\\] { + --tw-text-opacity: 1; + color: rgb(222 67 55 / var(--tw-text-opacity)); +} +.text-\\[\\#f5405e\\] { + --tw-text-opacity: 1; + color: rgb(245 64 94 / var(--tw-text-opacity)); +} +.text-\\[\\#fab005\\] { + --tw-text-opacity: 1; + color: rgb(250 176 5 / var(--tw-text-opacity)); +} +.text-\\[gray\\] { + --tw-text-opacity: 1; + color: rgb(128 128 128 / var(--tw-text-opacity)); +} +.text-\\[green\\] { + --tw-text-opacity: 1; + color: rgb(0 128 0 / var(--tw-text-opacity)); +} +.text-\\[red\\] { + --tw-text-opacity: 1; + color: rgb(255 0 0 / var(--tw-text-opacity)); +} +.text-accent { + --tw-text-opacity: 1; + color: var(--fallback-a,oklch(var(--a)/var(--tw-text-opacity))); +} +.text-base-100 { + --tw-text-opacity: 1; + color: var(--fallback-b1,oklch(var(--b1)/var(--tw-text-opacity))); +} +.text-base-content { + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); +} +.text-black { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity)); +} +.text-blue-400 { + --tw-text-opacity: 1; + color: rgb(96 165 250 / var(--tw-text-opacity)); +} +.text-blue-600 { + --tw-text-opacity: 1; + color: rgb(37 99 235 / var(--tw-text-opacity)); +} +.text-gray-300 { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} +.text-gray-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} +.text-gray-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} +.text-gray-700 { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} +.text-green-600 { + --tw-text-opacity: 1; + color: rgb(22 163 74 / var(--tw-text-opacity)); +} +.text-neutral { + --tw-text-opacity: 1; + color: var(--fallback-n,oklch(var(--n)/var(--tw-text-opacity))); +} +.text-primary-content { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} +.text-red-500 { + --tw-text-opacity: 1; + color: rgb(239 68 68 / var(--tw-text-opacity)); +} +.text-red-600 { + --tw-text-opacity: 1; + color: rgb(220 38 38 / var(--tw-text-opacity)); +} +.text-transparent { + color: transparent; +} +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} +.underline { + text-decoration-line: underline; +} +.no-underline { + text-decoration-line: none; +} +.underline-offset-1 { + text-underline-offset: 1px; +} +.underline-offset-2 { + text-underline-offset: 2px; +} +.underline-offset-8 { + text-underline-offset: 8px; +} +.opacity-20 { + opacity: 0.2; +} +.opacity-50 { + opacity: 0.5; +} +.opacity-70 { + opacity: 0.7; +} +.shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.shadow-lg { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.shadow-md { + --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.outline-none { + outline: 2px solid transparent; + outline-offset: 2px; +} +.outline { + outline-style: solid; +} +.outline-1 { + outline-width: 1px; +} +.outline-\\[1\\.5px\\] { + outline-width: 1.5px; +} +.outline-\\[\\#007bff\\] { + outline-color: #007bff; +} +.outline-slate-300\\/50 { + outline-color: rgb(203 213 225 / 0.5); +} +.ring-\\[1px\\] { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} +.ring-\\[2px\\] { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} +.ring-\\[\\#002862\\] { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(0 40 98 / var(--tw-ring-opacity)); +} +.ring-gray-400 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity)); +} +.ring-offset-2 { + --tw-ring-offset-width: 2px; +} +.blur { + --tw-blur: blur(8px); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} +.filter { + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} +.transition { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.transition-all { + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +body { + background-color: white; +} + +/* Custom CSS to hide scrollbar */ +.hide-scrollbar::-webkit-scrollbar { + display: none; +} + +.hide-scrollbar { + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ +} + +/* below css class replace bootstrap background color with daisy */ +.op-bg-primary { + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); +} +.op-bg-secondary { + --tw-bg-opacity: 1; + background-color: var(--fallback-s,oklch(var(--s)/var(--tw-bg-opacity))); +} +.op-bg-info { + --tw-bg-opacity: 1; + background-color: var(--fallback-in,oklch(var(--in)/var(--tw-bg-opacity))); +} +.op-bg-success { + --tw-bg-opacity: 1; + background-color: var(--fallback-su,oklch(var(--su)/var(--tw-bg-opacity))); +} +.op-bg-warning { + --tw-bg-opacity: 1; + background-color: var(--fallback-wa,oklch(var(--wa)/var(--tw-bg-opacity))); +} + +/* below css class replace bootstrap text color with daisy */ +.op-text-primary { + --tw-text-opacity: 1; + color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity))); +} +.op-text-secondary { + --tw-text-opacity: 1; + color: var(--fallback-s,oklch(var(--s)/var(--tw-text-opacity))); +} +.op-text-info { + --tw-text-opacity: 1; + color: var(--fallback-in,oklch(var(--in)/var(--tw-text-opacity))); +} +.op-text-success { + --tw-text-opacity: 1; + color: var(--fallback-su,oklch(var(--su)/var(--tw-text-opacity))); +} +.op-text-warning { + --tw-text-opacity: 1; + color: var(--fallback-wa,oklch(var(--wa)/var(--tw-text-opacity))); +} +.op-border-primary { + --tw-border-opacity: 1; + border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); +} +/* CSS for scrollbar customization */ +* { + scrollbar-width: thin; /* For Firefox */ + scrollbar-color: gray; /* For Firefox */ +} + +/* For webkit-based browsers like Chrome, Safari */ +*::-webkit-scrollbar { + width: 5px; +} + +*::-webkit-scrollbar-track { + background-color: transparent; +} + +*::-webkit-scrollbar-thumb { + background-color: gray; + border-radius: 10px; +} + +@media (min-width: 768px) { + + .md\\:op-btn-sm { + height: 2rem; + min-height: 2rem; + padding-left: 0.75rem; + padding-right: 0.75rem; + font-size: 0.875rem; + } + + .md\\:op-btn-md { + height: 3rem; + min-height: 3rem; + padding-left: 1rem; + padding-right: 1rem; + font-size: 0.875rem; + } + + .op-btn-square:where(.md\\:op-btn-sm) { + height: 2rem; + width: 2rem; + padding: 0px; + } + + .op-btn-square:where(.md\\:op-btn-md) { + height: 3rem; + width: 3rem; + padding: 0px; + } + + .op-btn-circle:where(.md\\:op-btn-sm) { + height: 2rem; + width: 2rem; + border-radius: 9999px; + padding: 0px; + } + + .op-btn-circle:where(.md\\:op-btn-md) { + height: 3rem; + width: 3rem; + border-radius: 9999px; + padding: 0px; + } +} + +.after\\:absolute::after { + content: var(--tw-content); + position: absolute; +} + +.after\\:start-\\[2px\\]::after { + content: var(--tw-content); + inset-inline-start: 2px; +} + +.after\\:top-\\[2px\\]::after { + content: var(--tw-content); + top: 2px; +} + +.after\\:h-4::after { + content: var(--tw-content); + height: 1rem; +} + +.after\\:w-4::after { + content: var(--tw-content); + width: 1rem; +} + +.after\\:rounded-full::after { + content: var(--tw-content); + border-radius: 9999px; +} + +.after\\:border::after { + content: var(--tw-content); + border-width: 1px; +} + +.after\\:border-gray-300::after { + content: var(--tw-content); + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} + +.after\\:bg-white::after { + content: var(--tw-content); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.after\\:transition-all::after { + content: var(--tw-content); + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.after\\:content-\\[\\'\\'\\]::after { + --tw-content: ''; + content: var(--tw-content); +} + +.last\\:mb-0:last-child { + margin-bottom: 0px; +} + +.last\\:mb-0\\.5:last-child { + margin-bottom: 0.125rem; +} + +.checked\\:bg-white:checked { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.checked\\:\\[--tglbg\\:\\#3368ff\\]:checked { + --tglbg: #3368ff; +} + +.hover\\:cursor-sw-resize:hover { + cursor: sw-resize; +} + +.hover\\:border-\\[\\#d2e3fc\\]:hover { + --tw-border-opacity: 1; + border-color: rgb(210 227 252 / var(--tw-border-opacity)); +} + +.hover\\:border-base-content:hover { + --tw-border-opacity: 1; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); +} + +.hover\\:bg-\\[\\#ecf3feb7\\]:hover { + background-color: #ecf3feb7; +} + +.hover\\:bg-base-300:hover { + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); +} + +.hover\\:bg-transparent:hover { + background-color: transparent; +} + +.hover\\:text-base-content:hover { + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); +} + +.hover\\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.hover\\:underline:hover { + text-decoration-line: underline; +} + +.hover\\:no-underline:hover { + text-decoration-line: none; +} + +.hover\\:shadow-lg:hover { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.focus\\:bg-base-300:focus { + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); +} + +.focus\\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.disabled\\:text-\\[\\#5c5c5c\\]:disabled { + --tw-text-opacity: 1; + color: rgb(92 92 92 / var(--tw-text-opacity)); +} + +.group:hover .group-hover\\:border-base-content { + --tw-border-opacity: 1; + border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity))); +} + +.peer:checked ~ .peer-checked\\:bg-blue-600 { + --tw-bg-opacity: 1; + background-color: rgb(37 99 235 / var(--tw-bg-opacity)); +} + +.peer:checked ~ .peer-checked\\:after\\:translate-x-full::after { + content: var(--tw-content); + --tw-translate-x: 100%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.peer:checked ~ .peer-checked\\:after\\:border-white::after { + content: var(--tw-content); + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity)); +} + +.peer:focus ~ .peer-focus\\:outline-none { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.peer:focus ~ .peer-focus\\:ring-1 { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.peer:focus ~ .peer-focus\\:ring-black { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); +} + +@media (min-width: 640px) { + + .sm\\:inline-block { + display: inline-block; + } +} + +@media (min-width: 768px) { + + .md\\:col-span-12 { + grid-column: span 12 / span 12; + } + + .md\\:col-span-6 { + grid-column: span 6 / span 6; + } + + .md\\:m-0 { + margin: 0px; + } + + .md\\:m-10 { + margin: 2.5rem; + } + + .md\\:m-2 { + margin: 0.5rem; + } + + .md\\:m-\\[20px\\] { + margin: 20px; + } + + .md\\:mx-0 { + margin-left: 0px; + margin-right: 0px; + } + + .md\\:mb-0 { + margin-bottom: 0px; + } + + .md\\:mb-1 { + margin-bottom: 0.25rem; + } + + .md\\:ml-0 { + margin-left: 0px; + } + + .md\\:mr-0 { + margin-right: 0px; + } + + .md\\:mt-\\[41px\\] { + margin-top: 41px; + } + + .md\\:block { + display: block; + } + + .md\\:inline-block { + display: inline-block; + } + + .md\\:flex { + display: flex; + } + + .md\\:h-\\[200px\\] { + height: 200px; + } + + .md\\:h-\\[400px\\] { + height: 400px; + } + + .md\\:h-\\[40px\\] { + height: 40px; + } + + .md\\:h-\\[66px\\] { + height: 66px; + } + + .md\\:h-\\[95\\%\\] { + height: 95%; + } + + .md\\:max-h-\\[400px\\] { + max-height: 400px; + } + + .md\\:min-h-full { + min-height: 100%; + } + + .md\\:w-\\[100\\%\\] { + width: 100%; + } + + .md\\:w-\\[200px\\] { + width: 200px; + } + + .md\\:w-\\[23\\%\\] { + width: 23%; + } + + .md\\:w-\\[250px\\] { + width: 250px; + } + + .md\\:w-\\[300px\\] { + width: 300px; + } + + .md\\:w-\\[40\\%\\] { + width: 40%; + } + + .md\\:w-\\[400px\\] { + width: 400px; + } + + .md\\:w-\\[5\\%\\] { + width: 5%; + } + + .md\\:w-\\[50\\%\\] { + width: 50%; + } + + .md\\:w-\\[55\\%\\] { + width: 55%; + } + + .md\\:w-\\[57\\%\\] { + width: 57%; + } + + .md\\:w-\\[60\\%\\] { + width: 60%; + } + + .md\\:w-\\[70\\%\\] { + width: 70%; + } + + .md\\:w-\\[92\\%\\] { + width: 92%; + } + + .md\\:w-\\[95\\%\\] { + width: 95%; + } + + .md\\:min-w-\\[440px\\] { + min-width: 440px; + } + + .md\\:min-w-\\[500px\\] { + min-width: 500px; + } + + .md\\:min-w-full { + min-width: 100%; + } + + .md\\:max-w-\\[400px\\] { + max-width: 400px; + } + + .md\\:max-w-\\[450px\\] { + max-width: 450px; + } + + .md\\:max-w-\\[500px\\] { + max-width: 500px; + } + + .md\\:max-w-\\[550px\\] { + max-width: 550px; + } + + .md\\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .md\\:flex-row { + flex-direction: row; + } + + .md\\:items-center { + align-items: center; + } + + .md\\:justify-between { + justify-content: space-between; + } + + .md\\:gap-6 { + gap: 1.5rem; + } + + .md\\:gap-\\[12px\\] { + gap: 12px; + } + + .md\\:gap-\\[8px\\] { + gap: 8px; + } + + .md\\:gap-y-0 { + row-gap: 0px; + } + + .md\\:p-10 { + padding: 2.5rem; + } + + .md\\:p-4 { + padding: 1rem; + } + + .md\\:p-5 { + padding: 1.25rem; + } + + .md\\:py-0 { + padding-top: 0px; + padding-bottom: 0px; + } + + .md\\:py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; + } + + .md\\:pb-4 { + padding-bottom: 1rem; + } + + .md\\:pl-8 { + padding-left: 2rem; + } + + .md\\:pr-0 { + padding-right: 0px; + } + + .md\\:pt-3 { + padding-top: 0.75rem; + } + + .md\\:text-end { + text-align: end; + } + + .md\\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; + } + + .md\\:text-\\[13px\\] { + font-size: 13px; + } + + .md\\:text-\\[15px\\] { + font-size: 15px; + } + + .md\\:text-\\[23px\\] { + font-size: 23px; + } + + .md\\:text-\\[30px\\] { + font-size: 30px; + } + + .md\\:text-base { + font-size: 1rem; + line-height: 1.5rem; + } + + .md\\:text-lg { + font-size: 1.125rem; + line-height: 1.75rem; + } + + .md\\:text-sm { + font-size: 0.875rem; + line-height: 1.25rem; + } + + .md\\:text-xl { + font-size: 1.25rem; + line-height: 1.75rem; + } +} + +@media (min-width: 1024px) { + + .lg\\:relative { + position: relative; + } + + .lg\\:order-none { + order: 0; + } + + .lg\\:col-span-12 { + grid-column: span 12 / span 12; + } + + .lg\\:col-span-6 { + grid-column: span 6 / span 6; + } + + .lg\\:mx-0 { + margin-left: 0px; + margin-right: 0px; + } + + .lg\\:ml-4 { + margin-left: 1rem; + } + + .lg\\:block { + display: block; + } + + .lg\\:hidden { + display: none; + } + + .lg\\:w-\\[40\\%\\] { + width: 40%; + } + + .lg\\:w-\\[400px\\] { + width: 400px; + } + + .lg\\:w-\\[500px\\] { + width: 500px; + } + + .lg\\:p-10 { + padding: 2.5rem; + } + + .lg\\:p-16 { + padding: 4rem; + } + + .lg\\:p-4 { + padding: 1rem; + } + + .lg\\:text-\\[120px\\] { + font-size: 120px; + } + + .lg\\:text-\\[30px\\] { + font-size: 30px; + } + + .lg\\:text-\\[50px\\] { + font-size: 50px; + } + + .lg\\:text-lg { + font-size: 1.125rem; + line-height: 1.75rem; + } +} + +@media (min-width: 1280px) { + + .xl\\:mt-\\[63px\\] { + margin-top: 63px; + } + + .xl\\:w-\\[500px\\] { + width: 500px; + } +} + +@media (min-width: 1536px) { + + .\\32xl\\:m-5 { + margin: 1.25rem; + } + + .\\32xl\\:mt-\\[63px\\] { + margin-top: 63px; + } + + .\\32xl\\:max-w-\\[500px\\] { + max-width: 500px; + } + + .\\32xl\\:p-3 { + padding: 0.75rem; + } + + .\\32xl\\:px-\\[15px\\] { + padding-left: 15px; + padding-right: 15px; + } + + .\\32xl\\:py-\\[10px\\] { + padding-top: 10px; + padding-bottom: 10px; + } + + .\\32xl\\:text-\\[20px\\] { + font-size: 20px; + } + + .\\32xl\\:text-\\[25px\\] { + font-size: 25px; + } + + .\\32xl\\:text-\\[30px\\] { + font-size: 30px; + } +} + +.peer:checked ~ .rtl\\:peer-checked\\:after\\:-translate-x-full:where([dir="rtl"], [dir="rtl"] *)::after { + content: var(--tw-content); + --tw-translate-x: -100%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +@media (prefers-color-scheme: dark) { + + .dark\\:border-black { + --tw-border-opacity: 1; + border-color: rgb(0 0 0 / var(--tw-border-opacity)); + } + + .dark\\:bg-gray-700 { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); + } +}`, "",{"version":3,"sources":["webpack://./src/index.css"],"names":[],"mappings":"AAAA;;CAAc,CAAd;;;CAAc;;AAAd;;;EAAA,sBAAc,EAAd,MAAc;EAAd,eAAc,EAAd,MAAc;EAAd,mBAAc,EAAd,MAAc;EAAd,qBAAc,EAAd,MAAc;AAAA;;AAAd;;EAAA,gBAAc;AAAA;;AAAd;;;;;;;;CAAc;;AAAd;;EAAA,gBAAc,EAAd,MAAc;EAAd,8BAAc,EAAd,MAAc,EAAd,MAAc;EAAd,WAAc,EAAd,MAAc;EAAd,+HAAc,EAAd,MAAc;EAAd,6BAAc,EAAd,MAAc;EAAd,+BAAc,EAAd,MAAc;EAAd,wCAAc,EAAd,MAAc;AAAA;;AAAd;;;CAAc;;AAAd;EAAA,SAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;AAAA;;AAAd;;;;CAAc;;AAAd;EAAA,SAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;EAAd,qBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,yCAAc;UAAd,iCAAc;AAAA;;AAAd;;CAAc;;AAAd;;;;;;EAAA,kBAAc;EAAd,oBAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,cAAc;EAAd,wBAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,mBAAc;AAAA;;AAAd;;;;;CAAc;;AAAd;;;;EAAA,+GAAc,EAAd,MAAc;EAAd,6BAAc,EAAd,MAAc;EAAd,+BAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,cAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,cAAc;EAAd,cAAc;EAAd,kBAAc;EAAd,wBAAc;AAAA;;AAAd;EAAA,eAAc;AAAA;;AAAd;EAAA,WAAc;AAAA;;AAAd;;;;CAAc;;AAAd;EAAA,cAAc,EAAd,MAAc;EAAd,qBAAc,EAAd,MAAc;EAAd,yBAAc,EAAd,MAAc;AAAA;;AAAd;;;;CAAc;;AAAd;;;;;EAAA,oBAAc,EAAd,MAAc;EAAd,8BAAc,EAAd,MAAc;EAAd,gCAAc,EAAd,MAAc;EAAd,eAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;EAAd,uBAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;EAAd,SAAc,EAAd,MAAc;EAAd,UAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,oBAAc;AAAA;;AAAd;;;CAAc;;AAAd;;;;EAAA,0BAAc,EAAd,MAAc;EAAd,6BAAc,EAAd,MAAc;EAAd,sBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,aAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,gBAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,wBAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,YAAc;AAAA;;AAAd;;;CAAc;;AAAd;EAAA,6BAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,wBAAc;AAAA;;AAAd;;;CAAc;;AAAd;EAAA,0BAAc,EAAd,MAAc;EAAd,aAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,kBAAc;AAAA;;AAAd;;CAAc;;AAAd;;;;;;;;;;;;;EAAA,SAAc;AAAA;;AAAd;EAAA,SAAc;EAAd,UAAc;AAAA;;AAAd;EAAA,UAAc;AAAA;;AAAd;;;EAAA,gBAAc;EAAd,SAAc;EAAd,UAAc;AAAA;;AAAd;;CAAc;AAAd;EAAA,UAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,gBAAc;AAAA;;AAAd;;;CAAc;;AAAd;;EAAA,UAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,eAAc;AAAA;;AAAd;;CAAc;AAAd;EAAA,eAAc;AAAA;;AAAd;;;;CAAc;;AAAd;;;;;;;;EAAA,cAAc,EAAd,MAAc;EAAd,sBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,eAAc;EAAd,YAAc;AAAA;;AAAd,wEAAc;AAAd;EAAA,aAAc;AAAA;;AAAd;;EAAA,uDAAc;EAAd;AAAc;;AAAd;;EAAA;IAAA,mBAAc;IAAd,qBAAc;IAAd,sBAAc;IAAd,qBAAc;IAAd,sBAAc;IAAd,qBAAc;IAAd,sBAAc;IAAd,qBAAc;IAAd,sBAAc;IAAd,sBAAc;IAAd,sBAAc;IAAd,sBAAc;IAAd,sBAAc;IAAd,sBAAc;IAAd,uBAAc;IAAd,sBAAc;IAAd,uBAAc;IAAd,sBAAc;IAAd,uBAAc;IAAd,sBAAc;IAAd;EAAc;;EAAd;;IAAA;MAAA,kBAAc;MAAd,qBAAc;MAAd,sBAAc;MAAd,qBAAc;MAAd,sBAAc;MAAd,qBAAc;MAAd,sBAAc;MAAd,qBAAc;MAAd,sBAAc;MAAd,sBAAc;MAAd,sBAAc;MAAd,sBAAc;MAAd,sBAAc;MAAd,sBAAc;MAAd,uBAAc;MAAd,sBAAc;MAAd,uBAAc;MAAd,sBAAc;MAAd,uBAAc;MAAd,sBAAc;MAAd;IAAc;EAAA;AAAA;;AAAd;EAAA;AAAc;;AAAd;EAAA;AAAc;;AAAd;EAAA;AAAc;;AAAd;EAAA,mBAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,4BAAc;EAAd,2BAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,yBAAc;EAAd,wBAAc;EAAd,0BAAc;EAAd,wBAAc;EAAd,gCAAc;EAAd,kCAAc;EAAd,cAAc;EAAd,kBAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;;EAAA;IAAA,kBAAc;IAAd,wBAAc;IAAd,qBAAc;IAAd,wBAAc;IAAd,wBAAc;IAAd,2BAAc;IAAd,yBAAc;IAAd,2BAAc;IAAd,aAAc;IAAd,aAAc;IAAd,aAAc;IAAd,aAAc;IAAd,mBAAc;IAAd,qBAAc;IAAd,uBAAc;IAAd,sBAAc;IAAd,sBAAc;IAAd,uBAAc;IAAd,iBAAc;IAAd,iBAAc;IAAd,oBAAc;IAAd,wBAAc;IAAd,sBAAc;IAAd,wBAAc;IAAd,iCAAc;IAAd,gCAAc;IAAd,kCAAc;IAAd,kCAAc;IAAd,iCAAc;IAAd;EAAc;AAAA;;AAAd;EAAA,mBAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,4BAAc;EAAd,2BAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,yBAAc;EAAd,wBAAc;EAAd,0BAAc;EAAd,wBAAc;EAAd,gCAAc;EAAd,kCAAc;EAAd,cAAc;EAAd,kBAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,2BAAc;EAAd,yBAAc;EAAd,2BAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,wBAAc;EAAd,sBAAc;EAAd,wBAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,kCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,qBAAc;EAAd,iBAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,aAAc;EAAd,aAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,aAAc;EAAd,0BAAc;EAAd,yBAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,aAAc;EAAd,aAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,cAAc;EAAd,gCAAc;EAAd,YAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,cAAc;EAAd,kCAAc;EAAd,kBAAc;EAAd,oBAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,aAAc;EAAd,aAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,0BAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,uBAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,kCAAc;EAAd,cAAc;EAAd,iCAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,kBAAc;EAAd,oBAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,0BAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,uBAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,mCAAc;EAAd,gCAAc;EAAd,mCAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,2BAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,+BAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,6BAAc;EAAd,6BAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,2BAAc;EAAd,yBAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oGAAc;EAAd,sBAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd,yBAAc;EAAd,gBAAc;EAAd,gBAAc;EAAd,kBAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,2BAAc;EAAd,mBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,gCAAc;EAAd,+BAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,+BAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,2BAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,2BAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,uBAAc;EAAd,kCAAc;EAAd,wBAAc;EAAd,2BAAc;EAAd,YAAc;EAAd,+BAAc;EAAd,kBAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,+BAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,yBAAc;EAAd,cAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,iCAAc;EAAd,YAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,yBAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,8BAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,+BAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,0BAAc;EAAd,yBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,cAAc;EAAd,+BAAc;EAAd,cAAc;EAAd,iBAAc;EAAd,cAAc;EAAd,WAAc;EAAd,cAAc;EAAd,cAAc;EAAd,kBAAc;EAAd,+BAAc;EAAd,YAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd,wBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,yBAAc;EAAd,sBAAc;EAAd,kBAAc;EAAd,oBAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,aAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,+BAAc;EAAd,+BAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,cAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,qBAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,aAAc;EAAd,aAAc;EAAd,wBAAc;EAAd,qBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,0BAAc;EAAd,2BAAc;EAAd,0BAAc;EAAd,kCAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,uBAAc;EAAd,iCAAc;EAAd,cAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,aAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,kDAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,gBAAc;EAAd,cAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,qBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,YAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,iBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,gBAAc;EAAd,gBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,oBAAc;EAAd,oBAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,aAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,mCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,aAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,8BAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,mCAAc;EAAd,mCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,gCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,aAAc;EAAd,aAAc;EAAd,aAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kBAAc;EAAd,iCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iBAAc;EAAd,cAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,2BAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,+BAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,kBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,kBAAc;EAAd,iBAAc;EAAd,kBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,+BAAc;EAAd,+BAAc;EAAd,kBAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,8BAAc;EAAd,8BAAc;EAAd,+BAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,4BAAc;EAAd,2BAAc;EAAd,+BAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,2BAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,wBAAc;EAAd,kBAAc;EAAd,yBAAc;EAAd,yBAAc;EAAd,wBAAc;EAAd,4BAAc;EAAd,sBAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,4BAAc;EAAd,4BAAc;EAAd,0BAAc;EAAd,0BAAc;EAAd,0BAAc;EAAd,2BAAc;EAAd,yBAAc;EAAd,4BAAc;EAAd,4BAAc;EAAd,4BAAc;EAAd,2BAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,wBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd,yBAAc;EAAd,yBAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,mCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,aAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,+BAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,gCAAc;EAAd,+BAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,0BAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,mCAAc;EAAd,mCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,wBAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,cAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,gCAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,mCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,oBAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd;AAAc;;AAAd;EAAA,mBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,8BAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,+BAAc;EAAd,qBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd;AAAc;;AAAd;EAAA,kBAAc;EAAd,gCAAc;EAAd,+BAAc;EAAd,kCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,+BAAc;EAAd,8BAAc;EAAd,iCAAc;EAAd,qBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,kCAAc;EAAd,kCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,gCAAc;EAAd,qBAAc;EAAd,qBAAc;EAAd,uBAAc;EAAd;AAAc;;AAAd;EAAA,iCAAc;EAAd,mBAAc;EAAd,uBAAc;EAAd,sBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,iBAAc;EAAd,kCAAc;EAAd,gCAAc;EAAd,kCAAc;EAAd,gCAAc;EAAd,iCAAc;EAAd,+BAAc;EAAd,kCAAc;EAAd,cAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,kBAAc;EAAd,kCAAc;EAAd,mCAAc;EAAd,kCAAc;EAAd,mCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,iCAAc;EAAd,qBAAc;EAAd,iBAAc;EAAd;AAAc;;AAAd;EAAA,wBAAc;EAAd,wBAAc;EAAd,mBAAc;EAAd,mBAAc;EAAd,cAAc;EAAd,cAAc;EAAd,cAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,aAAc;EAAd,kBAAc;EAAd,sCAAc;EAAd,8BAAc;EAAd,6BAAc;EAAd,4BAAc;EAAd,eAAc;EAAd,oBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,kBAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,sCAAc;EAAd,kCAAc;EAAd,2BAAc;EAAd,sBAAc;EAAd,8BAAc;EAAd,YAAc;EAAd,kBAAc;EAAd,gBAAc;EAAd,iBAAc;EAAd,kBAAc;EAAd,cAAc;EAAd,gBAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,2BAAc;EAAd,yBAAc;EAAd,0BAAc;EAAd,2BAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd,sBAAc;EAAd,oBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd;AAAc;;AAAd;EAAA,wBAAc;EAAd,wBAAc;EAAd,mBAAc;EAAd,mBAAc;EAAd,cAAc;EAAd,cAAc;EAAd,cAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,aAAc;EAAd,kBAAc;EAAd,sCAAc;EAAd,8BAAc;EAAd,6BAAc;EAAd,4BAAc;EAAd,eAAc;EAAd,oBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,kBAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,sCAAc;EAAd,kCAAc;EAAd,2BAAc;EAAd,sBAAc;EAAd,8BAAc;EAAd,YAAc;EAAd,kBAAc;EAAd,gBAAc;EAAd,iBAAc;EAAd,kBAAc;EAAd,cAAc;EAAd,gBAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,2BAAc;EAAd,yBAAc;EAAd,0BAAc;EAAd,2BAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd,sBAAc;EAAd,oBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd;AAAc;AACd;EAAA;AAAoB;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;EAAA,aAAoB;EAApB,WAAoB;EAApB,mBAAoB;EAApB,yBAAoB;EAApB,mBAAoB;EAApB,qBAAoB;EAApB,SAAoB;EAApB,kBAAoB;EAApB,uCAAoB;EAApB,iBAAoB;EAApB,sBAAoB;EAApB,0EAAoB;EAApB,aAAoB;EAApB,oBAAoB;EAApB,iEAAoB;EAApB,iDAAoB;EAApB,qDAAoB;EAApB;AAAoB;AAApB;;EAAA;IAAA,sBAAoB;IAApB,4CAAoB;IAApB,oBAAoB;IAApB;EAAoB;AAAA;AAApB;EAAA,oBAAoB;EAApB,mBAAoB;EAApB,uBAAoB;EAApB,gKAAoB;EAApB,wJAAoB;EAApB,iLAAoB;EAApB,wDAAoB;EAApB,sDAAoB;EAApB,0BAAoB;EAApB,eAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB,0BAAoB;EAApB,uBAAoB;EAApB,kBAAoB;EAApB,sBAAoB;EAApB,uBAAoB;EAApB,2CAAoB;EAApB,iBAAoB;EAApB,sBAAoB;EAApB,0EAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;;EAAA;;;IAAA,kBAAoB;IAApB,wEAAoB;IAApB,oBAAoB;IAApB;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA,oBAAoB;IAApB;EAAoB;;EAApB;;IAAA,kBAAoB;IAApB;EAAoB;AAAA;AAApB;EAAA,oBAAoB;EAApB,YAAoB;EAApB,gBAAoB;EAApB,cAAoB;EAApB,eAAoB;EAApB,yBAAoB;UAApB,iBAAoB;EAApB,eAAoB;EAApB,mBAAoB;EAApB,uBAAoB;EAApB,yCAAoB;EAApB,yBAAoB;EAApB,2EAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,gBAAoB;EAApB,WAAoB;EAApB,gBAAoB;EAApB,0BAAoB;EAApB,0BAAoB;EAApB,sDAAoB;EAApB,oCAAoB;EAApB,0FAAoB;EAApB,oBAAoB;EAApB,iEAAoB;EAApB,0CAAoB;EAApB,uDAAoB;EAApB,uGAAoB;EAApB,oDAAoB;EAApB,2EAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;;;EAAA;AAAoB;AAApB;EAAA,YAAoB;EAApB,WAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,WAAoB;EAApB,qBAAoB;EAApB;AAAoB;AAApB;;EAAA,WAAoB;EAApB,wBAAoB;UAApB;AAAoB;AAApB;;EAAA,8BAAoB;EAApB;AAAoB;AAApB;EAAA,kBAAoB;EAApB,aAAoB;EAApB,sBAAoB;EAApB;AAAoB;AAApB;EAAA,8BAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,cAAoB;EAApB,sBAAoB;EAApB,kCAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,aAAoB;EAApB,eAAoB;EAApB,uBAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,kBAAoB;EAApB,WAAoB;EAApB,WAAoB;EAApB,uCAAoB;EAApB,kBAAoB;EAApB,wEAAoB;EAApB;AAAoB;AAApB;;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB;AAAoB;AAApB;EAAA,kBAAoB;EAApB,WAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA,cAAoB;EAApB,8CAAoB;EAApB,8CAAoB;EAApB,cAAoB;EAApB,aAAoB;EAApB,eAAoB;EAApB,wBAAoB;UAApB,gBAAoB;EAApB,yCAAoB;EAApB,iBAAoB;EAApB,0EAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,mBAAoB;EAApB,mBAAoB;EAApB,mBAAoB;EAApB,gBAAoB;EAApB,mBAAoB;EAApB,YAAoB;EAApB;AAAoB;AAApB;;EAAA,gBAAoB;EAApB,WAAoB;EAApB,YAAoB;EAApB,gBAAoB;EAApB,0BAAoB;EAApB;AAAoB;AAApB;EAAA,kBAAoB;EAApB;AAAoB;AAApB;EAAA,8BAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,kBAAoB;EAApB,UAAoB;EAApB,qBAAoB;EAApB,iBAAoB;EAApB,iBAAoB;EAApB,+LAAoB;EAApB,gKAAoB;EAApB,wJAAoB;EAApB,iLAAoB;EAApB,wDAAoB;EAApB,sDAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,YAAoB;EAApB,sBAAoB;EAApB,QAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,wBAAoB;EAApB,QAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,SAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,SAAoB;EAApB;AAAoB;AAApB;EAAA,WAAoB;EAApB;AAAoB;AAApB;EAAA,WAAoB;EAApB;AAAoB;AAApB;;;EAAA,mBAAoB;EAApB;AAAoB;AAApB;;EAAA;IAAA,mBAAoB;IAApB;EAAoB;;EAApB;IAAA,sBAAoB;IAApB,0EAAoB;IAApB,kBAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA;;;;WAAoB;MAApB;;;;;IAAoB;EAAA;;EAApB;;IAAA;MAAA,sDAAoB;MAApB;IAAoB;EAAA;;EAApB;IAAA,oBAAoB;IAApB;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;;IAAA;MAAA;IAAoB;EAAA;;EAApB;IAAA,sBAAoB;IAApB,0EAAoB;IAApB,kBAAoB;IAApB,0EAAoB;IAApB,oBAAoB;IAApB;EAAoB;;EAApB;IAAA,oBAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA,qFAAoB;MAApB;IAAoB;EAAA;;EAApB;IAAA,oBAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA,qFAAoB;MAApB;IAAoB;EAAA;;EAApB;IAAA,oBAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA,qFAAoB;MAApB;IAAoB;EAAA;;EAApB;IAAA,oBAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA,uFAAoB;MAApB;IAAoB;EAAA;;EAApB;IAAA,oBAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA,uFAAoB;MAApB;IAAoB;EAAA;;EAApB;IAAA,oBAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA,uFAAoB;MAApB;IAAoB;EAAA;;EAApB;IAAA,oBAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA,uFAAoB;MAApB;IAAoB;EAAA;;EAApB;;;IAAA,sBAAoB;IAApB,wEAAoB;IAApB,oBAAoB;IAApB,iEAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA,qFAAoB;MAApB;IAAoB;EAAA;;EAApB;IAAA,eAAoB;IAApB,eAAoB;IAApB;EAAoB;;EAApB;IAAA,eAAoB;IAApB,8BAAoB;IAApB;EAAoB;;EAApB;;IAAA;MAAA;IAAoB;EAAA;;EAApB;;IAAA,mBAAoB;IAApB,iEAAoB;IAApB;EAAoB;AAAA;AAApB;EAAA;AAAoB;AAApB;EAAA,YAAoB;EAApB,cAAoB;EAApB,wBAAoB;EAApB,eAAoB;EAApB,cAAoB;EAApB,mBAAoB;EAApB,gBAAoB;EAApB,yCAAoB;EAApB,iBAAoB;EAApB,0EAAoB;EAApB,sBAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,uBAAoB;EAApB,oBAAoB;EAApB,YAAoB;EAApB,cAAoB;EAApB,eAAoB;EAApB,yBAAoB;UAApB,iBAAoB;EAApB,eAAoB;EAApB,mBAAoB;EAApB,uBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB,gBAAoB;EAApB,wKAAoB;EAApB,gKAAoB;EAApB,wJAAoB;EAApB,iLAAoB;EAApB,wDAAoB;EAApB,sDAAoB;EAApB,0BAAoB;EAApB,mBAAoB;EAApB,sBAAoB;EAApB,wEAAoB;EAApB,kBAAoB;EAApB,wEAAoB;EAApB,gBAAoB;EAApB,yBAAoB;EAApB,oBAAoB;EAApB,iEAAoB;EAApB,0BAAoB;EAApB,oCAAoB;EAApB;AAAoB;AAApB;EAAA,uBAAoB;EAApB,oBAAoB;EAApB,YAAoB;EAApB,cAAoB;EAApB,eAAoB;EAApB,yBAAoB;UAApB,iBAAoB;EAApB,eAAoB;EAApB,mBAAoB;EAApB,uBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB,gBAAoB;EAApB,gKAAoB;EAApB,wJAAoB;EAApB,iLAAoB;EAApB,wDAAoB;EAApB,sDAAoB;EAApB,0BAAoB;EAApB,mBAAoB;EAApB,sBAAoB;EAApB,wEAAoB;EAApB,kBAAoB;EAApB,wEAAoB;EAApB,gBAAoB;EAApB,yBAAoB;EAApB,oBAAoB;EAApB,iEAAoB;EAApB,0BAAoB;EAApB,oCAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,WAAoB;EAApB,mBAAoB;EAApB,kBAAoB;EAApB,gBAAoB;EAApB,eAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,mBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;;EAAA;IAAA;EAAoB;;EAApB;IAAA;EAAoB;AAAA;AAApB;EAAA,cAAoB;EAApB,wBAAoB;UAApB,gBAAoB;EAApB,YAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,eAAoB;EAApB,cAAoB;EAApB,mBAAoB;EAApB,yCAAoB;EAApB,iBAAoB;EAApB,yBAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;;EAAA,iBAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB,uBAAoB;EAApB;AAAoB;AAApB;EAAA,eAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA,0BAAoB;EAApB,wBAAoB;EAApB,0BAAoB;EAApB;AAAoB;AAApB;;EAAA,0BAAoB;EAApB,wBAAoB;EAApB,0BAAoB;EAApB;AAAoB;AAApB;;EAAA,0BAAoB;EAApB;AAAoB;AAApB;;EAAA,gCAAoB;EAApB;AAAoB;AAApB;;EAAA,gCAAoB;EAApB;AAAoB;AAApB;;EAAA,0BAAoB;EAApB;AAAoB;AAApB;;EAAA,gCAAoB;EAApB;AAAoB;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;EAAA,eAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,sBAAoB;EAApB,eAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA,kBAAoB;EAApB,mBAAoB;EAApB,yBAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,sBAAoB;EAApB,yBAAoB;EAApB,mBAAoB;EAApB,WAAoB;EAApB,6EAAoB;EAApB,6DAAoB;EAApB,yBAAoB;UAApB;AAAoB;AAApB;EAAA,mBAAoB;EAApB,yBAAoB;UAApB,iBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,kBAAoB;EAApB,aAAoB;EAApB,cAAoB;EAApB,sBAAoB;EAApB,eAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,oBAAoB;EAApB,eAAoB;EAApB,UAAoB;EAApB,WAAoB;EAApB,aAAoB;EAApB,YAAoB;EAApB,gBAAoB;EAApB,WAAoB;EAApB,eAAoB;EAApB,qBAAoB;EAApB,YAAoB;EAApB,UAAoB;EAApB,4BAAoB;EAApB,YAAoB;EAApB,6BAAoB;EAApB,cAAoB;EAApB,0BAAoB;EAApB,sDAAoB;EAApB,mDAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,6BAAoB;EAApB,oBAAoB;EAApB,iBAAoB;EAApB,iBAAoB;EAApB,gBAAoB;EAApB,gBAAoB;EAApB,gBAAoB;EAApB,+LAAoB;EAApB,oDAAoB;EAApB,mDAAoB;EAApB,gDAAoB;EAApB,iDAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB,eAAoB;EAApB,gKAAoB;EAApB,wJAAoB;EAApB,iLAAoB;EAApB,wDAAoB;EAApB,sDAAoB;EAApB,0BAAoB;EAApB,mDAAoB;EAApB,gBAAoB;EAApB;AAAoB;AAApB;;;;EAAA,oBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,gBAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,mBAAoB;EAApB,sCAAoB;EAApB,gBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,cAAoB;EAApB,kBAAoB;EAApB,cAAoB;EAApB,aAAoB;EAApB,eAAoB;EAApB,wBAAoB;UAApB,gBAAoB;EAApB,qBAAoB;EAApB,iBAAoB;EAApB,0EAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB,eAAoB;EAApB,yBAAoB;UAApB,iBAAoB;EAApB,wBAAoB;UAApB,gBAAoB;EAApB,YAAoB;EAApB,gBAAoB;EAApB,0BAAoB;EAApB,0BAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB,cAAoB;EAApB,yCAAoB;EAApB,iBAAoB;EAApB,yBAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB;8DAAoB;EAApB;uCAAoB;EAApB;WAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,aAAoB;EAApB;AAAoB;AAApB;;;EAAA;AAAoB;AAApB;EAAA,kBAAoB;EAApB,iBAAoB;EAApB,oBAAoB;EAApB,YAAoB;EAApB,eAAoB;EAApB,yBAAoB;UAApB,iBAAoB;EAApB,wBAAoB;UAApB,gBAAoB;EAApB,eAAoB;EAApB,mBAAoB;EAApB,uBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB,cAAoB;EAApB,mBAAoB;EAApB,sBAAoB;EAApB,kDAAoB;EAApB,+CAAoB;EAApB,yDAAoB;EAApB,uBAAoB;EAApB,8CAAoB;EAApB;AAAoB;AAApB;EAAA,WAAoB;EAApB,+BAAoB;EAApB;AAAoB;AAApB;EAAA,8BAAoB;EAApB;AAAoB;AAApB;EAAA,eAAoB;EAApB;AAAoB;AAApB;;EAAA;AAAoB;AAApB;;EAAA;AAAoB;AAApB;EAAA,kBAAoB;EAApB,WAAoB;EAApB,uCAAoB;EAApB,gBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,wBAAoB;EAApB,gBAAoB;EAApB,QAAoB;EAApB,UAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,wBAAoB;EAApB,gBAAoB;EAApB,WAAoB;EAApB,UAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,wBAAoB;EAApB,gBAAoB;EAApB,SAAoB;EAApB,UAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,gBAAoB;EAApB,cAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,mBAAoB;EAApB,sBAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB,cAAoB;EAApB,yCAAoB;EAApB,iBAAoB;EAApB,yBAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,cAAoB;EAApB,8CAAoB;EAApB,sBAAoB;EAApB,wDAAoB;EAApB,yBAAoB;EAApB,cAAoB;EAApB,WAAoB;EAApB,eAAoB;EAApB,wBAAoB;UAApB,gBAAoB;EAApB,2CAAoB;EAApB,iBAAoB;EAApB,0BAAoB;EAApB,8BAAoB;EAApB,8CAAoB;EAApB;oDAAoB;EAApB;;;AAAoB;AAApB;EAAA,qDAAoB;EAApB,oBAAoB;EAApB,mEAAoB;EAApB,iDAAoB;EAApB;AAAoB;AAApB;EAAA,qDAAoB;EAApB,oBAAoB;EAApB,mEAAoB;EAApB,iDAAoB;EAApB;AAAoB;AAApB;EAAA,qDAAoB;EAApB,oBAAoB;EAApB,mEAAoB;EAApB,iDAAoB;EAApB;AAAoB;AAApB;EAAA,qDAAoB;EAApB,oBAAoB;EAApB,mEAAoB;EAApB,iDAAoB;EAApB;AAAoB;AAApB;EAAA,sBAAoB;EAApB,wEAAoB;EAApB,kBAAoB;EAApB,wEAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;;EAAA,iCAAoB;EAApB;AAAoB;AAApB;;EAAA;IAAA,sDAAoB;IAApB;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;AAAA;AAApB;;EAAA;IAAA;;;;SAAoB;IAApB;;;;;EAAoB;;EAApB;IAAA,qFAAoB;IAApB;EAAoB;;EAApB;IAAA,qFAAoB;IAApB;EAAoB;;EAApB;IAAA,qFAAoB;IAApB;EAAoB;;EAApB;IAAA,uFAAoB;IAApB;EAAoB;;EAApB;IAAA,uFAAoB;IAApB;EAAoB;;EAApB;IAAA,uFAAoB;IAApB;EAAoB;;EAApB;IAAA,uFAAoB;IAApB;EAAoB;AAAA;AAApB;EAAA,oBAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB,iEAAoB;EAApB;AAAoB;AAApB;;EAAA;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;AAAA;AAApB;EAAA,oBAAoB;EAApB,iEAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB,iEAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB,iEAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB,mEAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB,mEAAoB;EAApB;AAAoB;AAApB;EAAA,sBAAoB;EAApB,8BAAoB;EAApB,uGAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,iBAAoB;EAApB,yBAAoB;EAApB,6BAAoB;EAApB,mBAAoB;EAApB,sBAAoB;EAApB,8BAAoB;EAApB,uGAAoB;EAApB;AAAoB;AAApB;EAAA,yBAAoB;EAApB;AAAoB;AAApB;EAAA,yBAAoB;EAApB,6BAAoB;EAApB;AAAoB;AAApB;EAAA,0BAAoB;EAApB,6BAAoB;EAApB,oBAAoB;EAApB,iEAAoB;EAApB,sBAAoB;EAApB,8BAAoB;EAApB;AAAoB;AAApB;EAAA,sBAAoB;EAApB,0EAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;;;EAAA,sBAAoB;EAApB,wEAAoB;EAApB,oBAAoB;EAApB,iEAAoB;EAApB;AAAoB;AAApB;;EAAA,sBAAoB;EAApB,wEAAoB;EAApB,kBAAoB;EAApB,wEAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;;EAAA;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;AAAA;AAApB;EAAA,gBAAoB;EAApB,kCAAoB;EAApB,gCAAoB;EAApB,8BAAoB;EAApB;AAAoB;AAApB;EAAA,gBAAoB;EAApB,gCAAoB;EAApB,8BAAoB;EAApB,gCAAoB;EAApB;AAAoB;AAApB;EAAA,+BAAoB;EAApB;AAAoB;AAApB;EAAA,iBAAoB;EAApB,sBAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,mBAAoB;EAApB,WAAoB;EAApB,kBAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA,gBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,oBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,iBAAoB;EAApB,mBAAoB;EAApB,yBAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB;AAAoB;AAApB;;EAAA,4BAAoB;EAApB,0DAAoB;EAApB,8BAAoB;EAApB;;;;;;;;;;;AAAoB;AAApB;EAAA,kBAAoB;EAApB,0EAAoB;EAApB,4BAAoB;EAApB,0DAAoB;EAApB;;;AAAoB;AAApB;;EAAA;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;AAAA;AAApB;EAAA;AAAoB;AAApB;;;EAAA,eAAoB;EAApB,eAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,oBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;;EAAA,mBAAoB;EAApB,sBAAoB;EAApB,0EAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB;AAAoB;AAApB;;EAAA,wEAAoB;EAApB;AAAoB;AAApB;EAAA,sBAAoB;EAApB,wEAAoB;EAApB,oBAAoB;EAApB,iEAAoB;EAApB;AAAoB;AAApB;EAAA,sBAAoB;EAApB,wEAAoB;EAApB,oBAAoB;EAApB,iEAAoB;EAApB;AAAoB;AAApB;EAAA,kBAAoB;EAApB,wEAAoB;EAApB;AAAoB;AAApB;EAAA,8BAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA;AAAoB;AAApB;;EAAA,gBAAoB;EAApB,qDAAoB;EAApB,oBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;;;;EAAA,mBAAoB;EAApB,sBAAoB;EAApB,0EAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB;AAAoB;AAApB;;;;EAAA,wEAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,eAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;;EAAA;;IAAA;MAAA;IAAoB;;IAApB;MAAA;IAAoB;;IAApB;MAAA;IAAoB;EAAA;AAAA;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB;AAAoB;AAApB;EAAA,8BAAoB;EAApB;AAAoB;AAApB;EAAA,+BAAoB;EAApB;AAAoB;AAApB;EAAA,oBAAoB;EAApB,qBAAoB;EAApB,mBAAoB;EAApB,aAAoB;EAApB,8BAAoB;EAApB,uBAAoB;UAApB,eAAoB;EAApB,8BAAoB;UAApB,sBAAoB;EAApB,6BAAoB;UAApB,qBAAoB;EAApB,2DAAoB;UAApB;AAAoB;AAApB;EAAA,2DAAoB;UAApB;AAAoB;AAApB;EAAA,kBAAoB;EAApB,0EAAoB;EAApB,YAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,kBAAoB;EAApB,eAAoB;EAApB,uBAAoB;EAApB,YAAoB;EAApB,UAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB,YAAoB;EAApB;AAAoB;AAApB;;EAAA,yCAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB,mBAAoB;EAApB,sBAAoB;EAApB,iBAAoB;EAApB,gKAAoB;EAApB,wJAAoB;EAApB,iLAAoB;EAApB,wDAAoB;EAApB,sDAAoB;EAApB,0BAAoB;EAApB;AAAoB;AAApB;EAAA,eAAoB;EAApB,yDAAoB;EAApB,oBAAoB;EAApB,iEAAoB;EAApB,8BAAoB;EAApB;AAAoB;AAApB;;;EAAA,kBAAoB;EAApB,wEAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;;EAAA,iBAAoB;EAApB,cAAoB;EAApB,mBAAoB;EAApB,cAAoB;EAApB,aAAoB;EAApB,wBAAoB;EAApB,0CAAoB;EAApB,yBAAoB;EAApB,wDAAoB;EAApB,WAAoB;EAApB,yBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;;EAAA,yBAAoB;EAApB;AAAoB;AAApB;EAAA,kBAAoB;EAApB,iBAAoB;EAApB,kBAAoB;EAApB,cAAoB;EAApB,eAAoB;EAApB,YAAoB;EAApB,gBAAoB;EAApB,uBAAoB;EAApB,mBAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,WAAoB;EAApB,kBAAoB;EAApB,YAAoB;EAApB,QAAoB;EAApB,mBAAoB;EAApB,eAAoB;EAApB,sBAAoB;EAApB,+LAAoB;EAApB,qBAAoB;EAApB,iBAAoB;EAApB,0BAAoB;EAApB;AAAoB;AAApB;EAAA,WAAoB;EAApB,kBAAoB;EAApB,aAAoB;EAApB,QAAoB;EAApB,cAAoB;EAApB,qBAAoB;EAApB,mBAAoB;EAApB,+LAAoB;EAApB,qBAAoB;EAApB,iBAAoB;EAApB,0BAAoB;EAApB;AAAoB;AAApB;;EAAA,uBAAoB;EAApB;AAAoB;AAApB;;;;EAAA,qBAAoB;EAApB,eAAoB;EAApB,eAAoB;EAApB;AAAoB;AAApB;EAAA,uBAAoB;EAApB,sDAAoB;EAApB;AAAoB;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;;EAAA;IAAA;EAAoB;AAAA;AAApB;EAAA;AAAoB;AAApB;EAAA,oBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;;EAAA,kBAAoB;EAApB,0EAAoB;EAApB,sBAAoB;EAApB,0DAAoB;EAApB;;AAAoB;AAApB;EAAA,mBAAoB;EAApB;AAAoB;AAApB;;EAAA;IAAA;;EAAoB;;EAApB;IAAA;;EAAoB;;EAApB;IAAA;;EAAoB;AAAA;AAApB;;EAAA;IAAA;EAAoB;;EAApB;IAAA;EAAoB;;EAApB;IAAA;EAAoB;AAAA;AAApB;EAAA;AAAoB;AAApB;EAAA,gBAAoB;EAApB,qDAAoB;EAApB,oBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;;;EAAA,mBAAoB;EAApB,sBAAoB;EAApB,0EAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB;AAAoB;AAApB;;;EAAA,wEAAoB;EAApB;AAAoB;AAApB;;;EAAA,sBAAoB;EAApB;AAAoB;AAApB;EAAA;;AAAoB;AAApB;;EAAA;IAAA;EAAoB;;EAApB;IAAA;EAAoB;AAAA;AAApB;EAAA,wBAAoB;EAApB;AAAoB;AAApB;EAAA,0EAAoB;EAApB,sBAAoB;EAApB;AAAoB;AAApB;EAAA,8BAAoB;EAApB;AAAoB;AAApB;EAAA,+BAAoB;EAApB;AAAoB;AAApB;;EAAA,mBAAoB;EAApB,iEAAoB;EAApB;AAAoB;AAApB;EAAA,0EAAoB;EAApB,wBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,gDAAoB;EAApB,0CAAoB;EAApB,oDAAoB;EAApB,kDAAoB;EAApB,4CAAoB;EAApB,8CAAoB;EAApB,4CAAoB;EAApB;AAAoB;AAApB;EAAA,+BAAoB;EAApB,oFAAoB;EAApB,kDAAoB;EAApB,gDAAoB;EAApB,yCAAoB;EAApB,6EAAoB;EAApB,2EAAoB;EAApB,sCAAoB;EAApB;AAAoB;AAApB;EAAA,UAAoB;EAApB,WAAoB;EAApB,cAAoB;EAApB,kBAAoB;EAApB,iDAAoB;EAApB,iCAAoB;EAApB,SAAoB;EAApB,0CAAoB;EAApB;iBAAoB;EAApB,4BAAoB;EAApB,8CAAoB;EAApB;;;;;;OAAoB;EAApB;;;;;;OAAoB;EAApB;AAAoB;AAApB;EAAA,mCAAoB;EAApB;AAAoB;AAApB;EAAA,qCAAoB;EAApB;AAAoB;AAApB;EAAA,qCAAoB;EAApB;AAAoB;AAApB;EAAA,mCAAoB;EAApB;AAAoB;AAApB;;;;EAAA,mCAAoB;EAApB;AAAoB;AAApB;EAAA,yCAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,kBAAoB;EAApB,wEAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,kBAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB,uBAAoB;EAApB;AAAoB;AAApB;;;EAAA,kBAAoB;EAApB;AAAoB;AAApB;EAAA,wBAAoB;EAApB,sBAAoB;EAApB;AAAoB;AAApB;EAAA,mBAAoB;EAApB,kBAAoB;EAApB,iBAAoB;EAApB,gBAAoB;EAApB;AAAoB;AAApB;EAAA,qBAAoB;EAApB,sBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,gBAAoB;EAApB,qDAAoB;EAApB,oBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;;;EAAA,mBAAoB;EAApB,sBAAoB;EAApB,0EAAoB;EAApB,kBAAoB;EAApB,0EAAoB;EAApB;AAAoB;AAApB;;;EAAA,wEAAoB;EAApB;AAAoB;AAApB;;EAAA;IAAA,qBAAoB;IAApB;EAAoB;;EAApB;IAAA,mBAAoB;IAApB;EAAoB;AAAA;AAApB;EAAA;AAAoB;AAApB;EAAA,oBAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;;EAAA,sBAAoB;EAApB,6CAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,oBAAoB;EAApB,iEAAoB;EAApB;;;AAAoB;AAApB;EAAA;;;AAAoB;AAApB;EAAA;AAAoB;AAApB;;EAAA,wEAAoB;EAApB,wBAAoB;EAApB,kBAAoB;EAApB,wEAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA,mBAAoB;EAApB,sBAAoB;EAApB,0EAAoB;EAApB,6BAAoB;EAApB,YAAoB;EAApB;;AAAoB;AAApB;EAAA,oBAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA,cAAoB;EAApB,kBAAoB;EAApB,oBAAoB;EAApB,qBAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,gBAAoB;EAApB,qBAAoB;EAApB,sBAAoB;EAApB;AAAoB;AAApB;EAAA,cAAoB;EAApB,aAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,WAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,WAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,WAAoB;EAApB;AAAoB;AAApB;EAAA,cAAoB;EAApB,aAAoB;EAApB,qBAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,WAAoB;EAApB,qBAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,WAAoB;EAApB,qBAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,WAAoB;EAApB,qBAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB;AAAoB;AAApB;EAAA,eAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,2BAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB;AAAoB;AAApB;EAAA,qBAAoB;EAApB;AAAoB;AAApB;EAAA,qBAAoB;EAApB;AAAoB;AAApB;EAAA,cAAoB;EAApB,oBAAoB;EAApB,qBAAoB;EAApB,kBAAoB;EAApB,iBAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,qBAAoB;EAApB,sBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;;EAAA,0BAAoB;EAApB,wBAAoB;EAApB,kCAAoB;EAApB;AAAoB;AAApB;;EAAA,4BAAoB;EAApB,0BAAoB;EAApB,gCAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;;EAAA,wBAAoB;EAApB,0BAAoB;EAApB,gCAAoB;EAApB;AAAoB;AAApB;;EAAA,0BAAoB;EAApB,4BAAoB;EAApB,8BAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,gBAAoB;EAApB,qBAAoB;EAApB,mBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,kBAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB,cAAoB;EAApB;AAAoB;AAApB;EAAA,YAAoB;EAApB,mBAAoB;EAApB,oBAAoB;EAApB,cAAoB;EAApB;AAAoB;AAApB;EAAA,cAAoB;EAApB,mBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,eAAoB;EAApB,kBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,aAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,kCAAoB;EAApB,eAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,gBAAoB;EAApB,iBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,eAAoB;EAApB,kBAAoB;EAApB;AAAoB;AAApB;EAAA;AAAoB;AAApB;EAAA,yCAAoB;EAApB,qBAAoB;EAApB,sBAAoB;EAApB,oBAAoB;EAApB,uBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,qBAAoB;EAApB,sBAAoB;EAApB,mBAAoB;EAApB;AAAoB;AAApB;EAAA,WAAoB;EAApB,eAAoB;EAApB,yBAAoB;EAApB,eAAoB;EAApB,eAAoB;EAApB,+LAAoB;EAApB,oDAAoB;EAApB,mDAAoB;EAApB,2BAAoB;EAApB;AAAoB;AAApB;EAAA,iBAAoB;EAApB,gBAAoB;EAApB,qBAAoB;EAApB,gBAAoB;EAApB,gBAAoB;EAApB,+LAAoB;EAApB,gDAAoB;EAApB,iDAAoB;EAApB,oDAAoB;EAApB;AAAoB;AAApB;EAAA,WAAoB;EAApB,eAAoB;EAApB,wBAAoB;EAApB,eAAoB;EAApB,eAAoB;EAApB,+LAAoB;EAApB,gDAAoB;EAApB,iDAAoB;EAApB,+BAAoB;EAApB;AAAoB;AACpB;EAAA,kBAAmB;EAAnB,UAAmB;EAAnB,WAAmB;EAAnB,UAAmB;EAAnB,YAAmB;EAAnB,gBAAmB;EAAnB,sBAAmB;EAAnB,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,wBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,+BAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,0BAAmB;EAAnB,uBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,0BAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,yBAAmB;UAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,4BAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,qBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,qBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,qBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,qBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,qBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,eAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,0EAAmB;EAAnB,8FAAmB;EAAnB;AAAmB;AAAnB;EAAA,+EAAmB;EAAnB,mGAAmB;EAAnB;AAAmB;AAAnB;EAAA,6EAAmB;EAAnB,iGAAmB;EAAnB;AAAmB;AAAnB;EAAA,8BAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,2GAAmB;EAAnB,yGAAmB;EAAnB;AAAmB;AAAnB;EAAA,2GAAmB;EAAnB,yGAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,gKAAmB;EAAnB,wJAAmB;EAAnB,iLAAmB;EAAnB,wDAAmB;EAAnB;AAAmB;AAAnB;EAAA,wBAAmB;EAAnB,wDAAmB;EAAnB;AAAmB;;AAEnB;EACE,uBAAuB;AACzB;;AAEA,iCAAiC;AACjC;EACE,aAAa;AACf;;AAEA;EACE,wBAAwB,EAAE,gBAAgB;EAC1C,qBAAqB,EAAE,YAAY;AACrC;;AAEA,kEAAkE;AAEhE;EAAA,kBAAiB;EAAjB;AAAiB;AAGjB;EAAA,kBAAmB;EAAnB;AAAmB;AAGnB;EAAA,kBAAc;EAAd;AAAc;AAGd;EAAA,kBAAiB;EAAjB;AAAiB;AAGjB;EAAA,kBAAiB;EAAjB;AAAiB;;AAGnB,4DAA4D;AAE1D;EAAA,oBAAmB;EAAnB;AAAmB;AAGnB;EAAA,oBAAqB;EAArB;AAAqB;AAGrB;EAAA,oBAAgB;EAAhB;AAAgB;AAGhB;EAAA,oBAAmB;EAAnB;AAAmB;AAGnB;EAAA,oBAAmB;EAAnB;AAAmB;AAGnB;EAAA,sBAAoB;EAApB;AAAoB;AAEtB,oCAAoC;AACpC;EACE,qBAAqB,EAAE,gBAAgB;EACvC,qBAAqB,EAAE,gBAAgB;AACzC;;AAEA,kDAAkD;AAClD;EACE,UAAU;AACZ;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,sBAAsB;EACtB,mBAAmB;AACrB;;AAxEA;;EAAA;IAAA,YAwEC;IAxED,gBAwEC;IAxED,qBAwEC;IAxED,sBAwEC;IAxED;EAwEC;;EAxED;IAAA,YAwEC;IAxED,gBAwEC;IAxED,kBAwEC;IAxED,mBAwEC;IAxED;EAwEC;;EAxED;IAAA,YAwEC;IAxED,WAwEC;IAxED;EAwEC;;EAxED;IAAA,YAwEC;IAxED,WAwEC;IAxED;EAwEC;;EAxED;IAAA,YAwEC;IAxED,WAwEC;IAxED,qBAwEC;IAxED;EAwEC;;EAxED;IAAA,YAwEC;IAxED,WAwEC;IAxED,qBAwEC;IAxED;EAwEC;AAAA;;AAxED;EAAA,0BAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED,sBAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED,kBAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED,wBAwEC;EAxED,wDAwEC;EAxED;AAwEC;;AAxED;EAAA,gBAwEC;EAxED;AAwEC;;AAxED;EAAA;AAwEC;;AAxED;EAAA;AAwEC;;AAxED;EAAA,kBAwEC;EAxED;AAwEC;;AAxED;EAAA;AAwEC;;AAxED;EAAA;AAwEC;;AAxED;EAAA,sBAwEC;EAxED;AAwEC;;AAxED;EAAA,sBAwEC;EAxED;AAwEC;;AAxED;EAAA;AAwEC;;AAxED;EAAA,kBAwEC;EAxED;AAwEC;;AAxED;EAAA;AAwEC;;AAxED;EAAA,oBAwEC;EAxED;AAwEC;;AAxED;EAAA,oBAwEC;EAxED;AAwEC;;AAxED;EAAA;AAwEC;;AAxED;EAAA;AAwEC;;AAxED;EAAA,+EAwEC;EAxED,mGAwEC;EAxED;AAwEC;;AAxED;EAAA,kBAwEC;EAxED;AAwEC;;AAxED;EAAA,8BAwEC;EAxED;AAwEC;;AAxED;EAAA,oBAwEC;EAxED;AAwEC;;AAxED;EAAA,sBAwEC;EAxED;AAwEC;;AAxED;EAAA,kBAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED,sBAwEC;EAxED;AAwEC;;AAxED;EAAA,0BAwEC;EAxED,sBAwEC;EAxED;AAwEC;;AAxED;EAAA,8BAwEC;EAxED;AAwEC;;AAxED;EAAA,2GAwEC;EAxED,yGAwEC;EAxED;AAwEC;;AAxED;EAAA,oBAwEC;EAxED;AAwEC;;AAxED;;EAAA;IAAA;EAwEC;AAAA;;AAxED;;EAAA;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA,gBAwEC;IAxED;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA,gBAwEC;IAxED;EAwEC;;EAxED;IAAA,oBAwEC;IAxED;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA,mBAwEC;IAxED;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA,eAwEC;IAxED;EAwEC;;EAxED;IAAA,mBAwEC;IAxED;EAwEC;;EAxED;IAAA,mBAwEC;IAxED;EAwEC;;EAxED;IAAA,kBAwEC;IAxED;EAwEC;AAAA;;AAxED;;EAAA;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA,gBAwEC;IAxED;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA,mBAwEC;IAxED;EAwEC;AAAA;;AAxED;;EAAA;IAAA;EAwEC;;EAxED;IAAA;EAwEC;AAAA;;AAxED;;EAAA;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA,kBAwEC;IAxED;EAwEC;;EAxED;IAAA,iBAwEC;IAxED;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;;EAxED;IAAA;EAwEC;AAAA;;AAxED;EAAA,0BAwEC;EAxED,uBAwEC;EAxED;AAwEC;;AAxED;;EAAA;IAAA,sBAwEC;IAxED;EAwEC;;EAxED;IAAA,kBAwEC;IAxED;EAwEC;AAAA","sourcesContent":["@tailwind base;\r\n@tailwind components;\r\n@tailwind utilities;\r\n\r\nbody {\r\n background-color: white;\r\n}\r\n\r\n/* Custom CSS to hide scrollbar */\r\n.hide-scrollbar::-webkit-scrollbar {\r\n display: none;\r\n}\r\n\r\n.hide-scrollbar {\r\n -ms-overflow-style: none; /* IE and Edge */\r\n scrollbar-width: none; /* Firefox */\r\n}\r\n\r\n/* below css class replace bootstrap background color with daisy */\r\n.op-bg-primary {\r\n @apply bg-primary;\r\n}\r\n.op-bg-secondary {\r\n @apply bg-secondary;\r\n}\r\n.op-bg-info {\r\n @apply bg-info;\r\n}\r\n.op-bg-success{\r\n @apply bg-success;\r\n}\r\n.op-bg-warning {\r\n @apply bg-warning;\r\n}\r\n\r\n/* below css class replace bootstrap text color with daisy */\r\n.op-text-primary {\r\n @apply text-primary;\r\n}\r\n.op-text-secondary {\r\n @apply text-secondary;\r\n}\r\n.op-text-info {\r\n @apply text-info;\r\n}\r\n.op-text-success{\r\n @apply text-success;\r\n}\r\n.op-text-warning {\r\n @apply text-warning;\r\n}\r\n.op-border-primary{\r\n @apply border-primary\r\n}\r\n/* CSS for scrollbar customization */\r\n* {\r\n scrollbar-width: thin; /* For Firefox */\r\n scrollbar-color: gray; /* For Firefox */\r\n}\r\n\r\n/* For webkit-based browsers like Chrome, Safari */\r\n*::-webkit-scrollbar {\r\n width: 5px;\r\n}\r\n\r\n*::-webkit-scrollbar-track {\r\n background-color: transparent;\r\n}\r\n\r\n*::-webkit-scrollbar-thumb {\r\n background-color: gray;\r\n border-radius: 10px;\r\n}"],"sourceRoot":""}]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/styles/opensigndrive.css": +/*!**********************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/styles/opensigndrive.css ***! + \**********************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_radix_ui_colors_black_alpha_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! -!../../node_modules/css-loader/dist/cjs.js!../../node_modules/@radix-ui/colors/black-alpha.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/@radix-ui/colors/black-alpha.css"); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_radix_ui_colors_mauve_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! -!../../node_modules/css-loader/dist/cjs.js!../../node_modules/@radix-ui/colors/mauve.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/@radix-ui/colors/mauve.css"); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_radix_ui_colors_violet_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! -!../../node_modules/css-loader/dist/cjs.js!../../node_modules/@radix-ui/colors/violet.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/@radix-ui/colors/violet.css"); +// Imports + + + + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_node_modules_radix_ui_colors_black_alpha_css__WEBPACK_IMPORTED_MODULE_2__["default"]); +___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_node_modules_radix_ui_colors_mauve_css__WEBPACK_IMPORTED_MODULE_3__["default"]); +___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_node_modules_radix_ui_colors_violet_css__WEBPACK_IMPORTED_MODULE_4__["default"]); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.ContextMenuContent, +.ContextMenuSubContent { + min-width: 135px; + background-color: white; + border-radius: 6px; + overflow: hidden; + padding: 5px; + box-shadow: + 0px 10px 38px -10px rgba(22, 23, 24, 0.35), + 0px 10px 20px -15px rgba(22, 23, 24, 0.2); + z-index: 99; +} + +.ContextMenuItem, +.ContextMenuCheckboxItem, +.ContextMenuRadioItem, +.ContextMenuSubTrigger { + font-size: 13px; + line-height: 1; + color: var(--violet-11); + border-radius: 3px; + display: flex; + align-items: center; + height: 25px; + padding: 0 5px; + position: relative; + padding-left: 15px; + -webkit-user-select: none; + user-select: none; + outline: none; +} + +.ContextMenuSubTrigger[data-state="open"] { + background-color: gray; + color: var(--violet-11); +} + +.ContextMenuItem[data-disabled], +.ContextMenuCheckboxItem[data-disabled], +.ContextMenuRadioItem[data-disabled], +.ContextMenuSubTrigger[data-disabled] { + color: var(--mauve-8); + pointer-events: "none"; +} + +.ContextMenuItem[data-highlighted], +.ContextMenuCheckboxItem[data-highlighted], +.ContextMenuRadioItem[data-highlighted], +.ContextMenuSubTrigger[data-highlighted] { + background-color: #dad9db; + color: var(--violet-11); +} + +.ContextMenuLabel { + padding-left: 25px; + font-size: 12px; + line-height: 25px; + color: var(--mauve-11); +} + +.ContextMenuItemIndicator { + position: absolute; + left: 0; + width: 25px; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.RightSlot { + margin-left: auto; + padding-left: 20px; + color: var(--mauve-11); +} + +[data-highlighted] > .RightSlot { + color: white; +} + +[data-disabled] .RightSlot { + color: var(--mauve-8); +} + +.dropdown-menu { + min-width: 10rem; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.3rem 1.2rem; + clear: both; + font-weight: 400; + color: #393a39; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; + cursor: pointer; +} + +.dropdown-item:hover { + background-color: #dad9db; + color: var(--violet-11); +} + +.modal { + margin-top: 50px; +} +.pdfName { + font-size: 10px; + font-weight: 600; +} + + +.hrStyle { + margin-top: 0rem !important; + margin-bottom: 0rem !important; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +.status-badge { + position: absolute; + top: 0; + right: 0; + background-color: #fff; + width: 24px; + height: 24px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50%; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); +} + +.status-badge i { + font-size: 12px; +} + +/* Status-specific colors */ +.completed { + background-color: #4caf50; + color: #fff; +} + +.in-progress { + background-color: #ffc107; + color: #fff; +} + +.declined { + background-color: #f44336; + color: #fff; +} + +.expired { + background-color: #9e9e9e; + color: #fff; +} + +.draft { + background-color: #079cdc; + color: #fff; +} + + +.sort { + padding: 8px 15px; + margin: 5px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; +} + +.sort:hover { + box-shadow: 0 2px 4px rgba(168, 204, 206, 0.1); + background-color: var(--mauve-3); + border-radius: 2px; +} + +.fileName { + display: inline-block; + width: 100px; + white-space: nowrap; + overflow: hidden !important; + text-overflow: ellipsis; + font-size: 11px; + text-align: center; + font-weight: 480; +} + +a { + all: unset; +} + +.HoverCardContent { + border-radius: 6px; + padding: 5px 10px; + width: 170px; + background-color: white; + box-shadow: + hsl(206 22% 7% / 35%) 0px 10px 38px -10px, + hsl(206 22% 7% / 20%) 0px 10px 20px -15px; + animation-duration: 400ms; + animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); + will-change: transform, opacity; + text-align: center; + align-items: center; +} + +.HoverCardContent[data-side="top"] { + animation-name: slideDownAndFade; +} + +.HoverCardContent[data-side="right"] { + animation-name: slideLeftAndFade; +} + +.HoverCardContent[data-side="bottom"] { + animation-name: slideUpAndFade; +} + +.HoverCardContent[data-side="left"] { + animation-name: slideRightAndFade; +} + +.HoverCardArrow { + fill: white; +} + +@keyframes slideUpAndFade { + 0% { + opacity: 0; + transform: translateY(2px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes slideRightAndFade { + 0% { + opacity: 0; + transform: translateX(-2px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes slideDownAndFade { + 0% { + opacity: 0; + transform: translateY(-2px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes slideLeftAndFade { + 0% { + opacity: 0; + transform: translateX(2px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +@media (min-width: 310px) and (max-width: 550px) { + .sort { + padding: 2px; + } +} + +@media screen and (max-width: 309px) { + .sort { + padding: 2px; + } +} +`, "",{"version":3,"sources":["webpack://./src/styles/opensigndrive.css"],"names":[],"mappings":"AAIA;;EAEE,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;EAClB,gBAAgB;EAChB,YAAY;EACZ;;6CAE2C;EAC3C,WAAW;AACb;;AAEA;;;;EAIE,eAAe;EACf,cAAc;EACd,uBAAuB;EACvB,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,yBAAiB;UAAjB,iBAAiB;EACjB,aAAa;AACf;;AAEA;EACE,sBAAsB;EACtB,uBAAuB;AACzB;;AAEA;;;;EAIE,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;;;;EAIE,yBAAyB;EACzB,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,eAAe;EACf,iBAAiB;EACjB,sBAAsB;AACxB;;AAEA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,iBAAiB;EACjB,kBAAkB;EAClB,sBAAsB;AACxB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;EACd,WAAW;EACX,sBAAsB;EACtB,WAAW;EACX,gBAAgB;EAChB,cAAc;EACd,mBAAmB;EACnB,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,eAAe;AACjB;;AAEA;EACE,yBAAyB;EACzB,uBAAuB;AACzB;;AAEA;EACE,gBAAgB;AAClB;AACA;EACE,eAAe;EACf,gBAAgB;AAClB;;;AAGA;EACE,2BAA2B;EAC3B,8BAA8B;EAC9B,SAAS;EACT,wCAAwC;AAC1C;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,sBAAsB;EACtB,WAAW;EACX,YAAY;EACZ,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,kBAAkB;EAClB,wCAAwC;AAC1C;;AAEA;EACE,eAAe;AACjB;;AAEA,2BAA2B;AAC3B;EACE,yBAAyB;EACzB,WAAW;AACb;;AAEA;EACE,yBAAyB;EACzB,WAAW;AACb;;AAEA;EACE,yBAAyB;EACzB,WAAW;AACb;;AAEA;EACE,yBAAyB;EACzB,WAAW;AACb;;AAEA;EACE,yBAAyB;EACzB,WAAW;AACb;;;AAGA;EACE,iBAAiB;EACjB,WAAW;EACX,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;AACjB;;AAEA;EACE,8CAA8C;EAC9C,gCAAgC;EAChC,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;EACrB,YAAY;EACZ,mBAAmB;EACnB,2BAA2B;EAC3B,uBAAuB;EACvB,eAAe;EACf,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,YAAY;EACZ,uBAAuB;EACvB;;6CAE2C;EAC3C,yBAAyB;EACzB,wDAAwD;EACxD,+BAA+B;EAC/B,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,WAAW;AACb;;AAEA;EACE;IACE,UAAU;IACV,0BAA0B;EAC5B;;EAEA;IACE,UAAU;IACV,wBAAwB;EAC1B;AACF;;AAEA;EACE;IACE,UAAU;IACV,2BAA2B;EAC7B;;EAEA;IACE,UAAU;IACV,wBAAwB;EAC1B;AACF;;AAEA;EACE;IACE,UAAU;IACV,2BAA2B;EAC7B;;EAEA;IACE,UAAU;IACV,wBAAwB;EAC1B;AACF;;AAEA;EACE;IACE,UAAU;IACV,0BAA0B;EAC5B;;EAEA;IACE,UAAU;IACV,wBAAwB;EAC1B;AACF;;AAEA;EACE;IACE,YAAY;EACd;AACF;;AAEA;EACE;IACE,YAAY;EACd;AACF","sourcesContent":["@import \"@radix-ui/colors/black-alpha.css\";\r\n@import \"@radix-ui/colors/mauve.css\";\r\n@import \"@radix-ui/colors/violet.css\";\r\n\r\n.ContextMenuContent,\r\n.ContextMenuSubContent {\r\n min-width: 135px;\r\n background-color: white;\r\n border-radius: 6px;\r\n overflow: hidden;\r\n padding: 5px;\r\n box-shadow:\r\n 0px 10px 38px -10px rgba(22, 23, 24, 0.35),\r\n 0px 10px 20px -15px rgba(22, 23, 24, 0.2);\r\n z-index: 99;\r\n}\r\n\r\n.ContextMenuItem,\r\n.ContextMenuCheckboxItem,\r\n.ContextMenuRadioItem,\r\n.ContextMenuSubTrigger {\r\n font-size: 13px;\r\n line-height: 1;\r\n color: var(--violet-11);\r\n border-radius: 3px;\r\n display: flex;\r\n align-items: center;\r\n height: 25px;\r\n padding: 0 5px;\r\n position: relative;\r\n padding-left: 15px;\r\n user-select: none;\r\n outline: none;\r\n}\r\n\r\n.ContextMenuSubTrigger[data-state=\"open\"] {\r\n background-color: gray;\r\n color: var(--violet-11);\r\n}\r\n\r\n.ContextMenuItem[data-disabled],\r\n.ContextMenuCheckboxItem[data-disabled],\r\n.ContextMenuRadioItem[data-disabled],\r\n.ContextMenuSubTrigger[data-disabled] {\r\n color: var(--mauve-8);\r\n pointer-events: \"none\";\r\n}\r\n\r\n.ContextMenuItem[data-highlighted],\r\n.ContextMenuCheckboxItem[data-highlighted],\r\n.ContextMenuRadioItem[data-highlighted],\r\n.ContextMenuSubTrigger[data-highlighted] {\r\n background-color: #dad9db;\r\n color: var(--violet-11);\r\n}\r\n\r\n.ContextMenuLabel {\r\n padding-left: 25px;\r\n font-size: 12px;\r\n line-height: 25px;\r\n color: var(--mauve-11);\r\n}\r\n\r\n.ContextMenuItemIndicator {\r\n position: absolute;\r\n left: 0;\r\n width: 25px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.RightSlot {\r\n margin-left: auto;\r\n padding-left: 20px;\r\n color: var(--mauve-11);\r\n}\r\n\r\n[data-highlighted] > .RightSlot {\r\n color: white;\r\n}\r\n\r\n[data-disabled] .RightSlot {\r\n color: var(--mauve-8);\r\n}\r\n\r\n.dropdown-menu {\r\n min-width: 10rem;\r\n}\r\n\r\n.dropdown-item {\r\n display: block;\r\n width: 100%;\r\n padding: 0.3rem 1.2rem;\r\n clear: both;\r\n font-weight: 400;\r\n color: #393a39;\r\n text-align: inherit;\r\n white-space: nowrap;\r\n background-color: transparent;\r\n border: 0;\r\n cursor: pointer;\r\n}\r\n\r\n.dropdown-item:hover {\r\n background-color: #dad9db;\r\n color: var(--violet-11);\r\n}\r\n\r\n.modal {\r\n margin-top: 50px;\r\n}\r\n.pdfName {\r\n font-size: 10px;\r\n font-weight: 600;\r\n}\r\n\r\n\r\n.hrStyle {\r\n margin-top: 0rem !important;\r\n margin-bottom: 0rem !important;\r\n border: 0;\r\n border-top: 1px solid rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.status-badge {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n background-color: #fff;\r\n width: 24px;\r\n height: 24px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: 50%;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.status-badge i {\r\n font-size: 12px;\r\n}\r\n\r\n/* Status-specific colors */\r\n.completed {\r\n background-color: #4caf50;\r\n color: #fff;\r\n}\r\n\r\n.in-progress {\r\n background-color: #ffc107;\r\n color: #fff;\r\n}\r\n\r\n.declined {\r\n background-color: #f44336;\r\n color: #fff;\r\n}\r\n\r\n.expired {\r\n background-color: #9e9e9e;\r\n color: #fff;\r\n}\r\n\r\n.draft {\r\n background-color: #079cdc;\r\n color: #fff;\r\n}\r\n\r\n\r\n.sort {\r\n padding: 8px 15px;\r\n margin: 5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n}\r\n\r\n.sort:hover {\r\n box-shadow: 0 2px 4px rgba(168, 204, 206, 0.1);\r\n background-color: var(--mauve-3);\r\n border-radius: 2px;\r\n}\r\n\r\n.fileName {\r\n display: inline-block;\r\n width: 100px;\r\n white-space: nowrap;\r\n overflow: hidden !important;\r\n text-overflow: ellipsis;\r\n font-size: 11px;\r\n text-align: center;\r\n font-weight: 480;\r\n}\r\n\r\na {\r\n all: unset;\r\n}\r\n\r\n.HoverCardContent {\r\n border-radius: 6px;\r\n padding: 5px 10px;\r\n width: 170px;\r\n background-color: white;\r\n box-shadow:\r\n hsl(206 22% 7% / 35%) 0px 10px 38px -10px,\r\n hsl(206 22% 7% / 20%) 0px 10px 20px -15px;\r\n animation-duration: 400ms;\r\n animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);\r\n will-change: transform, opacity;\r\n text-align: center;\r\n align-items: center;\r\n}\r\n\r\n.HoverCardContent[data-side=\"top\"] {\r\n animation-name: slideDownAndFade;\r\n}\r\n\r\n.HoverCardContent[data-side=\"right\"] {\r\n animation-name: slideLeftAndFade;\r\n}\r\n\r\n.HoverCardContent[data-side=\"bottom\"] {\r\n animation-name: slideUpAndFade;\r\n}\r\n\r\n.HoverCardContent[data-side=\"left\"] {\r\n animation-name: slideRightAndFade;\r\n}\r\n\r\n.HoverCardArrow {\r\n fill: white;\r\n}\r\n\r\n@keyframes slideUpAndFade {\r\n 0% {\r\n opacity: 0;\r\n transform: translateY(2px);\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n}\r\n\r\n@keyframes slideRightAndFade {\r\n 0% {\r\n opacity: 0;\r\n transform: translateX(-2px);\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n}\r\n\r\n@keyframes slideDownAndFade {\r\n 0% {\r\n opacity: 0;\r\n transform: translateY(-2px);\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n}\r\n\r\n@keyframes slideLeftAndFade {\r\n 0% {\r\n opacity: 0;\r\n transform: translateX(2px);\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n}\r\n\r\n@media (min-width: 310px) and (max-width: 550px) {\r\n .sort {\r\n padding: 2px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 309px) {\r\n .sort {\r\n padding: 2px;\r\n }\r\n}\r\n"],"sourceRoot":""}]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/styles/signature.css": +/*!******************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/styles/signature.css ***! + \******************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +___CSS_LOADER_EXPORT___.push([module.id, "@import url(https://fonts.googleapis.com/css2?family=Fasthand&display=swap);"]); +___CSS_LOADER_EXPORT___.push([module.id, "@import url(https://fonts.googleapis.com/css2?family=Dancing+Script&display=swap);"]); +___CSS_LOADER_EXPORT___.push([module.id, "@import url(https://fonts.googleapis.com/css2?family=Delicious+Handrawn&display=swap);"]); +___CSS_LOADER_EXPORT___.push([module.id, "@import url(https://fonts.googleapis.com/css2?family=Cedarville+Cursive&display=swap);"]); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.react-datepicker__input-container { + position: initial !important; +} + +.widgets { + -webkit-user-select: none; + /* Disable text selection in WebKit browsers */ + user-select: none; +} + +.radioButton { + width: 100%; + height: 100%; + position: absolute; + left: 0px; + top: 0px; + font-size: 12px; + border: 1px solid #007bff; + border-radius: 50px; +} + +.signatureCanvas { + border: 2px solid #888; + background-color: rgb(255, 255, 255); + width: 460px; + height: 184px; +} + +.intialSignatureCanvas { + border: 2px solid #888; + background-color: rgb(255, 255, 255); + width: 150px; + height: 150px; +} + +.intialSignature { + border: 2px solid #888; + background-color: rgb(255, 255, 255); + width: 183px; + height: 183px; +} + +.penContainerDefault { + width: 460px; +} + +.icon { + position: absolute; + font-size: 14px; + cursor: pointer; + z-index: 2; + background: white; +} + +.ScrollbarsCustom-TrackY { + width: 4px !important; +} +.ScrollbarsCustom-TrackX { + height: 4px !important; +} + +.signYourselfBlock { + padding: 0px; + display: flex !important; + justify-content: center !important; + align-items: center !important; +} + +.sendMail { + box-shadow: + 0 1px 3px rgba(0, 0, 0, 0.1), + 0 1px 2px rgba(0, 0, 0, 0.18); + padding: 3px 30px; + color: white; + font-weight: 500 !important; + font-size: 14px !important; + border: none; + margin-left: 10px; +} + +.user { + white-space: nowrap; + overflow: hidden !important; + text-overflow: ellipsis; +} +.disabled { + opacity: 0.5; + /* Example: reduce opacity to visually indicate disabled state */ + pointer-events: none; + /* Prevents mouse clicks and other events */ + /* background-color: #888; */ +} + +.signTab { + cursor: pointer !important; + font-weight: 400 !important; + margin: 7px !important; + font-size: 15px !important; +} + +.signerComponent { + /* box-shadow: rgba(17, 12, 46, 0.15) 0px 48px 100px 0px; */ + /* width: 180px; */ + background-color: white; +} + +.uploadImgLogo { + font-size: 50px; +} + +.DropdownMenuContent, +.DropdownMenuSubContent { + min-width: 130px; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; + padding: 5px; + animation-duration: 400ms; + animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); + will-change: transform, opacity; + z-index: 30 !important; +} + +.DropdownMenuContent[data-side="top"], +.DropdownMenuSubContent[data-side="top"] { + animation-name: slideDownAndFade; +} + +.DropdownMenuContent[data-side="right"], +.DropdownMenuSubContent[data-side="right"] { + animation-name: slideLeftAndFade; +} + +.DropdownMenuContent[data-side="bottom"], +.DropdownMenuSubContent[data-side="bottom"] { + animation-name: slideUpAndFade; +} + +.DropdownMenuContent[data-side="left"], +.DropdownMenuSubContent[data-side="left"] { + animation-name: slideRightAndFade; +} + +.DropdownMenuItem { + font-size: 13px; + line-height: 1; + color: black; + background-color: #fff; + display: flex; + align-items: center; + height: 25px; + padding: 0 5px; + position: relative; + padding-left: 20px; + -webkit-user-select: none; + user-select: none; + outline: none; + border: none; +} + +.SelectTrigger { + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 4px; + padding: 0 70px; + font-size: 13px; + line-height: 1; + height: 35px; + gap: 5px; + border: none; + background-color: #887abf; + width: 100px; + white-space: nowrap; + overflow: hidden !important; + text-overflow: ellipsis; +} + +.selectEmail { + align-items: center; + justify-content: center; + border-radius: 4px; + padding: 0 15px; + font-size: 13px; + line-height: 1; + height: 35px; + gap: 5px; + border: none; + background-color: #887abf; + width: 200px; + white-space: nowrap; + overflow: hidden !important; + text-overflow: ellipsis; +} + +option { + overflow-y: scroll; +} + +.SelectTrigger:hover { + border: none; + outline: none; +} + +.selectEmail:hover { + border: none; + outline: none; +} + +.SelectTrigger:focus { + /* box-shadow: 0 0 0 2px black; */ + border: none; + outline: none; +} + +.selectEmail:focus { + /* box-shadow: 0 0 0 2px black; */ + border: none; + outline: none; +} + +.SelectTrigger[data-placeholder] { + color: black; +} + +.SelectIcon { + color: Var(--violet-11); +} + +.SelectContent { + overflow: hidden; + background-color: white; + border-radius: 6px; + box-shadow: + 0px 10px 38px -10px rgba(22, 23, 24, 0.35), + 0px 10px 20px -15px rgba(22, 23, 24, 0.2); +} + +.SelectViewport { + padding: 5px; +} + +.SelectItem { + font-size: 13px; + line-height: 1; + color: var(--violet-11); + border-radius: 3px; + display: flex; + align-items: center; + height: 25px; + padding: 0 35px 0 25px; + position: relative; + -webkit-user-select: none; + user-select: none; + z-index: 10 !important; +} + +.SelectItem[data-disabled] { + color: var(--mauve-8); + pointer-events: none; +} + +.SelectItem[data-highlighted] { + outline: none; + background-color: var(--violet-9); + color: var(--violet-1); +} + +.SelectLabel { + padding: 0 25px; + font-size: 12px; + line-height: 25px; + color: var(--mauve-11); +} + +.SelectSeparator { + height: 1px; + background-color: var(--violet-6); + margin: 5px; +} + +.SelectItemIndicator { + position: absolute; + left: 0; + width: 25px; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.SelectScrollButton { + display: flex; + align-items: center; + justify-content: center; + height: 25px; + background-color: white; + color: var(--violet-11); + cursor: default; +} + +.dropDownStyle { + width: auto; +} + +.autoSignScroll { + overflow-y: auto; +} + +.autoSignScroll::-webkit-scrollbar { + display: none; +} + +.validateInputText { + width: 76%; +} + +.radioGroupInput { + width: 100%; +} + +.radioGroup { + display: flex; + flex-direction: column; + justify-content: flex-start; +} + +@media screen and (max-width: 766px) { + .validateInputText { + width: 93%; + } + + .dropdown-menu { + min-width: 0rem !important; + } + + #navbar { + overflow: hidden; + z-index: 49; + } + + /* Navbar links */ + #navbar a { + float: left; + display: block; + color: #f2f2f2; + text-align: center; + padding: 14px; + text-decoration: none; + } + + #navbar a.active { + background-color: #4caf50; + color: white; + } + + /* Page content */ + .content { + padding: 16px; + } + + /* The sticky class is added to the navbar + with JS when it reaches its scroll position */ + .stickyHead { + top: 50px; + left: 0.9rem; + } + + .stickySignerHead { + position: fixed; + } + + /* Add some top padding to the page content + to prevent sudden quick movement (as the + navigation bar gets a new position at the top of the + page (position:fixed and top:0) */ + .stickyHead + .content { + padding-top: 60px; + } +} + +@media screen and (max-width: 487px) and (min-width: 351px) { + .signatureCanvas { + width: 300px; + height: 120px; + } + + .penContainerDefault { + width: 300px; + } + + .uploadImgLogo { + font-size: 30px; + } + + .signTab { + font-weight: 500 !important; + font-size: 12px !important; + } +} + +.scroll-hide::-webkit-scrollbar { + display: none; +} +@media screen and (max-width: 350px) and (min-width: 311px) { + .signatureCanvas { + width: 280px; + height: 112px; + } + + .penContainerDefault { + width: 280px; + } + + .signTab { + font-weight: 500 !important; + + font-size: 10px !important; + } + + .uploadImgLogo { + font-size: 25px; + } +} + +@media screen and (max-width: 310px) { + .signatureCanvas { + width: 230px; + height: 92px; + } + + .penContainerDefault { + width: 230px; + } + + .signTab { + font-weight: 500 !important; + font-size: 8px !important; + } + + .uploadImgLogo { + font-size: 20px; + } +} +`, "",{"version":3,"sources":["webpack://./src/styles/signature.css"],"names":[],"mappings":"AAKA;EACE,4BAA4B;AAC9B;;AAEA;EACE,yBAAyB;EACzB,8CAA8C;EAE9C,iBAAiB;AACnB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,eAAe;EACf,yBAAyB;EACzB,mBAAmB;AACrB;;AAEA;EACE,sBAAsB;EACtB,oCAAoC;EACpC,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,sBAAsB;EACtB,oCAAoC;EACpC,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,sBAAsB;EACtB,oCAAoC;EACpC,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,eAAe;EACf,eAAe;EACf,UAAU;EACV,iBAAiB;AACnB;;AAEA;EACE,qBAAqB;AACvB;AACA;EACE,sBAAsB;AACxB;;AAEA;EACE,YAAY;EACZ,wBAAwB;EACxB,kCAAkC;EAClC,8BAA8B;AAChC;;AAEA;EACE;;iCAE+B;EAC/B,iBAAiB;EACjB,YAAY;EACZ,2BAA2B;EAC3B,0BAA0B;EAC1B,YAAY;EACZ,iBAAiB;AACnB;;AAEA;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,gEAAgE;EAChE,oBAAoB;EACpB,2CAA2C;EAC3C,4BAA4B;AAC9B;;AAEA;EACE,0BAA0B;EAC1B,2BAA2B;EAC3B,sBAAsB;EACtB,0BAA0B;AAC5B;;AAEA;EACE,2DAA2D;EAC3D,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;EACE,eAAe;AACjB;;AAEA;;EAEE,gBAAgB;EAChB,sBAAsB;EACtB,qCAAqC;EACrC,sBAAsB;EACtB,YAAY;EACZ,yBAAyB;EACzB,wDAAwD;EACxD,+BAA+B;EAC/B,sBAAsB;AACxB;;AAEA;;EAEE,gCAAgC;AAClC;;AAEA;;EAEE,gCAAgC;AAClC;;AAEA;;EAEE,8BAA8B;AAChC;;AAEA;;EAEE,iCAAiC;AACnC;;AAEA;EACE,eAAe;EACf,cAAc;EACd,YAAY;EACZ,sBAAsB;EACtB,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,yBAAiB;UAAjB,iBAAiB;EACjB,aAAa;EACb,YAAY;AACd;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,eAAe;EACf,eAAe;EACf,cAAc;EACd,YAAY;EACZ,QAAQ;EACR,YAAY;EACZ,yBAAyB;EACzB,YAAY;EACZ,mBAAmB;EACnB,2BAA2B;EAC3B,uBAAuB;AACzB;;AAEA;EACE,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,eAAe;EACf,eAAe;EACf,cAAc;EACd,YAAY;EACZ,QAAQ;EACR,YAAY;EACZ,yBAAyB;EACzB,YAAY;EACZ,mBAAmB;EACnB,2BAA2B;EAC3B,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,iCAAiC;EACjC,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,iCAAiC;EACjC,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;EAClB;;6CAE2C;AAC7C;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,eAAe;EACf,cAAc;EACd,uBAAuB;EACvB,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,sBAAsB;EACtB,kBAAkB;EAClB,yBAAiB;UAAjB,iBAAiB;EACjB,sBAAsB;AACxB;;AAEA;EACE,qBAAqB;EACrB,oBAAoB;AACtB;;AAEA;EACE,aAAa;EACb,iCAAiC;EACjC,sBAAsB;AACxB;;AAEA;EACE,eAAe;EACf,eAAe;EACf,iBAAiB;EACjB,sBAAsB;AACxB;;AAEA;EACE,WAAW;EACX,iCAAiC;EACjC,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,uBAAuB;EACvB,uBAAuB;EACvB,eAAe;AACjB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,2BAA2B;AAC7B;;AAEA;EACE;IACE,UAAU;EACZ;;EAEA;IACE,0BAA0B;EAC5B;;EAEA;IACE,gBAAgB;IAChB,WAAW;EACb;;EAEA,iBAAiB;EACjB;IACE,WAAW;IACX,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,aAAa;IACb,qBAAqB;EACvB;;EAEA;IACE,yBAAyB;IACzB,YAAY;EACd;;EAEA,iBAAiB;EACjB;IACE,aAAa;EACf;;EAEA;+CAC6C;EAC7C;IACE,SAAS;IACT,YAAY;EACd;;EAEA;IACE,eAAe;EACjB;;EAEA;;;mCAGiC;EACjC;IACE,iBAAiB;EACnB;AACF;;AAEA;EACE;IACE,YAAY;IACZ,aAAa;EACf;;EAEA;IACE,YAAY;EACd;;EAEA;IACE,eAAe;EACjB;;EAEA;IACE,2BAA2B;IAC3B,0BAA0B;EAC5B;AACF;;AAEA;EACE,aAAa;AACf;AACA;EACE;IACE,YAAY;IACZ,aAAa;EACf;;EAEA;IACE,YAAY;EACd;;EAEA;IACE,2BAA2B;;IAE3B,0BAA0B;EAC5B;;EAEA;IACE,eAAe;EACjB;AACF;;AAEA;EACE;IACE,YAAY;IACZ,YAAY;EACd;;EAEA;IACE,YAAY;EACd;;EAEA;IACE,2BAA2B;IAC3B,yBAAyB;EAC3B;;EAEA;IACE,eAAe;EACjB;AACF","sourcesContent":["@import url(\"https://fonts.googleapis.com/css2?family=Fasthand&display=swap\");\r\n@import url(\"https://fonts.googleapis.com/css2?family=Dancing+Script&display=swap\");\r\n@import url(\"https://fonts.googleapis.com/css2?family=Delicious+Handrawn&display=swap\");\r\n@import url(\"https://fonts.googleapis.com/css2?family=Cedarville+Cursive&display=swap\");\r\n\r\n.react-datepicker__input-container {\r\n position: initial !important;\r\n}\r\n\r\n.widgets {\r\n -webkit-user-select: none;\r\n /* Disable text selection in WebKit browsers */\r\n -moz-user-select: none;\r\n user-select: none;\r\n}\r\n\r\n.radioButton {\r\n width: 100%;\r\n height: 100%;\r\n position: absolute;\r\n left: 0px;\r\n top: 0px;\r\n font-size: 12px;\r\n border: 1px solid #007bff;\r\n border-radius: 50px;\r\n}\r\n\r\n.signatureCanvas {\r\n border: 2px solid #888;\r\n background-color: rgb(255, 255, 255);\r\n width: 460px;\r\n height: 184px;\r\n}\r\n\r\n.intialSignatureCanvas {\r\n border: 2px solid #888;\r\n background-color: rgb(255, 255, 255);\r\n width: 150px;\r\n height: 150px;\r\n}\r\n\r\n.intialSignature {\r\n border: 2px solid #888;\r\n background-color: rgb(255, 255, 255);\r\n width: 183px;\r\n height: 183px;\r\n}\r\n\r\n.penContainerDefault {\r\n width: 460px;\r\n}\r\n\r\n.icon {\r\n position: absolute;\r\n font-size: 14px;\r\n cursor: pointer;\r\n z-index: 2;\r\n background: white;\r\n}\r\n\r\n.ScrollbarsCustom-TrackY {\r\n width: 4px !important;\r\n}\r\n.ScrollbarsCustom-TrackX {\r\n height: 4px !important;\r\n}\r\n\r\n.signYourselfBlock {\r\n padding: 0px;\r\n display: flex !important;\r\n justify-content: center !important;\r\n align-items: center !important;\r\n}\r\n\r\n.sendMail {\r\n box-shadow:\r\n 0 1px 3px rgba(0, 0, 0, 0.1),\r\n 0 1px 2px rgba(0, 0, 0, 0.18);\r\n padding: 3px 30px;\r\n color: white;\r\n font-weight: 500 !important;\r\n font-size: 14px !important;\r\n border: none;\r\n margin-left: 10px;\r\n}\r\n\r\n.user {\r\n white-space: nowrap;\r\n overflow: hidden !important;\r\n text-overflow: ellipsis;\r\n}\r\n.disabled {\r\n opacity: 0.5;\r\n /* Example: reduce opacity to visually indicate disabled state */\r\n pointer-events: none;\r\n /* Prevents mouse clicks and other events */\r\n /* background-color: #888; */\r\n}\r\n\r\n.signTab {\r\n cursor: pointer !important;\r\n font-weight: 400 !important;\r\n margin: 7px !important;\r\n font-size: 15px !important;\r\n}\r\n\r\n.signerComponent {\r\n /* box-shadow: rgba(17, 12, 46, 0.15) 0px 48px 100px 0px; */\r\n /* width: 180px; */\r\n background-color: white;\r\n}\r\n\r\n.uploadImgLogo {\r\n font-size: 50px;\r\n}\r\n\r\n.DropdownMenuContent,\r\n.DropdownMenuSubContent {\r\n min-width: 130px;\r\n background-color: #fff;\r\n border: 1px solid rgba(0, 0, 0, 0.15);\r\n border-radius: 0.25rem;\r\n padding: 5px;\r\n animation-duration: 400ms;\r\n animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);\r\n will-change: transform, opacity;\r\n z-index: 30 !important;\r\n}\r\n\r\n.DropdownMenuContent[data-side=\"top\"],\r\n.DropdownMenuSubContent[data-side=\"top\"] {\r\n animation-name: slideDownAndFade;\r\n}\r\n\r\n.DropdownMenuContent[data-side=\"right\"],\r\n.DropdownMenuSubContent[data-side=\"right\"] {\r\n animation-name: slideLeftAndFade;\r\n}\r\n\r\n.DropdownMenuContent[data-side=\"bottom\"],\r\n.DropdownMenuSubContent[data-side=\"bottom\"] {\r\n animation-name: slideUpAndFade;\r\n}\r\n\r\n.DropdownMenuContent[data-side=\"left\"],\r\n.DropdownMenuSubContent[data-side=\"left\"] {\r\n animation-name: slideRightAndFade;\r\n}\r\n\r\n.DropdownMenuItem {\r\n font-size: 13px;\r\n line-height: 1;\r\n color: black;\r\n background-color: #fff;\r\n display: flex;\r\n align-items: center;\r\n height: 25px;\r\n padding: 0 5px;\r\n position: relative;\r\n padding-left: 20px;\r\n user-select: none;\r\n outline: none;\r\n border: none;\r\n}\r\n\r\n.SelectTrigger {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 4px;\r\n padding: 0 70px;\r\n font-size: 13px;\r\n line-height: 1;\r\n height: 35px;\r\n gap: 5px;\r\n border: none;\r\n background-color: #887abf;\r\n width: 100px;\r\n white-space: nowrap;\r\n overflow: hidden !important;\r\n text-overflow: ellipsis;\r\n}\r\n\r\n.selectEmail {\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 4px;\r\n padding: 0 15px;\r\n font-size: 13px;\r\n line-height: 1;\r\n height: 35px;\r\n gap: 5px;\r\n border: none;\r\n background-color: #887abf;\r\n width: 200px;\r\n white-space: nowrap;\r\n overflow: hidden !important;\r\n text-overflow: ellipsis;\r\n}\r\n\r\noption {\r\n overflow-y: scroll;\r\n}\r\n\r\n.SelectTrigger:hover {\r\n border: none;\r\n outline: none;\r\n}\r\n\r\n.selectEmail:hover {\r\n border: none;\r\n outline: none;\r\n}\r\n\r\n.SelectTrigger:focus {\r\n /* box-shadow: 0 0 0 2px black; */\r\n border: none;\r\n outline: none;\r\n}\r\n\r\n.selectEmail:focus {\r\n /* box-shadow: 0 0 0 2px black; */\r\n border: none;\r\n outline: none;\r\n}\r\n\r\n.SelectTrigger[data-placeholder] {\r\n color: black;\r\n}\r\n\r\n.SelectIcon {\r\n color: Var(--violet-11);\r\n}\r\n\r\n.SelectContent {\r\n overflow: hidden;\r\n background-color: white;\r\n border-radius: 6px;\r\n box-shadow:\r\n 0px 10px 38px -10px rgba(22, 23, 24, 0.35),\r\n 0px 10px 20px -15px rgba(22, 23, 24, 0.2);\r\n}\r\n\r\n.SelectViewport {\r\n padding: 5px;\r\n}\r\n\r\n.SelectItem {\r\n font-size: 13px;\r\n line-height: 1;\r\n color: var(--violet-11);\r\n border-radius: 3px;\r\n display: flex;\r\n align-items: center;\r\n height: 25px;\r\n padding: 0 35px 0 25px;\r\n position: relative;\r\n user-select: none;\r\n z-index: 10 !important;\r\n}\r\n\r\n.SelectItem[data-disabled] {\r\n color: var(--mauve-8);\r\n pointer-events: none;\r\n}\r\n\r\n.SelectItem[data-highlighted] {\r\n outline: none;\r\n background-color: var(--violet-9);\r\n color: var(--violet-1);\r\n}\r\n\r\n.SelectLabel {\r\n padding: 0 25px;\r\n font-size: 12px;\r\n line-height: 25px;\r\n color: var(--mauve-11);\r\n}\r\n\r\n.SelectSeparator {\r\n height: 1px;\r\n background-color: var(--violet-6);\r\n margin: 5px;\r\n}\r\n\r\n.SelectItemIndicator {\r\n position: absolute;\r\n left: 0;\r\n width: 25px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.SelectScrollButton {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 25px;\r\n background-color: white;\r\n color: var(--violet-11);\r\n cursor: default;\r\n}\r\n\r\n.dropDownStyle {\r\n width: auto;\r\n}\r\n\r\n.autoSignScroll {\r\n overflow-y: auto;\r\n}\r\n\r\n.autoSignScroll::-webkit-scrollbar {\r\n display: none;\r\n}\r\n\r\n.validateInputText {\r\n width: 76%;\r\n}\r\n\r\n.radioGroupInput {\r\n width: 100%;\r\n}\r\n\r\n.radioGroup {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n}\r\n\r\n@media screen and (max-width: 766px) {\r\n .validateInputText {\r\n width: 93%;\r\n }\r\n\r\n .dropdown-menu {\r\n min-width: 0rem !important;\r\n }\r\n\r\n #navbar {\r\n overflow: hidden;\r\n z-index: 49;\r\n }\r\n\r\n /* Navbar links */\r\n #navbar a {\r\n float: left;\r\n display: block;\r\n color: #f2f2f2;\r\n text-align: center;\r\n padding: 14px;\r\n text-decoration: none;\r\n }\r\n\r\n #navbar a.active {\r\n background-color: #4caf50;\r\n color: white;\r\n }\r\n\r\n /* Page content */\r\n .content {\r\n padding: 16px;\r\n }\r\n\r\n /* The sticky class is added to the navbar\r\n with JS when it reaches its scroll position */\r\n .stickyHead {\r\n top: 50px;\r\n left: 0.9rem;\r\n }\r\n\r\n .stickySignerHead {\r\n position: fixed;\r\n }\r\n\r\n /* Add some top padding to the page content\r\n to prevent sudden quick movement (as the\r\n navigation bar gets a new position at the top of the\r\n page (position:fixed and top:0) */\r\n .stickyHead + .content {\r\n padding-top: 60px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 487px) and (min-width: 351px) {\r\n .signatureCanvas {\r\n width: 300px;\r\n height: 120px;\r\n }\r\n\r\n .penContainerDefault {\r\n width: 300px;\r\n }\r\n\r\n .uploadImgLogo {\r\n font-size: 30px;\r\n }\r\n\r\n .signTab {\r\n font-weight: 500 !important;\r\n font-size: 12px !important;\r\n }\r\n}\r\n\r\n.scroll-hide::-webkit-scrollbar {\r\n display: none;\r\n}\r\n@media screen and (max-width: 350px) and (min-width: 311px) {\r\n .signatureCanvas {\r\n width: 280px;\r\n height: 112px;\r\n }\r\n\r\n .penContainerDefault {\r\n width: 280px;\r\n }\r\n\r\n .signTab {\r\n font-weight: 500 !important;\r\n\r\n font-size: 10px !important;\r\n }\r\n\r\n .uploadImgLogo {\r\n font-size: 25px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 310px) {\r\n .signatureCanvas {\r\n width: 230px;\r\n height: 92px;\r\n }\r\n\r\n .penContainerDefault {\r\n width: 230px;\r\n }\r\n\r\n .signTab {\r\n font-weight: 500 !important;\r\n font-size: 8px !important;\r\n }\r\n\r\n .uploadImgLogo {\r\n font-size: 20px;\r\n }\r\n}\r\n"],"sourceRoot":""}]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/api.js": +/*!*****************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/api.js ***! + \*****************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +module.exports = function (cssWithMappingToString) { + var list = []; + + // return the list of modules as css string + list.toString = function toString() { + return this.map(function (item) { + var content = ""; + var needLayer = typeof item[5] !== "undefined"; + if (item[4]) { + content += "@supports (".concat(item[4], ") {"); + } + if (item[2]) { + content += "@media ".concat(item[2], " {"); + } + if (needLayer) { + content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); + } + content += cssWithMappingToString(item); + if (needLayer) { + content += "}"; + } + if (item[2]) { + content += "}"; + } + if (item[4]) { + content += "}"; + } + return content; + }).join(""); + }; + + // import a list of modules into the list + list.i = function i(modules, media, dedupe, supports, layer) { + if (typeof modules === "string") { + modules = [[null, modules, undefined]]; + } + var alreadyImportedModules = {}; + if (dedupe) { + for (var k = 0; k < this.length; k++) { + var id = this[k][0]; + if (id != null) { + alreadyImportedModules[id] = true; + } + } + } + for (var _k = 0; _k < modules.length; _k++) { + var item = [].concat(modules[_k]); + if (dedupe && alreadyImportedModules[item[0]]) { + continue; + } + if (typeof layer !== "undefined") { + if (typeof item[5] === "undefined") { + item[5] = layer; + } else { + item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); + item[5] = layer; + } + } + if (media) { + if (!item[2]) { + item[2] = media; + } else { + item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); + item[2] = media; + } + } + if (supports) { + if (!item[4]) { + item[4] = "".concat(supports); + } else { + item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); + item[4] = supports; + } + } + list.push(item); + } + }; + return list; +}; + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/getUrl.js": +/*!********************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***! + \********************************************************/ +/***/ ((module) => { + +"use strict"; + + +module.exports = function (url, options) { + if (!options) { + options = {}; + } + if (!url) { + return url; + } + url = String(url.__esModule ? url.default : url); + + // If url is already wrapped in quotes, remove them + if (/^['"].*['"]$/.test(url)) { + url = url.slice(1, -1); + } + if (options.hash) { + url += options.hash; + } + + // Should url be wrapped? + // See https://drafts.csswg.org/css-values-3/#urls + if (/["'() \t\n]|(%20)/.test(url) || options.needQuotes) { + return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, "\\n"), "\""); + } + return url; +}; + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js": +/*!************************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***! + \************************************************************/ +/***/ ((module) => { + +"use strict"; + + +module.exports = function (item) { + var content = item[1]; + var cssMapping = item[3]; + if (!cssMapping) { + return content; + } + if (typeof btoa === "function") { + var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))); + var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); + var sourceMapping = "/*# ".concat(data, " */"); + return [content].concat([sourceMapping]).join("\n"); + } + return [content].join("\n"); +}; + +/***/ }), + +/***/ "./node_modules/date-fns/_lib/addLeadingZeros.js": +/*!*******************************************************!*\ + !*** ./node_modules/date-fns/_lib/addLeadingZeros.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.addLeadingZeros = addLeadingZeros; +function addLeadingZeros(number, targetLength) { + const sign = number < 0 ? "-" : ""; + const output = Math.abs(number).toString().padStart(targetLength, "0"); + return sign + output; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/_lib/defaultLocale.js": +/*!*****************************************************!*\ + !*** ./node_modules/date-fns/_lib/defaultLocale.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "defaultLocale", ({ + enumerable: true, + get: function () { + return _index.enUS; + }, +})); +var _index = __webpack_require__(/*! ../locale/en-US.js */ "./node_modules/date-fns/locale/en-US.js"); + + +/***/ }), + +/***/ "./node_modules/date-fns/_lib/defaultOptions.js": +/*!******************************************************!*\ + !*** ./node_modules/date-fns/_lib/defaultOptions.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.getDefaultOptions = getDefaultOptions; +exports.setDefaultOptions = setDefaultOptions; + +let defaultOptions = {}; + +function getDefaultOptions() { + return defaultOptions; +} + +function setDefaultOptions(newOptions) { + defaultOptions = newOptions; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/_lib/format/formatters.js": +/*!*********************************************************!*\ + !*** ./node_modules/date-fns/_lib/format/formatters.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.formatters = void 0; +var _index = __webpack_require__(/*! ../../getDayOfYear.js */ "./node_modules/date-fns/getDayOfYear.js"); +var _index2 = __webpack_require__(/*! ../../getISOWeek.js */ "./node_modules/date-fns/getISOWeek.js"); +var _index3 = __webpack_require__(/*! ../../getISOWeekYear.js */ "./node_modules/date-fns/getISOWeekYear.js"); +var _index4 = __webpack_require__(/*! ../../getWeek.js */ "./node_modules/date-fns/getWeek.js"); +var _index5 = __webpack_require__(/*! ../../getWeekYear.js */ "./node_modules/date-fns/getWeekYear.js"); + +var _index6 = __webpack_require__(/*! ../addLeadingZeros.js */ "./node_modules/date-fns/_lib/addLeadingZeros.js"); +var _index7 = __webpack_require__(/*! ./lightFormatters.js */ "./node_modules/date-fns/_lib/format/lightFormatters.js"); + +const dayPeriodEnum = { + am: "am", + pm: "pm", + midnight: "midnight", + noon: "noon", + morning: "morning", + afternoon: "afternoon", + evening: "evening", + night: "night", +}; + +/* + * | | Unit | | Unit | + * |-----|--------------------------------|-----|--------------------------------| + * | a | AM, PM | A* | Milliseconds in day | + * | b | AM, PM, noon, midnight | B | Flexible day period | + * | c | Stand-alone local day of week | C* | Localized hour w/ day period | + * | d | Day of month | D | Day of year | + * | e | Local day of week | E | Day of week | + * | f | | F* | Day of week in month | + * | g* | Modified Julian day | G | Era | + * | h | Hour [1-12] | H | Hour [0-23] | + * | i! | ISO day of week | I! | ISO week of year | + * | j* | Localized hour w/ day period | J* | Localized hour w/o day period | + * | k | Hour [1-24] | K | Hour [0-11] | + * | l* | (deprecated) | L | Stand-alone month | + * | m | Minute | M | Month | + * | n | | N | | + * | o! | Ordinal number modifier | O | Timezone (GMT) | + * | p! | Long localized time | P! | Long localized date | + * | q | Stand-alone quarter | Q | Quarter | + * | r* | Related Gregorian year | R! | ISO week-numbering year | + * | s | Second | S | Fraction of second | + * | t! | Seconds timestamp | T! | Milliseconds timestamp | + * | u | Extended year | U* | Cyclic year | + * | v* | Timezone (generic non-locat.) | V* | Timezone (location) | + * | w | Local week of year | W* | Week of month | + * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) | + * | y | Year (abs) | Y | Local week-numbering year | + * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) | + * + * Letters marked by * are not implemented but reserved by Unicode standard. + * + * Letters marked by ! are non-standard, but implemented by date-fns: + * - `o` modifies the previous token to turn it into an ordinal (see `format` docs) + * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days, + * i.e. 7 for Sunday, 1 for Monday, etc. + * - `I` is ISO week of year, as opposed to `w` which is local week of year. + * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year. + * `R` is supposed to be used in conjunction with `I` and `i` + * for universal ISO week-numbering date, whereas + * `Y` is supposed to be used in conjunction with `w` and `e` + * for week-numbering date specific to the locale. + * - `P` is long localized date format + * - `p` is long localized time format + */ + +const formatters = (exports.formatters = { + // Era + G: function (date, token, localize) { + const era = date.getFullYear() > 0 ? 1 : 0; + switch (token) { + // AD, BC + case "G": + case "GG": + case "GGG": + return localize.era(era, { width: "abbreviated" }); + // A, B + case "GGGGG": + return localize.era(era, { width: "narrow" }); + // Anno Domini, Before Christ + case "GGGG": + default: + return localize.era(era, { width: "wide" }); + } + }, + + // Year + y: function (date, token, localize) { + // Ordinal number + if (token === "yo") { + const signedYear = date.getFullYear(); + // Returns 1 for 1 BC (which is year 0 in JavaScript) + const year = signedYear > 0 ? signedYear : 1 - signedYear; + return localize.ordinalNumber(year, { unit: "year" }); + } + + return _index7.lightFormatters.y(date, token); + }, + + // Local week-numbering year + Y: function (date, token, localize, options) { + const signedWeekYear = (0, _index5.getWeekYear)(date, options); + // Returns 1 for 1 BC (which is year 0 in JavaScript) + const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; + + // Two digit year + if (token === "YY") { + const twoDigitYear = weekYear % 100; + return (0, _index6.addLeadingZeros)(twoDigitYear, 2); + } + + // Ordinal number + if (token === "Yo") { + return localize.ordinalNumber(weekYear, { unit: "year" }); + } + + // Padding + return (0, _index6.addLeadingZeros)(weekYear, token.length); + }, + + // ISO week-numbering year + R: function (date, token) { + const isoWeekYear = (0, _index3.getISOWeekYear)(date); + + // Padding + return (0, _index6.addLeadingZeros)(isoWeekYear, token.length); + }, + + // Extended year. This is a single number designating the year of this calendar system. + // The main difference between `y` and `u` localizers are B.C. years: + // | Year | `y` | `u` | + // |------|-----|-----| + // | AC 1 | 1 | 1 | + // | BC 1 | 1 | 0 | + // | BC 2 | 2 | -1 | + // Also `yy` always returns the last two digits of a year, + // while `uu` pads single digit years to 2 characters and returns other years unchanged. + u: function (date, token) { + const year = date.getFullYear(); + return (0, _index6.addLeadingZeros)(year, token.length); + }, + + // Quarter + Q: function (date, token, localize) { + const quarter = Math.ceil((date.getMonth() + 1) / 3); + switch (token) { + // 1, 2, 3, 4 + case "Q": + return String(quarter); + // 01, 02, 03, 04 + case "QQ": + return (0, _index6.addLeadingZeros)(quarter, 2); + // 1st, 2nd, 3rd, 4th + case "Qo": + return localize.ordinalNumber(quarter, { unit: "quarter" }); + // Q1, Q2, Q3, Q4 + case "QQQ": + return localize.quarter(quarter, { + width: "abbreviated", + context: "formatting", + }); + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case "QQQQQ": + return localize.quarter(quarter, { + width: "narrow", + context: "formatting", + }); + // 1st quarter, 2nd quarter, ... + case "QQQQ": + default: + return localize.quarter(quarter, { + width: "wide", + context: "formatting", + }); + } + }, + + // Stand-alone quarter + q: function (date, token, localize) { + const quarter = Math.ceil((date.getMonth() + 1) / 3); + switch (token) { + // 1, 2, 3, 4 + case "q": + return String(quarter); + // 01, 02, 03, 04 + case "qq": + return (0, _index6.addLeadingZeros)(quarter, 2); + // 1st, 2nd, 3rd, 4th + case "qo": + return localize.ordinalNumber(quarter, { unit: "quarter" }); + // Q1, Q2, Q3, Q4 + case "qqq": + return localize.quarter(quarter, { + width: "abbreviated", + context: "standalone", + }); + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case "qqqqq": + return localize.quarter(quarter, { + width: "narrow", + context: "standalone", + }); + // 1st quarter, 2nd quarter, ... + case "qqqq": + default: + return localize.quarter(quarter, { + width: "wide", + context: "standalone", + }); + } + }, + + // Month + M: function (date, token, localize) { + const month = date.getMonth(); + switch (token) { + case "M": + case "MM": + return _index7.lightFormatters.M(date, token); + // 1st, 2nd, ..., 12th + case "Mo": + return localize.ordinalNumber(month + 1, { unit: "month" }); + // Jan, Feb, ..., Dec + case "MMM": + return localize.month(month, { + width: "abbreviated", + context: "formatting", + }); + // J, F, ..., D + case "MMMMM": + return localize.month(month, { + width: "narrow", + context: "formatting", + }); + // January, February, ..., December + case "MMMM": + default: + return localize.month(month, { width: "wide", context: "formatting" }); + } + }, + + // Stand-alone month + L: function (date, token, localize) { + const month = date.getMonth(); + switch (token) { + // 1, 2, ..., 12 + case "L": + return String(month + 1); + // 01, 02, ..., 12 + case "LL": + return (0, _index6.addLeadingZeros)(month + 1, 2); + // 1st, 2nd, ..., 12th + case "Lo": + return localize.ordinalNumber(month + 1, { unit: "month" }); + // Jan, Feb, ..., Dec + case "LLL": + return localize.month(month, { + width: "abbreviated", + context: "standalone", + }); + // J, F, ..., D + case "LLLLL": + return localize.month(month, { + width: "narrow", + context: "standalone", + }); + // January, February, ..., December + case "LLLL": + default: + return localize.month(month, { width: "wide", context: "standalone" }); + } + }, + + // Local week of year + w: function (date, token, localize, options) { + const week = (0, _index4.getWeek)(date, options); + + if (token === "wo") { + return localize.ordinalNumber(week, { unit: "week" }); + } + + return (0, _index6.addLeadingZeros)(week, token.length); + }, + + // ISO week of year + I: function (date, token, localize) { + const isoWeek = (0, _index2.getISOWeek)(date); + + if (token === "Io") { + return localize.ordinalNumber(isoWeek, { unit: "week" }); + } + + return (0, _index6.addLeadingZeros)(isoWeek, token.length); + }, + + // Day of the month + d: function (date, token, localize) { + if (token === "do") { + return localize.ordinalNumber(date.getDate(), { unit: "date" }); + } + + return _index7.lightFormatters.d(date, token); + }, + + // Day of year + D: function (date, token, localize) { + const dayOfYear = (0, _index.getDayOfYear)(date); + + if (token === "Do") { + return localize.ordinalNumber(dayOfYear, { unit: "dayOfYear" }); + } + + return (0, _index6.addLeadingZeros)(dayOfYear, token.length); + }, + + // Day of week + E: function (date, token, localize) { + const dayOfWeek = date.getDay(); + switch (token) { + // Tue + case "E": + case "EE": + case "EEE": + return localize.day(dayOfWeek, { + width: "abbreviated", + context: "formatting", + }); + // T + case "EEEEE": + return localize.day(dayOfWeek, { + width: "narrow", + context: "formatting", + }); + // Tu + case "EEEEEE": + return localize.day(dayOfWeek, { + width: "short", + context: "formatting", + }); + // Tuesday + case "EEEE": + default: + return localize.day(dayOfWeek, { + width: "wide", + context: "formatting", + }); + } + }, + + // Local day of week + e: function (date, token, localize, options) { + const dayOfWeek = date.getDay(); + const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; + switch (token) { + // Numerical value (Nth day of week with current locale or weekStartsOn) + case "e": + return String(localDayOfWeek); + // Padded numerical value + case "ee": + return (0, _index6.addLeadingZeros)(localDayOfWeek, 2); + // 1st, 2nd, ..., 7th + case "eo": + return localize.ordinalNumber(localDayOfWeek, { unit: "day" }); + case "eee": + return localize.day(dayOfWeek, { + width: "abbreviated", + context: "formatting", + }); + // T + case "eeeee": + return localize.day(dayOfWeek, { + width: "narrow", + context: "formatting", + }); + // Tu + case "eeeeee": + return localize.day(dayOfWeek, { + width: "short", + context: "formatting", + }); + // Tuesday + case "eeee": + default: + return localize.day(dayOfWeek, { + width: "wide", + context: "formatting", + }); + } + }, + + // Stand-alone local day of week + c: function (date, token, localize, options) { + const dayOfWeek = date.getDay(); + const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; + switch (token) { + // Numerical value (same as in `e`) + case "c": + return String(localDayOfWeek); + // Padded numerical value + case "cc": + return (0, _index6.addLeadingZeros)(localDayOfWeek, token.length); + // 1st, 2nd, ..., 7th + case "co": + return localize.ordinalNumber(localDayOfWeek, { unit: "day" }); + case "ccc": + return localize.day(dayOfWeek, { + width: "abbreviated", + context: "standalone", + }); + // T + case "ccccc": + return localize.day(dayOfWeek, { + width: "narrow", + context: "standalone", + }); + // Tu + case "cccccc": + return localize.day(dayOfWeek, { + width: "short", + context: "standalone", + }); + // Tuesday + case "cccc": + default: + return localize.day(dayOfWeek, { + width: "wide", + context: "standalone", + }); + } + }, + + // ISO day of week + i: function (date, token, localize) { + const dayOfWeek = date.getDay(); + const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; + switch (token) { + // 2 + case "i": + return String(isoDayOfWeek); + // 02 + case "ii": + return (0, _index6.addLeadingZeros)(isoDayOfWeek, token.length); + // 2nd + case "io": + return localize.ordinalNumber(isoDayOfWeek, { unit: "day" }); + // Tue + case "iii": + return localize.day(dayOfWeek, { + width: "abbreviated", + context: "formatting", + }); + // T + case "iiiii": + return localize.day(dayOfWeek, { + width: "narrow", + context: "formatting", + }); + // Tu + case "iiiiii": + return localize.day(dayOfWeek, { + width: "short", + context: "formatting", + }); + // Tuesday + case "iiii": + default: + return localize.day(dayOfWeek, { + width: "wide", + context: "formatting", + }); + } + }, + + // AM or PM + a: function (date, token, localize) { + const hours = date.getHours(); + const dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; + + switch (token) { + case "a": + case "aa": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }); + case "aaa": + return localize + .dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }) + .toLowerCase(); + case "aaaaa": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "narrow", + context: "formatting", + }); + case "aaaa": + default: + return localize.dayPeriod(dayPeriodEnumValue, { + width: "wide", + context: "formatting", + }); + } + }, + + // AM, PM, midnight, noon + b: function (date, token, localize) { + const hours = date.getHours(); + let dayPeriodEnumValue; + if (hours === 12) { + dayPeriodEnumValue = dayPeriodEnum.noon; + } else if (hours === 0) { + dayPeriodEnumValue = dayPeriodEnum.midnight; + } else { + dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; + } + + switch (token) { + case "b": + case "bb": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }); + case "bbb": + return localize + .dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }) + .toLowerCase(); + case "bbbbb": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "narrow", + context: "formatting", + }); + case "bbbb": + default: + return localize.dayPeriod(dayPeriodEnumValue, { + width: "wide", + context: "formatting", + }); + } + }, + + // in the morning, in the afternoon, in the evening, at night + B: function (date, token, localize) { + const hours = date.getHours(); + let dayPeriodEnumValue; + if (hours >= 17) { + dayPeriodEnumValue = dayPeriodEnum.evening; + } else if (hours >= 12) { + dayPeriodEnumValue = dayPeriodEnum.afternoon; + } else if (hours >= 4) { + dayPeriodEnumValue = dayPeriodEnum.morning; + } else { + dayPeriodEnumValue = dayPeriodEnum.night; + } + + switch (token) { + case "B": + case "BB": + case "BBB": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "abbreviated", + context: "formatting", + }); + case "BBBBB": + return localize.dayPeriod(dayPeriodEnumValue, { + width: "narrow", + context: "formatting", + }); + case "BBBB": + default: + return localize.dayPeriod(dayPeriodEnumValue, { + width: "wide", + context: "formatting", + }); + } + }, + + // Hour [1-12] + h: function (date, token, localize) { + if (token === "ho") { + let hours = date.getHours() % 12; + if (hours === 0) hours = 12; + return localize.ordinalNumber(hours, { unit: "hour" }); + } + + return _index7.lightFormatters.h(date, token); + }, + + // Hour [0-23] + H: function (date, token, localize) { + if (token === "Ho") { + return localize.ordinalNumber(date.getHours(), { unit: "hour" }); + } + + return _index7.lightFormatters.H(date, token); + }, + + // Hour [0-11] + K: function (date, token, localize) { + const hours = date.getHours() % 12; + + if (token === "Ko") { + return localize.ordinalNumber(hours, { unit: "hour" }); + } + + return (0, _index6.addLeadingZeros)(hours, token.length); + }, + + // Hour [1-24] + k: function (date, token, localize) { + let hours = date.getHours(); + if (hours === 0) hours = 24; + + if (token === "ko") { + return localize.ordinalNumber(hours, { unit: "hour" }); + } + + return (0, _index6.addLeadingZeros)(hours, token.length); + }, + + // Minute + m: function (date, token, localize) { + if (token === "mo") { + return localize.ordinalNumber(date.getMinutes(), { unit: "minute" }); + } + + return _index7.lightFormatters.m(date, token); + }, + + // Second + s: function (date, token, localize) { + if (token === "so") { + return localize.ordinalNumber(date.getSeconds(), { unit: "second" }); + } + + return _index7.lightFormatters.s(date, token); + }, + + // Fraction of second + S: function (date, token) { + return _index7.lightFormatters.S(date, token); + }, + + // Timezone (ISO-8601. If offset is 0, output is always `'Z'`) + X: function (date, token, _localize) { + const timezoneOffset = date.getTimezoneOffset(); + + if (timezoneOffset === 0) { + return "Z"; + } + + switch (token) { + // Hours and optional minutes + case "X": + return formatTimezoneWithOptionalMinutes(timezoneOffset); + + // Hours, minutes and optional seconds without `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `XX` + case "XXXX": + case "XX": // Hours and minutes without `:` delimiter + return formatTimezone(timezoneOffset); + + // Hours, minutes and optional seconds with `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `XXX` + case "XXXXX": + case "XXX": // Hours and minutes with `:` delimiter + default: + return formatTimezone(timezoneOffset, ":"); + } + }, + + // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent) + x: function (date, token, _localize) { + const timezoneOffset = date.getTimezoneOffset(); + + switch (token) { + // Hours and optional minutes + case "x": + return formatTimezoneWithOptionalMinutes(timezoneOffset); + + // Hours, minutes and optional seconds without `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `xx` + case "xxxx": + case "xx": // Hours and minutes without `:` delimiter + return formatTimezone(timezoneOffset); + + // Hours, minutes and optional seconds with `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `xxx` + case "xxxxx": + case "xxx": // Hours and minutes with `:` delimiter + default: + return formatTimezone(timezoneOffset, ":"); + } + }, + + // Timezone (GMT) + O: function (date, token, _localize) { + const timezoneOffset = date.getTimezoneOffset(); + + switch (token) { + // Short + case "O": + case "OO": + case "OOO": + return "GMT" + formatTimezoneShort(timezoneOffset, ":"); + // Long + case "OOOO": + default: + return "GMT" + formatTimezone(timezoneOffset, ":"); + } + }, + + // Timezone (specific non-location) + z: function (date, token, _localize) { + const timezoneOffset = date.getTimezoneOffset(); + + switch (token) { + // Short + case "z": + case "zz": + case "zzz": + return "GMT" + formatTimezoneShort(timezoneOffset, ":"); + // Long + case "zzzz": + default: + return "GMT" + formatTimezone(timezoneOffset, ":"); + } + }, + + // Seconds timestamp + t: function (date, token, _localize) { + const timestamp = Math.trunc(date.getTime() / 1000); + return (0, _index6.addLeadingZeros)(timestamp, token.length); + }, + + // Milliseconds timestamp + T: function (date, token, _localize) { + const timestamp = date.getTime(); + return (0, _index6.addLeadingZeros)(timestamp, token.length); + }, +}); + +function formatTimezoneShort(offset, delimiter = "") { + const sign = offset > 0 ? "-" : "+"; + const absOffset = Math.abs(offset); + const hours = Math.trunc(absOffset / 60); + const minutes = absOffset % 60; + if (minutes === 0) { + return sign + String(hours); + } + return ( + sign + String(hours) + delimiter + (0, _index6.addLeadingZeros)(minutes, 2) + ); +} + +function formatTimezoneWithOptionalMinutes(offset, delimiter) { + if (offset % 60 === 0) { + const sign = offset > 0 ? "-" : "+"; + return sign + (0, _index6.addLeadingZeros)(Math.abs(offset) / 60, 2); + } + return formatTimezone(offset, delimiter); +} + +function formatTimezone(offset, delimiter = "") { + const sign = offset > 0 ? "-" : "+"; + const absOffset = Math.abs(offset); + const hours = (0, _index6.addLeadingZeros)(Math.trunc(absOffset / 60), 2); + const minutes = (0, _index6.addLeadingZeros)(absOffset % 60, 2); + return sign + hours + delimiter + minutes; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/_lib/format/lightFormatters.js": +/*!**************************************************************!*\ + !*** ./node_modules/date-fns/_lib/format/lightFormatters.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.lightFormatters = void 0; +var _index = __webpack_require__(/*! ../addLeadingZeros.js */ "./node_modules/date-fns/_lib/addLeadingZeros.js"); + +/* + * | | Unit | | Unit | + * |-----|--------------------------------|-----|--------------------------------| + * | a | AM, PM | A* | | + * | d | Day of month | D | | + * | h | Hour [1-12] | H | Hour [0-23] | + * | m | Minute | M | Month | + * | s | Second | S | Fraction of second | + * | y | Year (abs) | Y | | + * + * Letters marked by * are not implemented but reserved by Unicode standard. + */ + +const lightFormatters = (exports.lightFormatters = { + // Year + y(date, token) { + // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens + // | Year | y | yy | yyy | yyyy | yyyyy | + // |----------|-------|----|-------|-------|-------| + // | AD 1 | 1 | 01 | 001 | 0001 | 00001 | + // | AD 12 | 12 | 12 | 012 | 0012 | 00012 | + // | AD 123 | 123 | 23 | 123 | 0123 | 00123 | + // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | + // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | + + const signedYear = date.getFullYear(); + // Returns 1 for 1 BC (which is year 0 in JavaScript) + const year = signedYear > 0 ? signedYear : 1 - signedYear; + return (0, _index.addLeadingZeros)( + token === "yy" ? year % 100 : year, + token.length, + ); + }, + + // Month + M(date, token) { + const month = date.getMonth(); + return token === "M" + ? String(month + 1) + : (0, _index.addLeadingZeros)(month + 1, 2); + }, + + // Day of the month + d(date, token) { + return (0, _index.addLeadingZeros)(date.getDate(), token.length); + }, + + // AM or PM + a(date, token) { + const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? "pm" : "am"; + + switch (token) { + case "a": + case "aa": + return dayPeriodEnumValue.toUpperCase(); + case "aaa": + return dayPeriodEnumValue; + case "aaaaa": + return dayPeriodEnumValue[0]; + case "aaaa": + default: + return dayPeriodEnumValue === "am" ? "a.m." : "p.m."; + } + }, + + // Hour [1-12] + h(date, token) { + return (0, _index.addLeadingZeros)( + date.getHours() % 12 || 12, + token.length, + ); + }, + + // Hour [0-23] + H(date, token) { + return (0, _index.addLeadingZeros)(date.getHours(), token.length); + }, + + // Minute + m(date, token) { + return (0, _index.addLeadingZeros)(date.getMinutes(), token.length); + }, + + // Second + s(date, token) { + return (0, _index.addLeadingZeros)(date.getSeconds(), token.length); + }, + + // Fraction of second + S(date, token) { + const numberOfDigits = token.length; + const milliseconds = date.getMilliseconds(); + const fractionalSeconds = Math.trunc( + milliseconds * Math.pow(10, numberOfDigits - 3), + ); + return (0, _index.addLeadingZeros)(fractionalSeconds, token.length); + }, +}); + + +/***/ }), + +/***/ "./node_modules/date-fns/_lib/format/longFormatters.js": +/*!*************************************************************!*\ + !*** ./node_modules/date-fns/_lib/format/longFormatters.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.longFormatters = void 0; + +const dateLongFormatter = (pattern, formatLong) => { + switch (pattern) { + case "P": + return formatLong.date({ width: "short" }); + case "PP": + return formatLong.date({ width: "medium" }); + case "PPP": + return formatLong.date({ width: "long" }); + case "PPPP": + default: + return formatLong.date({ width: "full" }); + } +}; + +const timeLongFormatter = (pattern, formatLong) => { + switch (pattern) { + case "p": + return formatLong.time({ width: "short" }); + case "pp": + return formatLong.time({ width: "medium" }); + case "ppp": + return formatLong.time({ width: "long" }); + case "pppp": + default: + return formatLong.time({ width: "full" }); + } +}; + +const dateTimeLongFormatter = (pattern, formatLong) => { + const matchResult = pattern.match(/(P+)(p+)?/) || []; + const datePattern = matchResult[1]; + const timePattern = matchResult[2]; + + if (!timePattern) { + return dateLongFormatter(pattern, formatLong); + } + + let dateTimeFormat; + + switch (datePattern) { + case "P": + dateTimeFormat = formatLong.dateTime({ width: "short" }); + break; + case "PP": + dateTimeFormat = formatLong.dateTime({ width: "medium" }); + break; + case "PPP": + dateTimeFormat = formatLong.dateTime({ width: "long" }); + break; + case "PPPP": + default: + dateTimeFormat = formatLong.dateTime({ width: "full" }); + break; + } + + return dateTimeFormat + .replace("{{date}}", dateLongFormatter(datePattern, formatLong)) + .replace("{{time}}", timeLongFormatter(timePattern, formatLong)); +}; + +const longFormatters = (exports.longFormatters = { + p: timeLongFormatter, + P: dateTimeLongFormatter, +}); + + +/***/ }), + +/***/ "./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js": +/*!***********************************************************************!*\ + !*** ./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getTimezoneOffsetInMilliseconds = getTimezoneOffsetInMilliseconds; +var _index = __webpack_require__(/*! ../toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. + * They usually appear for dates that denote time before the timezones were introduced + * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 + * and GMT+01:00:00 after that date) + * + * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, + * which would lead to incorrect calculations. + * + * This function returns the timezone offset in milliseconds that takes seconds in account. + */ +function getTimezoneOffsetInMilliseconds(date) { + const _date = (0, _index.toDate)(date); + const utcDate = new Date( + Date.UTC( + _date.getFullYear(), + _date.getMonth(), + _date.getDate(), + _date.getHours(), + _date.getMinutes(), + _date.getSeconds(), + _date.getMilliseconds(), + ), + ); + utcDate.setUTCFullYear(_date.getFullYear()); + return +date - +utcDate; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/_lib/protectedTokens.js": +/*!*******************************************************!*\ + !*** ./node_modules/date-fns/_lib/protectedTokens.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.isProtectedDayOfYearToken = isProtectedDayOfYearToken; +exports.isProtectedWeekYearToken = isProtectedWeekYearToken; +exports.warnOrThrowProtectedError = warnOrThrowProtectedError; +const dayOfYearTokenRE = /^D+$/; +const weekYearTokenRE = /^Y+$/; + +const throwTokens = ["D", "DD", "YY", "YYYY"]; + +function isProtectedDayOfYearToken(token) { + return dayOfYearTokenRE.test(token); +} + +function isProtectedWeekYearToken(token) { + return weekYearTokenRE.test(token); +} + +function warnOrThrowProtectedError(token, format, input) { + const _message = message(token, format, input); + console.warn(_message); + if (throwTokens.includes(token)) throw new RangeError(_message); +} + +function message(token, format, input) { + const subject = token[0] === "Y" ? "years" : "days of the month"; + return `Use \`${token.toLowerCase()}\` instead of \`${token}\` (in \`${format}\`) for formatting ${subject} to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/addDays.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/addDays.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.addDays = addDays; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); +var _index2 = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); + +/** + * @name addDays + * @category Day Helpers + * @summary Add the specified number of days to the given date. + * + * @description + * Add the specified number of days to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of days to be added. + * + * @returns The new date with the days added + * + * @example + * // Add 10 days to 1 September 2014: + * const result = addDays(new Date(2014, 8, 1), 10) + * //=> Thu Sep 11 2014 00:00:00 + */ +function addDays(date, amount) { + const _date = (0, _index.toDate)(date); + if (isNaN(amount)) return (0, _index2.constructFrom)(date, NaN); + if (!amount) { + // If 0 days, no-op to avoid changing times in the hour before end of DST + return _date; + } + _date.setDate(_date.getDate() + amount); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/addHours.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/addHours.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.addHours = addHours; +var _index = __webpack_require__(/*! ./addMilliseconds.js */ "./node_modules/date-fns/addMilliseconds.js"); +var _index2 = __webpack_require__(/*! ./constants.js */ "./node_modules/date-fns/constants.js"); + +/** + * @name addHours + * @category Hour Helpers + * @summary Add the specified number of hours to the given date. + * + * @description + * Add the specified number of hours to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of hours to be added. + * + * @returns The new date with the hours added + * + * @example + * // Add 2 hours to 10 July 2014 23:00:00: + * const result = addHours(new Date(2014, 6, 10, 23, 0), 2) + * //=> Fri Jul 11 2014 01:00:00 + */ +function addHours(date, amount) { + return (0, _index.addMilliseconds)(date, amount * _index2.millisecondsInHour); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/addMilliseconds.js": +/*!**************************************************!*\ + !*** ./node_modules/date-fns/addMilliseconds.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.addMilliseconds = addMilliseconds; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); +var _index2 = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); + +/** + * @name addMilliseconds + * @category Millisecond Helpers + * @summary Add the specified number of milliseconds to the given date. + * + * @description + * Add the specified number of milliseconds to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of milliseconds to be added. + * + * @returns The new date with the milliseconds added + * + * @example + * // Add 750 milliseconds to 10 July 2014 12:45:30.000: + * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) + * //=> Thu Jul 10 2014 12:45:30.750 + */ +function addMilliseconds(date, amount) { + const timestamp = +(0, _index.toDate)(date); + return (0, _index2.constructFrom)(date, timestamp + amount); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/addMinutes.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/addMinutes.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.addMinutes = addMinutes; +var _index = __webpack_require__(/*! ./addMilliseconds.js */ "./node_modules/date-fns/addMilliseconds.js"); +var _index2 = __webpack_require__(/*! ./constants.js */ "./node_modules/date-fns/constants.js"); + +/** + * @name addMinutes + * @category Minute Helpers + * @summary Add the specified number of minutes to the given date. + * + * @description + * Add the specified number of minutes to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of minutes to be added. + * + * @returns The new date with the minutes added + * + * @example + * // Add 30 minutes to 10 July 2014 12:00:00: + * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30) + * //=> Thu Jul 10 2014 12:30:00 + */ +function addMinutes(date, amount) { + return (0, _index.addMilliseconds)( + date, + amount * _index2.millisecondsInMinute, + ); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/addMonths.js": +/*!********************************************!*\ + !*** ./node_modules/date-fns/addMonths.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.addMonths = addMonths; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); +var _index2 = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); + +/** + * @name addMonths + * @category Month Helpers + * @summary Add the specified number of months to the given date. + * + * @description + * Add the specified number of months to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of months to be added. + * + * @returns The new date with the months added + * + * @example + * // Add 5 months to 1 September 2014: + * const result = addMonths(new Date(2014, 8, 1), 5) + * //=> Sun Feb 01 2015 00:00:00 + * + * // Add one month to 30 January 2023: + * const result = addMonths(new Date(2023, 0, 30), 1) + * //=> Tue Feb 28 2023 00:00:00 + */ +function addMonths(date, amount) { + const _date = (0, _index.toDate)(date); + if (isNaN(amount)) return (0, _index2.constructFrom)(date, NaN); + if (!amount) { + // If 0 months, no-op to avoid changing times in the hour before end of DST + return _date; + } + const dayOfMonth = _date.getDate(); + + // The JS Date object supports date math by accepting out-of-bounds values for + // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and + // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we + // want except that dates will wrap around the end of a month, meaning that + // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So + // we'll default to the end of the desired month by adding 1 to the desired + // month and using a date of 0 to back up one day to the end of the desired + // month. + const endOfDesiredMonth = (0, _index2.constructFrom)(date, _date.getTime()); + endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0); + const daysInMonth = endOfDesiredMonth.getDate(); + if (dayOfMonth >= daysInMonth) { + // If we're already at the end of the month, then this is the correct date + // and we're done. + return endOfDesiredMonth; + } else { + // Otherwise, we now know that setting the original day-of-month value won't + // cause an overflow, so set the desired day-of-month. Note that we can't + // just set the date of `endOfDesiredMonth` because that object may have had + // its time changed in the unusual case where where a DST transition was on + // the last day of the month and its local time was in the hour skipped or + // repeated next to a DST transition. So we use `date` instead which is + // guaranteed to still have the original time. + _date.setFullYear( + endOfDesiredMonth.getFullYear(), + endOfDesiredMonth.getMonth(), + dayOfMonth, + ); + return _date; + } +} + + +/***/ }), + +/***/ "./node_modules/date-fns/addQuarters.js": +/*!**********************************************!*\ + !*** ./node_modules/date-fns/addQuarters.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.addQuarters = addQuarters; +var _index = __webpack_require__(/*! ./addMonths.js */ "./node_modules/date-fns/addMonths.js"); + +/** + * @name addQuarters + * @category Quarter Helpers + * @summary Add the specified number of year quarters to the given date. + * + * @description + * Add the specified number of year quarters to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of quarters to be added. + * + * @returns The new date with the quarters added + * + * @example + * // Add 1 quarter to 1 September 2014: + * const result = addQuarters(new Date(2014, 8, 1), 1) + * //=> Mon Dec 01 2014 00:00:00 + */ +function addQuarters(date, amount) { + const months = amount * 3; + return (0, _index.addMonths)(date, months); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/addSeconds.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/addSeconds.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.addSeconds = addSeconds; +var _index = __webpack_require__(/*! ./addMilliseconds.js */ "./node_modules/date-fns/addMilliseconds.js"); + +/** + * @name addSeconds + * @category Second Helpers + * @summary Add the specified number of seconds to the given date. + * + * @description + * Add the specified number of seconds to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of seconds to be added. + * + * @returns The new date with the seconds added + * + * @example + * // Add 30 seconds to 10 July 2014 12:45:00: + * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30) + * //=> Thu Jul 10 2014 12:45:30 + */ +function addSeconds(date, amount) { + return (0, _index.addMilliseconds)(date, amount * 1000); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/addWeeks.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/addWeeks.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.addWeeks = addWeeks; +var _index = __webpack_require__(/*! ./addDays.js */ "./node_modules/date-fns/addDays.js"); + +/** + * @name addWeeks + * @category Week Helpers + * @summary Add the specified number of weeks to the given date. + * + * @description + * Add the specified number of week to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of weeks to be added. + * + * @returns The new date with the weeks added + * + * @example + * // Add 4 weeks to 1 September 2014: + * const result = addWeeks(new Date(2014, 8, 1), 4) + * //=> Mon Sep 29 2014 00:00:00 + */ +function addWeeks(date, amount) { + const days = amount * 7; + return (0, _index.addDays)(date, days); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/addYears.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/addYears.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.addYears = addYears; +var _index = __webpack_require__(/*! ./addMonths.js */ "./node_modules/date-fns/addMonths.js"); + +/** + * @name addYears + * @category Year Helpers + * @summary Add the specified number of years to the given date. + * + * @description + * Add the specified number of years to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of years to be added. + * + * @returns The new date with the years added + * + * @example + * // Add 5 years to 1 September 2014: + * const result = addYears(new Date(2014, 8, 1), 5) + * //=> Sun Sep 01 2019 00:00:00 + */ +function addYears(date, amount) { + return (0, _index.addMonths)(date, amount * 12); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/constants.js": +/*!********************************************!*\ + !*** ./node_modules/date-fns/constants.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.secondsInYear = + exports.secondsInWeek = + exports.secondsInQuarter = + exports.secondsInMonth = + exports.secondsInMinute = + exports.secondsInHour = + exports.secondsInDay = + exports.quartersInYear = + exports.monthsInYear = + exports.monthsInQuarter = + exports.minutesInYear = + exports.minutesInMonth = + exports.minutesInHour = + exports.minutesInDay = + exports.minTime = + exports.millisecondsInWeek = + exports.millisecondsInSecond = + exports.millisecondsInMinute = + exports.millisecondsInHour = + exports.millisecondsInDay = + exports.maxTime = + exports.daysInYear = + exports.daysInWeek = + void 0; /** + * @module constants + * @summary Useful constants + * @description + * Collection of useful date constants. + * + * The constants could be imported from `date-fns/constants`: + * + * ```ts + * import { maxTime, minTime } from "date-fns/constants"; + * + * function isAllowedTime(time) { + * return time <= maxTime && time >= minTime; + * } + * ``` + */ + +/** + * @constant + * @name daysInWeek + * @summary Days in 1 week. + */ +const daysInWeek = (exports.daysInWeek = 7); + +/** + * @constant + * @name daysInYear + * @summary Days in 1 year. + * + * @description + * How many days in a year. + * + * One years equals 365.2425 days according to the formula: + * + * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400. + * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days + */ +const daysInYear = (exports.daysInYear = 365.2425); + +/** + * @constant + * @name maxTime + * @summary Maximum allowed time. + * + * @example + * import { maxTime } from "date-fns/constants"; + * + * const isValid = 8640000000000001 <= maxTime; + * //=> false + * + * new Date(8640000000000001); + * //=> Invalid Date + */ +const maxTime = (exports.maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000); + +/** + * @constant + * @name minTime + * @summary Minimum allowed time. + * + * @example + * import { minTime } from "date-fns/constants"; + * + * const isValid = -8640000000000001 >= minTime; + * //=> false + * + * new Date(-8640000000000001) + * //=> Invalid Date + */ +const minTime = (exports.minTime = -maxTime); + +/** + * @constant + * @name millisecondsInWeek + * @summary Milliseconds in 1 week. + */ +const millisecondsInWeek = (exports.millisecondsInWeek = 604800000); + +/** + * @constant + * @name millisecondsInDay + * @summary Milliseconds in 1 day. + */ +const millisecondsInDay = (exports.millisecondsInDay = 86400000); + +/** + * @constant + * @name millisecondsInMinute + * @summary Milliseconds in 1 minute + */ +const millisecondsInMinute = (exports.millisecondsInMinute = 60000); + +/** + * @constant + * @name millisecondsInHour + * @summary Milliseconds in 1 hour + */ +const millisecondsInHour = (exports.millisecondsInHour = 3600000); + +/** + * @constant + * @name millisecondsInSecond + * @summary Milliseconds in 1 second + */ +const millisecondsInSecond = (exports.millisecondsInSecond = 1000); + +/** + * @constant + * @name minutesInYear + * @summary Minutes in 1 year. + */ +const minutesInYear = (exports.minutesInYear = 525600); + +/** + * @constant + * @name minutesInMonth + * @summary Minutes in 1 month. + */ +const minutesInMonth = (exports.minutesInMonth = 43200); + +/** + * @constant + * @name minutesInDay + * @summary Minutes in 1 day. + */ +const minutesInDay = (exports.minutesInDay = 1440); + +/** + * @constant + * @name minutesInHour + * @summary Minutes in 1 hour. + */ +const minutesInHour = (exports.minutesInHour = 60); + +/** + * @constant + * @name monthsInQuarter + * @summary Months in 1 quarter. + */ +const monthsInQuarter = (exports.monthsInQuarter = 3); + +/** + * @constant + * @name monthsInYear + * @summary Months in 1 year. + */ +const monthsInYear = (exports.monthsInYear = 12); + +/** + * @constant + * @name quartersInYear + * @summary Quarters in 1 year + */ +const quartersInYear = (exports.quartersInYear = 4); + +/** + * @constant + * @name secondsInHour + * @summary Seconds in 1 hour. + */ +const secondsInHour = (exports.secondsInHour = 3600); + +/** + * @constant + * @name secondsInMinute + * @summary Seconds in 1 minute. + */ +const secondsInMinute = (exports.secondsInMinute = 60); + +/** + * @constant + * @name secondsInDay + * @summary Seconds in 1 day. + */ +const secondsInDay = (exports.secondsInDay = secondsInHour * 24); + +/** + * @constant + * @name secondsInWeek + * @summary Seconds in 1 week. + */ +const secondsInWeek = (exports.secondsInWeek = secondsInDay * 7); + +/** + * @constant + * @name secondsInYear + * @summary Seconds in 1 year. + */ +const secondsInYear = (exports.secondsInYear = secondsInDay * daysInYear); + +/** + * @constant + * @name secondsInMonth + * @summary Seconds in 1 month + */ +const secondsInMonth = (exports.secondsInMonth = secondsInYear / 12); + +/** + * @constant + * @name secondsInQuarter + * @summary Seconds in 1 quarter. + */ +const secondsInQuarter = (exports.secondsInQuarter = secondsInMonth * 3); + + +/***/ }), + +/***/ "./node_modules/date-fns/constructFrom.js": +/*!************************************************!*\ + !*** ./node_modules/date-fns/constructFrom.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.constructFrom = constructFrom; + +/** + * @name constructFrom + * @category Generic Helpers + * @summary Constructs a date using the reference date and the value + * + * @description + * The function constructs a new date using the constructor from the reference + * date and the given value. It helps to build generic functions that accept + * date extensions. + * + * It defaults to `Date` if the passed reference date is a number or a string. + * + * @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). + * + * @param date - The reference date to take constructor from + * @param value - The value to create the date + * + * @returns Date initialized using the given date and value + * + * @example + * import { constructFrom } from 'date-fns' + * + * // A function that clones a date preserving the original type + * function cloneDate { + +"use strict"; + +exports.differenceInCalendarDays = differenceInCalendarDays; +var _index = __webpack_require__(/*! ./constants.js */ "./node_modules/date-fns/constants.js"); +var _index2 = __webpack_require__(/*! ./startOfDay.js */ "./node_modules/date-fns/startOfDay.js"); +var _index3 = __webpack_require__(/*! ./_lib/getTimezoneOffsetInMilliseconds.js */ "./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js"); + +/** + * @name differenceInCalendarDays + * @category Day Helpers + * @summary Get the number of calendar days between the given dates. + * + * @description + * Get the number of calendar days between the given dates. This means that the times are removed + * from the dates and then the difference in days is calculated. + * + * @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). + * + * @param dateLeft - The later date + * @param dateRight - The earlier date + * + * @returns The number of calendar days + * + * @example + * // How many calendar days are between + * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00? + * const result = differenceInCalendarDays( + * new Date(2012, 6, 2, 0, 0), + * new Date(2011, 6, 2, 23, 0) + * ) + * //=> 366 + * // How many calendar days are between + * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00? + * const result = differenceInCalendarDays( + * new Date(2011, 6, 3, 0, 1), + * new Date(2011, 6, 2, 23, 59) + * ) + * //=> 1 + */ +function differenceInCalendarDays(dateLeft, dateRight) { + const startOfDayLeft = (0, _index2.startOfDay)(dateLeft); + const startOfDayRight = (0, _index2.startOfDay)(dateRight); + + const timestampLeft = + +startOfDayLeft - + (0, _index3.getTimezoneOffsetInMilliseconds)(startOfDayLeft); + const timestampRight = + +startOfDayRight - + (0, _index3.getTimezoneOffsetInMilliseconds)(startOfDayRight); + + // Round the number of days to the nearest integer because the number of + // milliseconds in a day is not constant (e.g. it's different in the week of + // the daylight saving time clock shift). + return Math.round( + (timestampLeft - timestampRight) / _index.millisecondsInDay, + ); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/differenceInCalendarMonths.js": +/*!*************************************************************!*\ + !*** ./node_modules/date-fns/differenceInCalendarMonths.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.differenceInCalendarMonths = differenceInCalendarMonths; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name differenceInCalendarMonths + * @category Month Helpers + * @summary Get the number of calendar months between the given dates. + * + * @description + * Get the number of calendar months between the given dates. + * + * @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). + * + * @param dateLeft - The later date + * @param dateRight - The earlier date + * + * @returns The number of calendar months + * + * @example + * // How many calendar months are between 31 January 2014 and 1 September 2014? + * const result = differenceInCalendarMonths( + * new Date(2014, 8, 1), + * new Date(2014, 0, 31) + * ) + * //=> 8 + */ +function differenceInCalendarMonths(dateLeft, dateRight) { + const _dateLeft = (0, _index.toDate)(dateLeft); + const _dateRight = (0, _index.toDate)(dateRight); + + const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear(); + const monthDiff = _dateLeft.getMonth() - _dateRight.getMonth(); + + return yearDiff * 12 + monthDiff; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/differenceInCalendarQuarters.js": +/*!***************************************************************!*\ + !*** ./node_modules/date-fns/differenceInCalendarQuarters.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.differenceInCalendarQuarters = differenceInCalendarQuarters; +var _index = __webpack_require__(/*! ./getQuarter.js */ "./node_modules/date-fns/getQuarter.js"); +var _index2 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name differenceInCalendarQuarters + * @category Quarter Helpers + * @summary Get the number of calendar quarters between the given dates. + * + * @description + * Get the number of calendar quarters between the given dates. + * + * @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). + * + * @param dateLeft - The later date + * @param dateRight - The earlier date + + * @returns The number of calendar quarters + * + * @example + * // How many calendar quarters are between 31 December 2013 and 2 July 2014? + * const result = differenceInCalendarQuarters( + * new Date(2014, 6, 2), + * new Date(2013, 11, 31) + * ) + * //=> 3 + */ +function differenceInCalendarQuarters(dateLeft, dateRight) { + const _dateLeft = (0, _index2.toDate)(dateLeft); + const _dateRight = (0, _index2.toDate)(dateRight); + + const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear(); + const quarterDiff = + (0, _index.getQuarter)(_dateLeft) - (0, _index.getQuarter)(_dateRight); + + return yearDiff * 4 + quarterDiff; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/differenceInCalendarYears.js": +/*!************************************************************!*\ + !*** ./node_modules/date-fns/differenceInCalendarYears.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.differenceInCalendarYears = differenceInCalendarYears; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name differenceInCalendarYears + * @category Year Helpers + * @summary Get the number of calendar years between the given dates. + * + * @description + * Get the number of calendar years between the given dates. + * + * @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). + * + * @param dateLeft - The later date + * @param dateRight - The earlier date + + * @returns The number of calendar years + * + * @example + * // How many calendar years are between 31 December 2013 and 11 February 2015? + * const result = differenceInCalendarYears( + * new Date(2015, 1, 11), + * new Date(2013, 11, 31) + * ) + * //=> 2 + */ +function differenceInCalendarYears(dateLeft, dateRight) { + const _dateLeft = (0, _index.toDate)(dateLeft); + const _dateRight = (0, _index.toDate)(dateRight); + + return _dateLeft.getFullYear() - _dateRight.getFullYear(); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/endOfDay.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/endOfDay.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.endOfDay = endOfDay; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name endOfDay + * @category Day Helpers + * @summary Return the end of a day for the given date. + * + * @description + * Return the end of a day for the given date. + * The result will be in the local timezone. + * + * @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). + * + * @param date - The original date + * + * @returns The end of a day + * + * @example + * // The end of a day for 2 September 2014 11:55:00: + * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Tue Sep 02 2014 23:59:59.999 + */ +function endOfDay(date) { + const _date = (0, _index.toDate)(date); + _date.setHours(23, 59, 59, 999); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/endOfMonth.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/endOfMonth.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.endOfMonth = endOfMonth; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name endOfMonth + * @category Month Helpers + * @summary Return the end of a month for the given date. + * + * @description + * Return the end of a month for the given date. + * The result will be in the local timezone. + * + * @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). + * + * @param date - The original date + * + * @returns The end of a month + * + * @example + * // The end of a month for 2 September 2014 11:55:00: + * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Tue Sep 30 2014 23:59:59.999 + */ +function endOfMonth(date) { + const _date = (0, _index.toDate)(date); + const month = _date.getMonth(); + _date.setFullYear(_date.getFullYear(), month + 1, 0); + _date.setHours(23, 59, 59, 999); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/endOfWeek.js": +/*!********************************************!*\ + !*** ./node_modules/date-fns/endOfWeek.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.endOfWeek = endOfWeek; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +var _index2 = __webpack_require__(/*! ./_lib/defaultOptions.js */ "./node_modules/date-fns/_lib/defaultOptions.js"); + +/** + * The {@link endOfWeek} function options. + */ + +/** + * @name endOfWeek + * @category Week Helpers + * @summary Return the end of a week for the given date. + * + * @description + * Return the end of a week for the given date. + * The result will be in the local timezone. + * + * @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). + * + * @param date - The original date + * @param options - An object with options + * + * @returns The end of a week + * + * @example + * // The end of a week for 2 September 2014 11:55:00: + * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Sat Sep 06 2014 23:59:59.999 + * + * @example + * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00: + * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 }) + * //=> Sun Sep 07 2014 23:59:59.999 + */ +function endOfWeek(date, options) { + const defaultOptions = (0, _index2.getDefaultOptions)(); + const weekStartsOn = + options?.weekStartsOn ?? + options?.locale?.options?.weekStartsOn ?? + defaultOptions.weekStartsOn ?? + defaultOptions.locale?.options?.weekStartsOn ?? + 0; + + const _date = (0, _index.toDate)(date); + const day = _date.getDay(); + const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); + + _date.setDate(_date.getDate() + diff); + _date.setHours(23, 59, 59, 999); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/endOfYear.js": +/*!********************************************!*\ + !*** ./node_modules/date-fns/endOfYear.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.endOfYear = endOfYear; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name endOfYear + * @category Year Helpers + * @summary Return the end of a year for the given date. + * + * @description + * Return the end of a year for the given date. + * The result will be in the local timezone. + * + * @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). + * + * @param date - The original date + * + * @returns The end of a year + * + * @example + * // The end of a year for 2 September 2014 11:55:00: + * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00)) + * //=> Wed Dec 31 2014 23:59:59.999 + */ +function endOfYear(date) { + const _date = (0, _index.toDate)(date); + const year = _date.getFullYear(); + _date.setFullYear(year + 1, 0, 0); + _date.setHours(23, 59, 59, 999); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/format.js": +/*!*****************************************!*\ + !*** ./node_modules/date-fns/format.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.format = exports.formatDate = format; +Object.defineProperty(exports, "formatters", ({ + enumerable: true, + get: function () { + return _index3.formatters; + }, +})); +Object.defineProperty(exports, "longFormatters", ({ + enumerable: true, + get: function () { + return _index4.longFormatters; + }, +})); +var _index = __webpack_require__(/*! ./_lib/defaultLocale.js */ "./node_modules/date-fns/_lib/defaultLocale.js"); +var _index2 = __webpack_require__(/*! ./_lib/defaultOptions.js */ "./node_modules/date-fns/_lib/defaultOptions.js"); +var _index3 = __webpack_require__(/*! ./_lib/format/formatters.js */ "./node_modules/date-fns/_lib/format/formatters.js"); +var _index4 = __webpack_require__(/*! ./_lib/format/longFormatters.js */ "./node_modules/date-fns/_lib/format/longFormatters.js"); +var _index5 = __webpack_require__(/*! ./_lib/protectedTokens.js */ "./node_modules/date-fns/_lib/protectedTokens.js"); + +var _index6 = __webpack_require__(/*! ./isValid.js */ "./node_modules/date-fns/isValid.js"); +var _index7 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +// Rexports of internal for libraries to use. +// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874 + +// This RegExp consists of three parts separated by `|`: +// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token +// (one of the certain letters followed by `o`) +// - (\w)\1* matches any sequences of the same letter +// - '' matches two quote characters in a row +// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), +// except a single quote symbol, which ends the sequence. +// Two quote characters do not end the sequence. +// If there is no matching single quote +// then the sequence will continue until the end of the string. +// - . matches any single character unmatched by previous parts of the RegExps +const formattingTokensRegExp = + /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; + +// This RegExp catches symbols escaped by quotes, and also +// sequences of symbols P, p, and the combinations like `PPPPPPPppppp` +const longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; + +const escapedStringRegExp = /^'([^]*?)'?$/; +const doubleQuoteRegExp = /''/g; +const unescapedLatinCharacterRegExp = /[a-zA-Z]/; + +/** + * The {@link format} function options. + */ + +/** + * @name format + * @alias formatDate + * @category Common Helpers + * @summary Format the date. + * + * @description + * Return the formatted date string in the given format. The result may vary by locale. + * + * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries. + * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * The characters wrapped between two single quotes characters (') are escaped. + * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. + * (see the last example) + * + * Format of the string is based on Unicode Technical Standard #35: + * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table + * with a few additions (see note 7 below the table). + * + * Accepted patterns: + * | Unit | Pattern | Result examples | Notes | + * |---------------------------------|---------|-----------------------------------|-------| + * | Era | G..GGG | AD, BC | | + * | | GGGG | Anno Domini, Before Christ | 2 | + * | | GGGGG | A, B | | + * | Calendar year | y | 44, 1, 1900, 2017 | 5 | + * | | yo | 44th, 1st, 0th, 17th | 5,7 | + * | | yy | 44, 01, 00, 17 | 5 | + * | | yyy | 044, 001, 1900, 2017 | 5 | + * | | yyyy | 0044, 0001, 1900, 2017 | 5 | + * | | yyyyy | ... | 3,5 | + * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 | + * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 | + * | | YY | 44, 01, 00, 17 | 5,8 | + * | | YYY | 044, 001, 1900, 2017 | 5 | + * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 | + * | | YYYYY | ... | 3,5 | + * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 | + * | | RR | -43, 00, 01, 1900, 2017 | 5,7 | + * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 | + * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 | + * | | RRRRR | ... | 3,5,7 | + * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 | + * | | uu | -43, 01, 1900, 2017 | 5 | + * | | uuu | -043, 001, 1900, 2017 | 5 | + * | | uuuu | -0043, 0001, 1900, 2017 | 5 | + * | | uuuuu | ... | 3,5 | + * | Quarter (formatting) | Q | 1, 2, 3, 4 | | + * | | Qo | 1st, 2nd, 3rd, 4th | 7 | + * | | QQ | 01, 02, 03, 04 | | + * | | QQQ | Q1, Q2, Q3, Q4 | | + * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 | + * | | QQQQQ | 1, 2, 3, 4 | 4 | + * | Quarter (stand-alone) | q | 1, 2, 3, 4 | | + * | | qo | 1st, 2nd, 3rd, 4th | 7 | + * | | qq | 01, 02, 03, 04 | | + * | | qqq | Q1, Q2, Q3, Q4 | | + * | | qqqq | 1st quarter, 2nd quarter, ... | 2 | + * | | qqqqq | 1, 2, 3, 4 | 4 | + * | Month (formatting) | M | 1, 2, ..., 12 | | + * | | Mo | 1st, 2nd, ..., 12th | 7 | + * | | MM | 01, 02, ..., 12 | | + * | | MMM | Jan, Feb, ..., Dec | | + * | | MMMM | January, February, ..., December | 2 | + * | | MMMMM | J, F, ..., D | | + * | Month (stand-alone) | L | 1, 2, ..., 12 | | + * | | Lo | 1st, 2nd, ..., 12th | 7 | + * | | LL | 01, 02, ..., 12 | | + * | | LLL | Jan, Feb, ..., Dec | | + * | | LLLL | January, February, ..., December | 2 | + * | | LLLLL | J, F, ..., D | | + * | Local week of year | w | 1, 2, ..., 53 | | + * | | wo | 1st, 2nd, ..., 53th | 7 | + * | | ww | 01, 02, ..., 53 | | + * | ISO week of year | I | 1, 2, ..., 53 | 7 | + * | | Io | 1st, 2nd, ..., 53th | 7 | + * | | II | 01, 02, ..., 53 | 7 | + * | Day of month | d | 1, 2, ..., 31 | | + * | | do | 1st, 2nd, ..., 31st | 7 | + * | | dd | 01, 02, ..., 31 | | + * | Day of year | D | 1, 2, ..., 365, 366 | 9 | + * | | Do | 1st, 2nd, ..., 365th, 366th | 7 | + * | | DD | 01, 02, ..., 365, 366 | 9 | + * | | DDD | 001, 002, ..., 365, 366 | | + * | | DDDD | ... | 3 | + * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | | + * | | EEEE | Monday, Tuesday, ..., Sunday | 2 | + * | | EEEEE | M, T, W, T, F, S, S | | + * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | | + * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 | + * | | io | 1st, 2nd, ..., 7th | 7 | + * | | ii | 01, 02, ..., 07 | 7 | + * | | iii | Mon, Tue, Wed, ..., Sun | 7 | + * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 | + * | | iiiii | M, T, W, T, F, S, S | 7 | + * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 | + * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | | + * | | eo | 2nd, 3rd, ..., 1st | 7 | + * | | ee | 02, 03, ..., 01 | | + * | | eee | Mon, Tue, Wed, ..., Sun | | + * | | eeee | Monday, Tuesday, ..., Sunday | 2 | + * | | eeeee | M, T, W, T, F, S, S | | + * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | | + * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | | + * | | co | 2nd, 3rd, ..., 1st | 7 | + * | | cc | 02, 03, ..., 01 | | + * | | ccc | Mon, Tue, Wed, ..., Sun | | + * | | cccc | Monday, Tuesday, ..., Sunday | 2 | + * | | ccccc | M, T, W, T, F, S, S | | + * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | | + * | AM, PM | a..aa | AM, PM | | + * | | aaa | am, pm | | + * | | aaaa | a.m., p.m. | 2 | + * | | aaaaa | a, p | | + * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | | + * | | bbb | am, pm, noon, midnight | | + * | | bbbb | a.m., p.m., noon, midnight | 2 | + * | | bbbbb | a, p, n, mi | | + * | Flexible day period | B..BBB | at night, in the morning, ... | | + * | | BBBB | at night, in the morning, ... | 2 | + * | | BBBBB | at night, in the morning, ... | | + * | Hour [1-12] | h | 1, 2, ..., 11, 12 | | + * | | ho | 1st, 2nd, ..., 11th, 12th | 7 | + * | | hh | 01, 02, ..., 11, 12 | | + * | Hour [0-23] | H | 0, 1, 2, ..., 23 | | + * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 | + * | | HH | 00, 01, 02, ..., 23 | | + * | Hour [0-11] | K | 1, 2, ..., 11, 0 | | + * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 | + * | | KK | 01, 02, ..., 11, 00 | | + * | Hour [1-24] | k | 24, 1, 2, ..., 23 | | + * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 | + * | | kk | 24, 01, 02, ..., 23 | | + * | Minute | m | 0, 1, ..., 59 | | + * | | mo | 0th, 1st, ..., 59th | 7 | + * | | mm | 00, 01, ..., 59 | | + * | Second | s | 0, 1, ..., 59 | | + * | | so | 0th, 1st, ..., 59th | 7 | + * | | ss | 00, 01, ..., 59 | | + * | Fraction of second | S | 0, 1, ..., 9 | | + * | | SS | 00, 01, ..., 99 | | + * | | SSS | 000, 001, ..., 999 | | + * | | SSSS | ... | 3 | + * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | | + * | | XX | -0800, +0530, Z | | + * | | XXX | -08:00, +05:30, Z | | + * | | XXXX | -0800, +0530, Z, +123456 | 2 | + * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | | + * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | | + * | | xx | -0800, +0530, +0000 | | + * | | xxx | -08:00, +05:30, +00:00 | 2 | + * | | xxxx | -0800, +0530, +0000, +123456 | | + * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | | + * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | | + * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 | + * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 | + * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 | + * | Seconds timestamp | t | 512969520 | 7 | + * | | tt | ... | 3,7 | + * | Milliseconds timestamp | T | 512969520900 | 7 | + * | | TT | ... | 3,7 | + * | Long localized date | P | 04/29/1453 | 7 | + * | | PP | Apr 29, 1453 | 7 | + * | | PPP | April 29th, 1453 | 7 | + * | | PPPP | Friday, April 29th, 1453 | 2,7 | + * | Long localized time | p | 12:00 AM | 7 | + * | | pp | 12:00:00 AM | 7 | + * | | ppp | 12:00:00 AM GMT+2 | 7 | + * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 | + * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 | + * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 | + * | | PPPppp | April 29th, 1453 at ... | 7 | + * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 | + * Notes: + * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale + * are the same as "stand-alone" units, but are different in some languages. + * "Formatting" units are declined according to the rules of the language + * in the context of a date. "Stand-alone" units are always nominative singular: + * + * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'` + * + * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` + * + * 2. Any sequence of the identical letters is a pattern, unless it is escaped by + * the single quote characters (see below). + * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`) + * the output will be the same as default pattern for this unit, usually + * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units + * are marked with "2" in the last column of the table. + * + * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'` + * + * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'` + * + * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'` + * + * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'` + * + * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'` + * + * 3. Some patterns could be unlimited length (such as `yyyyyyyy`). + * The output will be padded with zeros to match the length of the pattern. + * + * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'` + * + * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales. + * These tokens represent the shortest form of the quarter. + * + * 5. The main difference between `y` and `u` patterns are B.C. years: + * + * | Year | `y` | `u` | + * |------|-----|-----| + * | AC 1 | 1 | 1 | + * | BC 1 | 1 | 0 | + * | BC 2 | 2 | -1 | + * + * Also `yy` always returns the last two digits of a year, + * while `uu` pads single digit years to 2 characters and returns other years unchanged: + * + * | Year | `yy` | `uu` | + * |------|------|------| + * | 1 | 01 | 01 | + * | 14 | 14 | 14 | + * | 376 | 76 | 376 | + * | 1453 | 53 | 1453 | + * + * The same difference is true for local and ISO week-numbering years (`Y` and `R`), + * except local week-numbering years are dependent on `options.weekStartsOn` + * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear) + * and [getWeekYear](https://date-fns.org/docs/getWeekYear)). + * + * 6. Specific non-location timezones are currently unavailable in `date-fns`, + * so right now these tokens fall back to GMT timezones. + * + * 7. These patterns are not in the Unicode Technical Standard #35: + * - `i`: ISO day of week + * - `I`: ISO week of year + * - `R`: ISO week-numbering year + * - `t`: seconds timestamp + * - `T`: milliseconds timestamp + * - `o`: ordinal number modifier + * - `P`: long localized date + * - `p`: long localized time + * + * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. + * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month. + * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * @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). + * + * @param date - The original date + * @param format - The string of tokens + * @param options - An object with options + * + * @returns The formatted date string + * + * @throws `date` must not be Invalid Date + * @throws `options.locale` must contain `localize` property + * @throws `options.locale` must contain `formatLong` property + * @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 + * @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 + * @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 + * @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 + * @throws format string contains an unescaped latin alphabet character + * + * @example + * // Represent 11 February 2014 in middle-endian format: + * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy') + * //=> '02/11/2014' + * + * @example + * // Represent 2 July 2014 in Esperanto: + * import { eoLocale } from 'date-fns/locale/eo' + * const result = format(new Date(2014, 6, 2), "do 'de' MMMM yyyy", { + * locale: eoLocale + * }) + * //=> '2-a de julio 2014' + * + * @example + * // Escape string by single quote characters: + * const result = format(new Date(2014, 6, 2, 15), "h 'o''clock'") + * //=> "3 o'clock" + */ +function format(date, formatStr, options) { + const defaultOptions = (0, _index2.getDefaultOptions)(); + const locale = + options?.locale ?? defaultOptions.locale ?? _index.defaultLocale; + + const firstWeekContainsDate = + options?.firstWeekContainsDate ?? + options?.locale?.options?.firstWeekContainsDate ?? + defaultOptions.firstWeekContainsDate ?? + defaultOptions.locale?.options?.firstWeekContainsDate ?? + 1; + + const weekStartsOn = + options?.weekStartsOn ?? + options?.locale?.options?.weekStartsOn ?? + defaultOptions.weekStartsOn ?? + defaultOptions.locale?.options?.weekStartsOn ?? + 0; + + const originalDate = (0, _index7.toDate)(date); + + if (!(0, _index6.isValid)(originalDate)) { + throw new RangeError("Invalid time value"); + } + + let parts = formatStr + .match(longFormattingTokensRegExp) + .map((substring) => { + const firstCharacter = substring[0]; + if (firstCharacter === "p" || firstCharacter === "P") { + const longFormatter = _index4.longFormatters[firstCharacter]; + return longFormatter(substring, locale.formatLong); + } + return substring; + }) + .join("") + .match(formattingTokensRegExp) + .map((substring) => { + // Replace two single quote characters with one single quote character + if (substring === "''") { + return { isToken: false, value: "'" }; + } + + const firstCharacter = substring[0]; + if (firstCharacter === "'") { + return { isToken: false, value: cleanEscapedString(substring) }; + } + + if (_index3.formatters[firstCharacter]) { + return { isToken: true, value: substring }; + } + + if (firstCharacter.match(unescapedLatinCharacterRegExp)) { + throw new RangeError( + "Format string contains an unescaped latin alphabet character `" + + firstCharacter + + "`", + ); + } + + return { isToken: false, value: substring }; + }); + + // invoke localize preprocessor (only for french locales at the moment) + if (locale.localize.preprocessor) { + parts = locale.localize.preprocessor(originalDate, parts); + } + + const formatterOptions = { + firstWeekContainsDate, + weekStartsOn, + locale, + }; + + return parts + .map((part) => { + if (!part.isToken) return part.value; + + const token = part.value; + + if ( + (!options?.useAdditionalWeekYearTokens && + (0, _index5.isProtectedWeekYearToken)(token)) || + (!options?.useAdditionalDayOfYearTokens && + (0, _index5.isProtectedDayOfYearToken)(token)) + ) { + (0, _index5.warnOrThrowProtectedError)(token, formatStr, String(date)); + } + + const formatter = _index3.formatters[token[0]]; + return formatter(originalDate, token, locale.localize, formatterOptions); + }) + .join(""); +} + +function cleanEscapedString(input) { + const matched = input.match(escapedStringRegExp); + + if (!matched) { + return input; + } + + return matched[1].replace(doubleQuoteRegExp, "'"); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getDate.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/getDate.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getDate = getDate; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getDate + * @category Day Helpers + * @summary Get the day of the month of the given date. + * + * @description + * Get the day of the month of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The day of month + * + * @example + * // Which day of the month is 29 February 2012? + * const result = getDate(new Date(2012, 1, 29)) + * //=> 29 + */ +function getDate(date) { + const _date = (0, _index.toDate)(date); + const dayOfMonth = _date.getDate(); + return dayOfMonth; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getDay.js": +/*!*****************************************!*\ + !*** ./node_modules/date-fns/getDay.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getDay = getDay; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getDay + * @category Weekday Helpers + * @summary Get the day of the week of the given date. + * + * @description + * Get the day of the week of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The day of week, 0 represents Sunday + * + * @example + * // Which day of the week is 29 February 2012? + * const result = getDay(new Date(2012, 1, 29)) + * //=> 3 + */ +function getDay(date) { + const _date = (0, _index.toDate)(date); + const day = _date.getDay(); + return day; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getDayOfYear.js": +/*!***********************************************!*\ + !*** ./node_modules/date-fns/getDayOfYear.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getDayOfYear = getDayOfYear; +var _index = __webpack_require__(/*! ./differenceInCalendarDays.js */ "./node_modules/date-fns/differenceInCalendarDays.js"); +var _index2 = __webpack_require__(/*! ./startOfYear.js */ "./node_modules/date-fns/startOfYear.js"); +var _index3 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getDayOfYear + * @category Day Helpers + * @summary Get the day of the year of the given date. + * + * @description + * Get the day of the year of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The day of year + * + * @example + * // Which day of the year is 2 July 2014? + * const result = getDayOfYear(new Date(2014, 6, 2)) + * //=> 183 + */ +function getDayOfYear(date) { + const _date = (0, _index3.toDate)(date); + const diff = (0, _index.differenceInCalendarDays)( + _date, + (0, _index2.startOfYear)(_date), + ); + const dayOfYear = diff + 1; + return dayOfYear; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getDaysInMonth.js": +/*!*************************************************!*\ + !*** ./node_modules/date-fns/getDaysInMonth.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getDaysInMonth = getDaysInMonth; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); +var _index2 = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); + +/** + * @name getDaysInMonth + * @category Month Helpers + * @summary Get the number of days in a month of the given date. + * + * @description + * Get the number of days in a month of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The number of days in a month + * + * @example + * // How many days are in February 2000? + * const result = getDaysInMonth(new Date(2000, 1)) + * //=> 29 + */ +function getDaysInMonth(date) { + const _date = (0, _index.toDate)(date); + const year = _date.getFullYear(); + const monthIndex = _date.getMonth(); + const lastDayOfMonth = (0, _index2.constructFrom)(date, 0); + lastDayOfMonth.setFullYear(year, monthIndex + 1, 0); + lastDayOfMonth.setHours(0, 0, 0, 0); + return lastDayOfMonth.getDate(); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getDefaultOptions.js": +/*!****************************************************!*\ + !*** ./node_modules/date-fns/getDefaultOptions.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getDefaultOptions = getDefaultOptions; + +var _index = __webpack_require__(/*! ./_lib/defaultOptions.js */ "./node_modules/date-fns/_lib/defaultOptions.js"); + +/** + * @name getDefaultOptions + * @category Common Helpers + * @summary Get default options. + * @pure false + * + * @description + * Returns an object that contains defaults for + * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate` + * arguments for all functions. + * + * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions). + * + * @returns The default options + * + * @example + * const result = getDefaultOptions() + * //=> {} + * + * @example + * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 }) + * const result = getDefaultOptions() + * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 } + */ +function getDefaultOptions() { + return Object.assign({}, (0, _index.getDefaultOptions)()); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getHours.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/getHours.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getHours = getHours; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getHours + * @category Hour Helpers + * @summary Get the hours of the given date. + * + * @description + * Get the hours of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The hours + * + * @example + * // Get the hours of 29 February 2012 11:45:00: + * const result = getHours(new Date(2012, 1, 29, 11, 45)) + * //=> 11 + */ +function getHours(date) { + const _date = (0, _index.toDate)(date); + const hours = _date.getHours(); + return hours; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getISODay.js": +/*!********************************************!*\ + !*** ./node_modules/date-fns/getISODay.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getISODay = getISODay; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getISODay + * @category Weekday Helpers + * @summary Get the day of the ISO week of the given date. + * + * @description + * Get the day of the ISO week of the given date, + * which is 7 for Sunday, 1 for Monday etc. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @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). + * + * @param date - The given date + * + * @returns The day of ISO week + * + * @example + * // Which day of the ISO week is 26 February 2012? + * const result = getISODay(new Date(2012, 1, 26)) + * //=> 7 + */ +function getISODay(date) { + const _date = (0, _index.toDate)(date); + let day = _date.getDay(); + + if (day === 0) { + day = 7; + } + + return day; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getISOWeek.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/getISOWeek.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getISOWeek = getISOWeek; +var _index = __webpack_require__(/*! ./constants.js */ "./node_modules/date-fns/constants.js"); +var _index2 = __webpack_require__(/*! ./startOfISOWeek.js */ "./node_modules/date-fns/startOfISOWeek.js"); +var _index3 = __webpack_require__(/*! ./startOfISOWeekYear.js */ "./node_modules/date-fns/startOfISOWeekYear.js"); +var _index4 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getISOWeek + * @category ISO Week Helpers + * @summary Get the ISO week of the given date. + * + * @description + * Get the ISO week of the given date. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @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). + * + * @param date - The given date + * + * @returns The ISO week + * + * @example + * // Which week of the ISO-week numbering year is 2 January 2005? + * const result = getISOWeek(new Date(2005, 0, 2)) + * //=> 53 + */ +function getISOWeek(date) { + const _date = (0, _index4.toDate)(date); + const diff = + +(0, _index2.startOfISOWeek)(_date) - + +(0, _index3.startOfISOWeekYear)(_date); + + // Round the number of weeks to the nearest integer because the number of + // milliseconds in a week is not constant (e.g. it's different in the week of + // the daylight saving time clock shift). + return Math.round(diff / _index.millisecondsInWeek) + 1; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getISOWeekYear.js": +/*!*************************************************!*\ + !*** ./node_modules/date-fns/getISOWeekYear.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getISOWeekYear = getISOWeekYear; +var _index = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _index2 = __webpack_require__(/*! ./startOfISOWeek.js */ "./node_modules/date-fns/startOfISOWeek.js"); +var _index3 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getISOWeekYear + * @category ISO Week-Numbering Year Helpers + * @summary Get the ISO week-numbering year of the given date. + * + * @description + * Get the ISO week-numbering year of the given date, + * which always starts 3 days before the year's first Thursday. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @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). + * + * @param date - The given date + * + * @returns The ISO week-numbering year + * + * @example + * // Which ISO-week numbering year is 2 January 2005? + * const result = getISOWeekYear(new Date(2005, 0, 2)) + * //=> 2004 + */ +function getISOWeekYear(date) { + const _date = (0, _index3.toDate)(date); + const year = _date.getFullYear(); + + const fourthOfJanuaryOfNextYear = (0, _index.constructFrom)(date, 0); + fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4); + fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0); + const startOfNextYear = (0, _index2.startOfISOWeek)( + fourthOfJanuaryOfNextYear, + ); + + const fourthOfJanuaryOfThisYear = (0, _index.constructFrom)(date, 0); + fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4); + fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0); + const startOfThisYear = (0, _index2.startOfISOWeek)( + fourthOfJanuaryOfThisYear, + ); + + if (_date.getTime() >= startOfNextYear.getTime()) { + return year + 1; + } else if (_date.getTime() >= startOfThisYear.getTime()) { + return year; + } else { + return year - 1; + } +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getMinutes.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/getMinutes.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getMinutes = getMinutes; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getMinutes + * @category Minute Helpers + * @summary Get the minutes of the given date. + * + * @description + * Get the minutes of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The minutes + * + * @example + * // Get the minutes of 29 February 2012 11:45:05: + * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5)) + * //=> 45 + */ +function getMinutes(date) { + const _date = (0, _index.toDate)(date); + const minutes = _date.getMinutes(); + return minutes; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getMonth.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/getMonth.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getMonth = getMonth; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getMonth + * @category Month Helpers + * @summary Get the month of the given date. + * + * @description + * Get the month of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The month index (0-11) + * + * @example + * // Which month is 29 February 2012? + * const result = getMonth(new Date(2012, 1, 29)) + * //=> 1 + */ +function getMonth(date) { + const _date = (0, _index.toDate)(date); + const month = _date.getMonth(); + return month; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getQuarter.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/getQuarter.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getQuarter = getQuarter; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getQuarter + * @category Quarter Helpers + * @summary Get the year quarter of the given date. + * + * @description + * Get the year quarter of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The quarter + * + * @example + * // Which quarter is 2 July 2014? + * const result = getQuarter(new Date(2014, 6, 2)) + * //=> 3 + */ +function getQuarter(date) { + const _date = (0, _index.toDate)(date); + const quarter = Math.trunc(_date.getMonth() / 3) + 1; + return quarter; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getSeconds.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/getSeconds.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getSeconds = getSeconds; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getSeconds + * @category Second Helpers + * @summary Get the seconds of the given date. + * + * @description + * Get the seconds of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The seconds + * + * @example + * // Get the seconds of 29 February 2012 11:45:05.123: + * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123)) + * //=> 5 + */ +function getSeconds(date) { + const _date = (0, _index.toDate)(date); + const seconds = _date.getSeconds(); + return seconds; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getTime.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/getTime.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getTime = getTime; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getTime + * @category Timestamp Helpers + * @summary Get the milliseconds timestamp of the given date. + * + * @description + * Get the milliseconds timestamp of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The timestamp + * + * @example + * // Get the timestamp of 29 February 2012 11:45:05.123: + * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123)) + * //=> 1330515905123 + */ +function getTime(date) { + const _date = (0, _index.toDate)(date); + const timestamp = _date.getTime(); + return timestamp; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getWeek.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/getWeek.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getWeek = getWeek; +var _index = __webpack_require__(/*! ./constants.js */ "./node_modules/date-fns/constants.js"); +var _index2 = __webpack_require__(/*! ./startOfWeek.js */ "./node_modules/date-fns/startOfWeek.js"); +var _index3 = __webpack_require__(/*! ./startOfWeekYear.js */ "./node_modules/date-fns/startOfWeekYear.js"); +var _index4 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * The {@link getWeek} function options. + */ + +/** + * @name getWeek + * @category Week Helpers + * @summary Get the local week index of the given date. + * + * @description + * Get the local week index of the given date. + * The exact calculation depends on the values of + * `options.weekStartsOn` (which is the index of the first day of the week) + * and `options.firstWeekContainsDate` (which is the day of January, which is always in + * the first week of the week-numbering year) + * + * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system + * + * @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). + * + * @param date - The given date + * @param options - An object with options + * + * @returns The week + * + * @example + * // Which week of the local week numbering year is 2 January 2005 with default options? + * const result = getWeek(new Date(2005, 0, 2)) + * //=> 2 + * + * @example + * // Which week of the local week numbering year is 2 January 2005, + * // if Monday is the first day of the week, + * // and the first week of the year always contains 4 January? + * const result = getWeek(new Date(2005, 0, 2), { + * weekStartsOn: 1, + * firstWeekContainsDate: 4 + * }) + * //=> 53 + */ + +function getWeek(date, options) { + const _date = (0, _index4.toDate)(date); + const diff = + +(0, _index2.startOfWeek)(_date, options) - + +(0, _index3.startOfWeekYear)(_date, options); + + // Round the number of weeks to the nearest integer because the number of + // milliseconds in a week is not constant (e.g. it's different in the week of + // the daylight saving time clock shift). + return Math.round(diff / _index.millisecondsInWeek) + 1; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getWeekYear.js": +/*!**********************************************!*\ + !*** ./node_modules/date-fns/getWeekYear.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getWeekYear = getWeekYear; +var _index = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _index2 = __webpack_require__(/*! ./startOfWeek.js */ "./node_modules/date-fns/startOfWeek.js"); +var _index3 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +var _index4 = __webpack_require__(/*! ./_lib/defaultOptions.js */ "./node_modules/date-fns/_lib/defaultOptions.js"); + +/** + * The {@link getWeekYear} function options. + */ + +/** + * @name getWeekYear + * @category Week-Numbering Year Helpers + * @summary Get the local week-numbering year of the given date. + * + * @description + * Get the local week-numbering year of the given date. + * The exact calculation depends on the values of + * `options.weekStartsOn` (which is the index of the first day of the week) + * and `options.firstWeekContainsDate` (which is the day of January, which is always in + * the first week of the week-numbering year) + * + * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system + * + * @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). + * + * @param date - The given date + * @param options - An object with options. + * + * @returns The local week-numbering year + * + * @example + * // Which week numbering year is 26 December 2004 with the default settings? + * const result = getWeekYear(new Date(2004, 11, 26)) + * //=> 2005 + * + * @example + * // Which week numbering year is 26 December 2004 if week starts on Saturday? + * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 }) + * //=> 2004 + * + * @example + * // Which week numbering year is 26 December 2004 if the first week contains 4 January? + * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 }) + * //=> 2004 + */ +function getWeekYear(date, options) { + const _date = (0, _index3.toDate)(date); + const year = _date.getFullYear(); + + const defaultOptions = (0, _index4.getDefaultOptions)(); + const firstWeekContainsDate = + options?.firstWeekContainsDate ?? + options?.locale?.options?.firstWeekContainsDate ?? + defaultOptions.firstWeekContainsDate ?? + defaultOptions.locale?.options?.firstWeekContainsDate ?? + 1; + + const firstWeekOfNextYear = (0, _index.constructFrom)(date, 0); + firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate); + firstWeekOfNextYear.setHours(0, 0, 0, 0); + const startOfNextYear = (0, _index2.startOfWeek)( + firstWeekOfNextYear, + options, + ); + + const firstWeekOfThisYear = (0, _index.constructFrom)(date, 0); + firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate); + firstWeekOfThisYear.setHours(0, 0, 0, 0); + const startOfThisYear = (0, _index2.startOfWeek)( + firstWeekOfThisYear, + options, + ); + + if (_date.getTime() >= startOfNextYear.getTime()) { + return year + 1; + } else if (_date.getTime() >= startOfThisYear.getTime()) { + return year; + } else { + return year - 1; + } +} + + +/***/ }), + +/***/ "./node_modules/date-fns/getYear.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/getYear.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.getYear = getYear; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name getYear + * @category Year Helpers + * @summary Get the year of the given date. + * + * @description + * Get the year of the given date. + * + * @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). + * + * @param date - The given date + * + * @returns The year + * + * @example + * // Which year is 2 July 2014? + * const result = getYear(new Date(2014, 6, 2)) + * //=> 2014 + */ +function getYear(date) { + return (0, _index.toDate)(date).getFullYear(); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isAfter.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/isAfter.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.isAfter = isAfter; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name isAfter + * @category Common Helpers + * @summary Is the first date after the second one? + * + * @description + * Is the first date after the second one? + * + * @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). + * + * @param date - The date that should be after the other one to return true + * @param dateToCompare - The date to compare with + * + * @returns The first date is after the second date + * + * @example + * // Is 10 July 1989 after 11 February 1987? + * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11)) + * //=> true + */ +function isAfter(date, dateToCompare) { + const _date = (0, _index.toDate)(date); + const _dateToCompare = (0, _index.toDate)(dateToCompare); + return _date.getTime() > _dateToCompare.getTime(); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isBefore.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/isBefore.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.isBefore = isBefore; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name isBefore + * @category Common Helpers + * @summary Is the first date before the second one? + * + * @description + * Is the first date before the second one? + * + * @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). + * + * @param date - The date that should be before the other one to return true + * @param dateToCompare - The date to compare with + * + * @returns The first date is before the second date + * + * @example + * // Is 10 July 1989 before 11 February 1987? + * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11)) + * //=> false + */ +function isBefore(date, dateToCompare) { + const _date = (0, _index.toDate)(date); + const _dateToCompare = (0, _index.toDate)(dateToCompare); + return +_date < +_dateToCompare; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isDate.js": +/*!*****************************************!*\ + !*** ./node_modules/date-fns/isDate.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.isDate = isDate; /** + * @name isDate + * @category Common Helpers + * @summary Is the given value a date? + * + * @description + * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes. + * + * @param value - The value to check + * + * @returns True if the given value is a date + * + * @example + * // For a valid date: + * const result = isDate(new Date()) + * //=> true + * + * @example + * // For an invalid date: + * const result = isDate(new Date(NaN)) + * //=> true + * + * @example + * // For some value: + * const result = isDate('2014-02-31') + * //=> false + * + * @example + * // For an object: + * const result = isDate({}) + * //=> false + */ +function isDate(value) { + return ( + value instanceof Date || + (typeof value === "object" && + Object.prototype.toString.call(value) === "[object Date]") + ); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isEqual.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/isEqual.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.isEqual = isEqual; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name isEqual + * @category Common Helpers + * @summary Are the given dates equal? + * + * @description + * Are the given dates equal? + * + * @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). + * + * @param dateLeft - The first date to compare + * @param dateRight - The second date to compare + * + * @returns The dates are equal + * + * @example + * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal? + * const result = isEqual( + * new Date(2014, 6, 2, 6, 30, 45, 0), + * new Date(2014, 6, 2, 6, 30, 45, 500) + * ) + * //=> false + */ +function isEqual(leftDate, rightDate) { + const _dateLeft = (0, _index.toDate)(leftDate); + const _dateRight = (0, _index.toDate)(rightDate); + return +_dateLeft === +_dateRight; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isSameDay.js": +/*!********************************************!*\ + !*** ./node_modules/date-fns/isSameDay.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.isSameDay = isSameDay; +var _index = __webpack_require__(/*! ./startOfDay.js */ "./node_modules/date-fns/startOfDay.js"); + +/** + * @name isSameDay + * @category Day Helpers + * @summary Are the given dates in the same day (and year and month)? + * + * @description + * Are the given dates in the same day (and year and month)? + * + * @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). + * + * @param dateLeft - The first date to check + * @param dateRight - The second date to check + + * @returns The dates are in the same day (and year and month) + * + * @example + * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day? + * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0)) + * //=> true + * + * @example + * // Are 4 September and 4 October in the same day? + * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4)) + * //=> false + * + * @example + * // Are 4 September, 2014 and 4 September, 2015 in the same day? + * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4)) + * //=> false + */ +function isSameDay(dateLeft, dateRight) { + const dateLeftStartOfDay = (0, _index.startOfDay)(dateLeft); + const dateRightStartOfDay = (0, _index.startOfDay)(dateRight); + + return +dateLeftStartOfDay === +dateRightStartOfDay; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isSameMonth.js": +/*!**********************************************!*\ + !*** ./node_modules/date-fns/isSameMonth.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.isSameMonth = isSameMonth; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name isSameMonth + * @category Month Helpers + * @summary Are the given dates in the same month (and year)? + * + * @description + * Are the given dates in the same month (and year)? + * + * @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). + * + * @param dateLeft - The first date to check + * @param dateRight - The second date to check + * + * @returns The dates are in the same month (and year) + * + * @example + * // Are 2 September 2014 and 25 September 2014 in the same month? + * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25)) + * //=> true + * + * @example + * // Are 2 September 2014 and 25 September 2015 in the same month? + * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25)) + * //=> false + */ +function isSameMonth(dateLeft, dateRight) { + const _dateLeft = (0, _index.toDate)(dateLeft); + const _dateRight = (0, _index.toDate)(dateRight); + return ( + _dateLeft.getFullYear() === _dateRight.getFullYear() && + _dateLeft.getMonth() === _dateRight.getMonth() + ); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isSameQuarter.js": +/*!************************************************!*\ + !*** ./node_modules/date-fns/isSameQuarter.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.isSameQuarter = isSameQuarter; +var _index = __webpack_require__(/*! ./startOfQuarter.js */ "./node_modules/date-fns/startOfQuarter.js"); + +/** + * @name isSameQuarter + * @category Quarter Helpers + * @summary Are the given dates in the same quarter (and year)? + * + * @description + * Are the given dates in the same quarter (and year)? + * + * @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). + * + * @param dateLeft - The first date to check + * @param dateRight - The second date to check + + * @returns The dates are in the same quarter (and year) + * + * @example + * // Are 1 January 2014 and 8 March 2014 in the same quarter? + * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8)) + * //=> true + * + * @example + * // Are 1 January 2014 and 1 January 2015 in the same quarter? + * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1)) + * //=> false + */ +function isSameQuarter(dateLeft, dateRight) { + const dateLeftStartOfQuarter = (0, _index.startOfQuarter)(dateLeft); + const dateRightStartOfQuarter = (0, _index.startOfQuarter)(dateRight); + + return +dateLeftStartOfQuarter === +dateRightStartOfQuarter; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isSameYear.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/isSameYear.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.isSameYear = isSameYear; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name isSameYear + * @category Year Helpers + * @summary Are the given dates in the same year? + * + * @description + * Are the given dates in the same year? + * + * @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). + * + * @param dateLeft - The first date to check + * @param dateRight - The second date to check + * + * @returns The dates are in the same year + * + * @example + * // Are 2 September 2014 and 25 September 2014 in the same year? + * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25)) + * //=> true + */ +function isSameYear(dateLeft, dateRight) { + const _dateLeft = (0, _index.toDate)(dateLeft); + const _dateRight = (0, _index.toDate)(dateRight); + return _dateLeft.getFullYear() === _dateRight.getFullYear(); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isValid.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/isValid.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.isValid = isValid; +var _index = __webpack_require__(/*! ./isDate.js */ "./node_modules/date-fns/isDate.js"); +var _index2 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name isValid + * @category Common Helpers + * @summary Is the given date valid? + * + * @description + * Returns false if argument is Invalid Date and true otherwise. + * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate) + * Invalid Date is a Date, whose time value is NaN. + * + * Time value of Date: http://es5.github.io/#x15.9.1.1 + * + * @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). + * + * @param date - The date to check + * + * @returns The date is valid + * + * @example + * // For the valid date: + * const result = isValid(new Date(2014, 1, 31)) + * //=> true + * + * @example + * // For the value, convertable into a date: + * const result = isValid(1393804800000) + * //=> true + * + * @example + * // For the invalid date: + * const result = isValid(new Date('')) + * //=> false + */ +function isValid(date) { + if (!(0, _index.isDate)(date) && typeof date !== "number") { + return false; + } + const _date = (0, _index2.toDate)(date); + return !isNaN(Number(_date)); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/isWithinInterval.js": +/*!***************************************************!*\ + !*** ./node_modules/date-fns/isWithinInterval.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.isWithinInterval = isWithinInterval; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name isWithinInterval + * @category Interval Helpers + * @summary Is the given date within the interval? + * + * @description + * Is the given date within the interval? (Including start and end.) + * + * @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). + * + * @param date - The date to check + * @param interval - The interval to check + * + * @returns The date is within the interval + * + * @example + * // For the date within the interval: + * isWithinInterval(new Date(2014, 0, 3), { + * start: new Date(2014, 0, 1), + * end: new Date(2014, 0, 7) + * }) + * //=> true + * + * @example + * // For the date outside of the interval: + * isWithinInterval(new Date(2014, 0, 10), { + * start: new Date(2014, 0, 1), + * end: new Date(2014, 0, 7) + * }) + * //=> false + * + * @example + * // For date equal to interval start: + * isWithinInterval(date, { start, end: date }) + * // => true + * + * @example + * // For date equal to interval end: + * isWithinInterval(date, { start: date, end }) + * // => true + */ +function isWithinInterval(date, interval) { + const time = +(0, _index.toDate)(date); + const [startTime, endTime] = [ + +(0, _index.toDate)(interval.start), + +(0, _index.toDate)(interval.end), + ].sort((a, b) => a - b); + + return time >= startTime && time <= endTime; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/_lib/buildFormatLongFn.js": +/*!****************************************************************!*\ + !*** ./node_modules/date-fns/locale/_lib/buildFormatLongFn.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.buildFormatLongFn = buildFormatLongFn; + +function buildFormatLongFn(args) { + return (options = {}) => { + // TODO: Remove String() + const width = options.width ? String(options.width) : args.defaultWidth; + const format = args.formats[width] || args.formats[args.defaultWidth]; + return format; + }; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/_lib/buildLocalizeFn.js": +/*!**************************************************************!*\ + !*** ./node_modules/date-fns/locale/_lib/buildLocalizeFn.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.buildLocalizeFn = buildLocalizeFn; /* eslint-disable no-unused-vars */ + +/** + * The localize function argument callback which allows to convert raw value to + * the actual type. + * + * @param value - The value to convert + * + * @returns The converted value + */ + +/** + * The map of localized values for each width. + */ + +/** + * The index type of the locale unit value. It types conversion of units of + * values that don't start at 0 (i.e. quarters). + */ + +/** + * Converts the unit value to the tuple of values. + */ + +/** + * The tuple of localized era values. The first element represents BC, + * the second element represents AD. + */ + +/** + * The tuple of localized quarter values. The first element represents Q1. + */ + +/** + * The tuple of localized day values. The first element represents Sunday. + */ + +/** + * The tuple of localized month values. The first element represents January. + */ + +function buildLocalizeFn(args) { + return (value, options) => { + const context = options?.context ? String(options.context) : "standalone"; + + let valuesArray; + if (context === "formatting" && args.formattingValues) { + const defaultWidth = args.defaultFormattingWidth || args.defaultWidth; + const width = options?.width ? String(options.width) : defaultWidth; + + valuesArray = + args.formattingValues[width] || args.formattingValues[defaultWidth]; + } else { + const defaultWidth = args.defaultWidth; + const width = options?.width ? String(options.width) : args.defaultWidth; + + valuesArray = args.values[width] || args.values[defaultWidth]; + } + const index = args.argumentCallback ? args.argumentCallback(value) : value; + + // @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! + return valuesArray[index]; + }; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/_lib/buildMatchFn.js": +/*!***********************************************************!*\ + !*** ./node_modules/date-fns/locale/_lib/buildMatchFn.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.buildMatchFn = buildMatchFn; + +function buildMatchFn(args) { + return (string, options = {}) => { + const width = options.width; + + const matchPattern = + (width && args.matchPatterns[width]) || + args.matchPatterns[args.defaultMatchWidth]; + const matchResult = string.match(matchPattern); + + if (!matchResult) { + return null; + } + const matchedString = matchResult[0]; + + const parsePatterns = + (width && args.parsePatterns[width]) || + args.parsePatterns[args.defaultParseWidth]; + + const key = Array.isArray(parsePatterns) + ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString)) + : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type + findKey(parsePatterns, (pattern) => pattern.test(matchedString)); + + let value; + + value = args.valueCallback ? args.valueCallback(key) : key; + value = options.valueCallback + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type + options.valueCallback(value) + : value; + + const rest = string.slice(matchedString.length); + + return { value, rest }; + }; +} + +function findKey(object, predicate) { + for (const key in object) { + if ( + Object.prototype.hasOwnProperty.call(object, key) && + predicate(object[key]) + ) { + return key; + } + } + return undefined; +} + +function findIndex(array, predicate) { + for (let key = 0; key < array.length; key++) { + if (predicate(array[key])) { + return key; + } + } + return undefined; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/_lib/buildMatchPatternFn.js": +/*!******************************************************************!*\ + !*** ./node_modules/date-fns/locale/_lib/buildMatchPatternFn.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.buildMatchPatternFn = buildMatchPatternFn; + +function buildMatchPatternFn(args) { + return (string, options = {}) => { + const matchResult = string.match(args.matchPattern); + if (!matchResult) return null; + const matchedString = matchResult[0]; + + const parseResult = string.match(args.parsePattern); + if (!parseResult) return null; + let value = args.valueCallback + ? args.valueCallback(parseResult[0]) + : parseResult[0]; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type + value = options.valueCallback ? options.valueCallback(value) : value; + + const rest = string.slice(matchedString.length); + + return { value, rest }; + }; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/en-US.js": +/*!***********************************************!*\ + !*** ./node_modules/date-fns/locale/en-US.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.enUS = void 0; +var _index = __webpack_require__(/*! ./en-US/_lib/formatDistance.js */ "./node_modules/date-fns/locale/en-US/_lib/formatDistance.js"); +var _index2 = __webpack_require__(/*! ./en-US/_lib/formatLong.js */ "./node_modules/date-fns/locale/en-US/_lib/formatLong.js"); +var _index3 = __webpack_require__(/*! ./en-US/_lib/formatRelative.js */ "./node_modules/date-fns/locale/en-US/_lib/formatRelative.js"); +var _index4 = __webpack_require__(/*! ./en-US/_lib/localize.js */ "./node_modules/date-fns/locale/en-US/_lib/localize.js"); +var _index5 = __webpack_require__(/*! ./en-US/_lib/match.js */ "./node_modules/date-fns/locale/en-US/_lib/match.js"); + +/** + * @category Locales + * @summary English locale (United States). + * @language English + * @iso-639-2 eng + * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp) + * @author Lesha Koss [@leshakoss](https://github.com/leshakoss) + */ +const enUS = (exports.enUS = { + code: "en-US", + formatDistance: _index.formatDistance, + formatLong: _index2.formatLong, + formatRelative: _index3.formatRelative, + localize: _index4.localize, + match: _index5.match, + options: { + weekStartsOn: 0 /* Sunday */, + firstWeekContainsDate: 1, + }, +}); + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/en-US/_lib/formatDistance.js": +/*!*******************************************************************!*\ + !*** ./node_modules/date-fns/locale/en-US/_lib/formatDistance.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.formatDistance = void 0; + +const formatDistanceLocale = { + lessThanXSeconds: { + one: "less than a second", + other: "less than {{count}} seconds", + }, + + xSeconds: { + one: "1 second", + other: "{{count}} seconds", + }, + + halfAMinute: "half a minute", + + lessThanXMinutes: { + one: "less than a minute", + other: "less than {{count}} minutes", + }, + + xMinutes: { + one: "1 minute", + other: "{{count}} minutes", + }, + + aboutXHours: { + one: "about 1 hour", + other: "about {{count}} hours", + }, + + xHours: { + one: "1 hour", + other: "{{count}} hours", + }, + + xDays: { + one: "1 day", + other: "{{count}} days", + }, + + aboutXWeeks: { + one: "about 1 week", + other: "about {{count}} weeks", + }, + + xWeeks: { + one: "1 week", + other: "{{count}} weeks", + }, + + aboutXMonths: { + one: "about 1 month", + other: "about {{count}} months", + }, + + xMonths: { + one: "1 month", + other: "{{count}} months", + }, + + aboutXYears: { + one: "about 1 year", + other: "about {{count}} years", + }, + + xYears: { + one: "1 year", + other: "{{count}} years", + }, + + overXYears: { + one: "over 1 year", + other: "over {{count}} years", + }, + + almostXYears: { + one: "almost 1 year", + other: "almost {{count}} years", + }, +}; + +const formatDistance = (token, count, options) => { + let result; + + const tokenValue = formatDistanceLocale[token]; + if (typeof tokenValue === "string") { + result = tokenValue; + } else if (count === 1) { + result = tokenValue.one; + } else { + result = tokenValue.other.replace("{{count}}", count.toString()); + } + + if (options?.addSuffix) { + if (options.comparison && options.comparison > 0) { + return "in " + result; + } else { + return result + " ago"; + } + } + + return result; +}; +exports.formatDistance = formatDistance; + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/en-US/_lib/formatLong.js": +/*!***************************************************************!*\ + !*** ./node_modules/date-fns/locale/en-US/_lib/formatLong.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.formatLong = void 0; +var _index = __webpack_require__(/*! ../../_lib/buildFormatLongFn.js */ "./node_modules/date-fns/locale/_lib/buildFormatLongFn.js"); + +const dateFormats = { + full: "EEEE, MMMM do, y", + long: "MMMM do, y", + medium: "MMM d, y", + short: "MM/dd/yyyy", +}; + +const timeFormats = { + full: "h:mm:ss a zzzz", + long: "h:mm:ss a z", + medium: "h:mm:ss a", + short: "h:mm a", +}; + +const dateTimeFormats = { + full: "{{date}} 'at' {{time}}", + long: "{{date}} 'at' {{time}}", + medium: "{{date}}, {{time}}", + short: "{{date}}, {{time}}", +}; + +const formatLong = (exports.formatLong = { + date: (0, _index.buildFormatLongFn)({ + formats: dateFormats, + defaultWidth: "full", + }), + + time: (0, _index.buildFormatLongFn)({ + formats: timeFormats, + defaultWidth: "full", + }), + + dateTime: (0, _index.buildFormatLongFn)({ + formats: dateTimeFormats, + defaultWidth: "full", + }), +}); + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/en-US/_lib/formatRelative.js": +/*!*******************************************************************!*\ + !*** ./node_modules/date-fns/locale/en-US/_lib/formatRelative.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.formatRelative = void 0; + +const formatRelativeLocale = { + lastWeek: "'last' eeee 'at' p", + yesterday: "'yesterday at' p", + today: "'today at' p", + tomorrow: "'tomorrow at' p", + nextWeek: "eeee 'at' p", + other: "P", +}; + +const formatRelative = (token, _date, _baseDate, _options) => + formatRelativeLocale[token]; +exports.formatRelative = formatRelative; + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/en-US/_lib/localize.js": +/*!*************************************************************!*\ + !*** ./node_modules/date-fns/locale/en-US/_lib/localize.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.localize = void 0; +var _index = __webpack_require__(/*! ../../_lib/buildLocalizeFn.js */ "./node_modules/date-fns/locale/_lib/buildLocalizeFn.js"); + +const eraValues = { + narrow: ["B", "A"], + abbreviated: ["BC", "AD"], + wide: ["Before Christ", "Anno Domini"], +}; + +const quarterValues = { + narrow: ["1", "2", "3", "4"], + abbreviated: ["Q1", "Q2", "Q3", "Q4"], + wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], +}; + +// Note: in English, the names of days of the week and months are capitalized. +// If you are making a new locale based on this one, check if the same is true for the language you're working on. +// Generally, formatted dates should look like they are in the middle of a sentence, +// e.g. in Spanish language the weekdays and months should be in the lowercase. +const monthValues = { + narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], + abbreviated: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ], + + wide: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", + ], +}; + +const dayValues = { + narrow: ["S", "M", "T", "W", "T", "F", "S"], + short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], + abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + wide: [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + ], +}; + +const dayPeriodValues = { + narrow: { + am: "a", + pm: "p", + midnight: "mi", + noon: "n", + morning: "morning", + afternoon: "afternoon", + evening: "evening", + night: "night", + }, + abbreviated: { + am: "AM", + pm: "PM", + midnight: "midnight", + noon: "noon", + morning: "morning", + afternoon: "afternoon", + evening: "evening", + night: "night", + }, + wide: { + am: "a.m.", + pm: "p.m.", + midnight: "midnight", + noon: "noon", + morning: "morning", + afternoon: "afternoon", + evening: "evening", + night: "night", + }, +}; + +const formattingDayPeriodValues = { + narrow: { + am: "a", + pm: "p", + midnight: "mi", + noon: "n", + morning: "in the morning", + afternoon: "in the afternoon", + evening: "in the evening", + night: "at night", + }, + abbreviated: { + am: "AM", + pm: "PM", + midnight: "midnight", + noon: "noon", + morning: "in the morning", + afternoon: "in the afternoon", + evening: "in the evening", + night: "at night", + }, + wide: { + am: "a.m.", + pm: "p.m.", + midnight: "midnight", + noon: "noon", + morning: "in the morning", + afternoon: "in the afternoon", + evening: "in the evening", + night: "at night", + }, +}; + +const ordinalNumber = (dirtyNumber, _options) => { + const number = Number(dirtyNumber); + + // If ordinal numbers depend on context, for example, + // if they are different for different grammatical genders, + // use `options.unit`. + // + // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear', + // 'day', 'hour', 'minute', 'second'. + + const rem100 = number % 100; + if (rem100 > 20 || rem100 < 10) { + switch (rem100 % 10) { + case 1: + return number + "st"; + case 2: + return number + "nd"; + case 3: + return number + "rd"; + } + } + return number + "th"; +}; + +const localize = (exports.localize = { + ordinalNumber, + + era: (0, _index.buildLocalizeFn)({ + values: eraValues, + defaultWidth: "wide", + }), + + quarter: (0, _index.buildLocalizeFn)({ + values: quarterValues, + defaultWidth: "wide", + argumentCallback: (quarter) => quarter - 1, + }), + + month: (0, _index.buildLocalizeFn)({ + values: monthValues, + defaultWidth: "wide", + }), + + day: (0, _index.buildLocalizeFn)({ + values: dayValues, + defaultWidth: "wide", + }), + + dayPeriod: (0, _index.buildLocalizeFn)({ + values: dayPeriodValues, + defaultWidth: "wide", + formattingValues: formattingDayPeriodValues, + defaultFormattingWidth: "wide", + }), +}); + + +/***/ }), + +/***/ "./node_modules/date-fns/locale/en-US/_lib/match.js": +/*!**********************************************************!*\ + !*** ./node_modules/date-fns/locale/en-US/_lib/match.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.match = void 0; + +var _index = __webpack_require__(/*! ../../_lib/buildMatchFn.js */ "./node_modules/date-fns/locale/_lib/buildMatchFn.js"); +var _index2 = __webpack_require__(/*! ../../_lib/buildMatchPatternFn.js */ "./node_modules/date-fns/locale/_lib/buildMatchPatternFn.js"); + +const matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; +const parseOrdinalNumberPattern = /\d+/i; + +const matchEraPatterns = { + narrow: /^(b|a)/i, + abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i, + wide: /^(before christ|before common era|anno domini|common era)/i, +}; +const parseEraPatterns = { + any: [/^b/i, /^(a|c)/i], +}; + +const matchQuarterPatterns = { + narrow: /^[1234]/i, + abbreviated: /^q[1234]/i, + wide: /^[1234](th|st|nd|rd)? quarter/i, +}; +const parseQuarterPatterns = { + any: [/1/i, /2/i, /3/i, /4/i], +}; + +const matchMonthPatterns = { + narrow: /^[jfmasond]/i, + abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i, + wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i, +}; +const parseMonthPatterns = { + narrow: [ + /^j/i, + /^f/i, + /^m/i, + /^a/i, + /^m/i, + /^j/i, + /^j/i, + /^a/i, + /^s/i, + /^o/i, + /^n/i, + /^d/i, + ], + + any: [ + /^ja/i, + /^f/i, + /^mar/i, + /^ap/i, + /^may/i, + /^jun/i, + /^jul/i, + /^au/i, + /^s/i, + /^o/i, + /^n/i, + /^d/i, + ], +}; + +const matchDayPatterns = { + narrow: /^[smtwf]/i, + short: /^(su|mo|tu|we|th|fr|sa)/i, + abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i, + wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i, +}; +const parseDayPatterns = { + narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i], + any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i], +}; + +const matchDayPeriodPatterns = { + narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i, + any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i, +}; +const parseDayPeriodPatterns = { + any: { + am: /^a/i, + pm: /^p/i, + midnight: /^mi/i, + noon: /^no/i, + morning: /morning/i, + afternoon: /afternoon/i, + evening: /evening/i, + night: /night/i, + }, +}; + +const match = (exports.match = { + ordinalNumber: (0, _index2.buildMatchPatternFn)({ + matchPattern: matchOrdinalNumberPattern, + parsePattern: parseOrdinalNumberPattern, + valueCallback: (value) => parseInt(value, 10), + }), + + era: (0, _index.buildMatchFn)({ + matchPatterns: matchEraPatterns, + defaultMatchWidth: "wide", + parsePatterns: parseEraPatterns, + defaultParseWidth: "any", + }), + + quarter: (0, _index.buildMatchFn)({ + matchPatterns: matchQuarterPatterns, + defaultMatchWidth: "wide", + parsePatterns: parseQuarterPatterns, + defaultParseWidth: "any", + valueCallback: (index) => index + 1, + }), + + month: (0, _index.buildMatchFn)({ + matchPatterns: matchMonthPatterns, + defaultMatchWidth: "wide", + parsePatterns: parseMonthPatterns, + defaultParseWidth: "any", + }), + + day: (0, _index.buildMatchFn)({ + matchPatterns: matchDayPatterns, + defaultMatchWidth: "wide", + parsePatterns: parseDayPatterns, + defaultParseWidth: "any", + }), + + dayPeriod: (0, _index.buildMatchFn)({ + matchPatterns: matchDayPeriodPatterns, + defaultMatchWidth: "any", + parsePatterns: parseDayPeriodPatterns, + defaultParseWidth: "any", + }), +}); + + +/***/ }), + +/***/ "./node_modules/date-fns/max.js": +/*!**************************************!*\ + !*** ./node_modules/date-fns/max.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.max = max; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name max + * @category Common Helpers + * @summary Return the latest of the given dates. + * + * @description + * Return the latest of the given dates. + * + * @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). + * + * @param dates - The dates to compare + * + * @returns The latest of the dates + * + * @example + * // Which of these dates is the latest? + * const result = max([ + * new Date(1989, 6, 10), + * new Date(1987, 1, 11), + * new Date(1995, 6, 2), + * new Date(1990, 0, 1) + * ]) + * //=> Sun Jul 02 1995 00:00:00 + */ +function max(dates) { + let result; + dates.forEach(function (dirtyDate) { + const currentDate = (0, _index.toDate)(dirtyDate); + + if ( + result === undefined || + result < currentDate || + isNaN(Number(currentDate)) + ) { + result = currentDate; + } + }); + + return result || new Date(NaN); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/min.js": +/*!**************************************!*\ + !*** ./node_modules/date-fns/min.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.min = min; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name min + * @category Common Helpers + * @summary Returns the earliest of the given dates. + * + * @description + * Returns the earliest of the given dates. + * + * @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). + * + * @param dates - The dates to compare + * + * @returns The earliest of the dates + * + * @example + * // Which of these dates is the earliest? + * const result = min([ + * new Date(1989, 6, 10), + * new Date(1987, 1, 11), + * new Date(1995, 6, 2), + * new Date(1990, 0, 1) + * ]) + * //=> Wed Feb 11 1987 00:00:00 + */ +function min(dates) { + let result; + + dates.forEach((dirtyDate) => { + const date = (0, _index.toDate)(dirtyDate); + if (!result || result > date || isNaN(+date)) { + result = date; + } + }); + + return result || new Date(NaN); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/parse.js": +/*!****************************************!*\ + !*** ./node_modules/date-fns/parse.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "longFormatters", ({ + enumerable: true, + get: function () { + return _index5.longFormatters; + }, +})); +exports.parse = parse; +Object.defineProperty(exports, "parsers", ({ + enumerable: true, + get: function () { + return _index7.parsers; + }, +})); +var _index = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _index2 = __webpack_require__(/*! ./getDefaultOptions.js */ "./node_modules/date-fns/getDefaultOptions.js"); +var _index3 = __webpack_require__(/*! ./_lib/defaultLocale.js */ "./node_modules/date-fns/_lib/defaultLocale.js"); +var _index4 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +var _index5 = __webpack_require__(/*! ./_lib/format/longFormatters.js */ "./node_modules/date-fns/_lib/format/longFormatters.js"); +var _index6 = __webpack_require__(/*! ./_lib/protectedTokens.js */ "./node_modules/date-fns/_lib/protectedTokens.js"); + +var _index7 = __webpack_require__(/*! ./parse/_lib/parsers.js */ "./node_modules/date-fns/parse/_lib/parsers.js"); + +var _Setter = __webpack_require__(/*! ./parse/_lib/Setter.js */ "./node_modules/date-fns/parse/_lib/Setter.js"); + +// Rexports of internal for libraries to use. +// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874 + +/** + * The {@link parse} function options. + */ + +// This RegExp consists of three parts separated by `|`: +// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token +// (one of the certain letters followed by `o`) +// - (\w)\1* matches any sequences of the same letter +// - '' matches two quote characters in a row +// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), +// except a single quote symbol, which ends the sequence. +// Two quote characters do not end the sequence. +// If there is no matching single quote +// then the sequence will continue until the end of the string. +// - . matches any single character unmatched by previous parts of the RegExps +const formattingTokensRegExp = + /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; + +// This RegExp catches symbols escaped by quotes, and also +// sequences of symbols P, p, and the combinations like `PPPPPPPppppp` +const longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; + +const escapedStringRegExp = /^'([^]*?)'?$/; +const doubleQuoteRegExp = /''/g; + +const notWhitespaceRegExp = /\S/; +const unescapedLatinCharacterRegExp = /[a-zA-Z]/; + +/** + * @name parse + * @category Common Helpers + * @summary Parse the date. + * + * @description + * Return the date parsed from string using the given format string. + * + * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries. + * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * The characters in the format string wrapped between two single quotes characters (') are escaped. + * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. + * + * Format of the format string is based on Unicode Technical Standard #35: + * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table + * with a few additions (see note 5 below the table). + * + * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited + * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception: + * + * ```javascript + * parse('23 AM', 'HH a', new Date()) + * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time + * ``` + * + * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true + * + * Accepted format string patterns: + * | Unit |Prior| Pattern | Result examples | Notes | + * |---------------------------------|-----|---------|-----------------------------------|-------| + * | Era | 140 | G..GGG | AD, BC | | + * | | | GGGG | Anno Domini, Before Christ | 2 | + * | | | GGGGG | A, B | | + * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 | + * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 | + * | | | yy | 44, 01, 00, 17 | 4 | + * | | | yyy | 044, 001, 123, 999 | 4 | + * | | | yyyy | 0044, 0001, 1900, 2017 | 4 | + * | | | yyyyy | ... | 2,4 | + * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 | + * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 | + * | | | YY | 44, 01, 00, 17 | 4,6 | + * | | | YYY | 044, 001, 123, 999 | 4 | + * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 | + * | | | YYYYY | ... | 2,4 | + * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 | + * | | | RR | -43, 01, 00, 17 | 4,5 | + * | | | RRR | -043, 001, 123, 999, -999 | 4,5 | + * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 | + * | | | RRRRR | ... | 2,4,5 | + * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 | + * | | | uu | -43, 01, 99, -99 | 4 | + * | | | uuu | -043, 001, 123, 999, -999 | 4 | + * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 | + * | | | uuuuu | ... | 2,4 | + * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | | + * | | | Qo | 1st, 2nd, 3rd, 4th | 5 | + * | | | QQ | 01, 02, 03, 04 | | + * | | | QQQ | Q1, Q2, Q3, Q4 | | + * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 | + * | | | QQQQQ | 1, 2, 3, 4 | 4 | + * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | | + * | | | qo | 1st, 2nd, 3rd, 4th | 5 | + * | | | qq | 01, 02, 03, 04 | | + * | | | qqq | Q1, Q2, Q3, Q4 | | + * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 | + * | | | qqqqq | 1, 2, 3, 4 | 3 | + * | Month (formatting) | 110 | M | 1, 2, ..., 12 | | + * | | | Mo | 1st, 2nd, ..., 12th | 5 | + * | | | MM | 01, 02, ..., 12 | | + * | | | MMM | Jan, Feb, ..., Dec | | + * | | | MMMM | January, February, ..., December | 2 | + * | | | MMMMM | J, F, ..., D | | + * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | | + * | | | Lo | 1st, 2nd, ..., 12th | 5 | + * | | | LL | 01, 02, ..., 12 | | + * | | | LLL | Jan, Feb, ..., Dec | | + * | | | LLLL | January, February, ..., December | 2 | + * | | | LLLLL | J, F, ..., D | | + * | Local week of year | 100 | w | 1, 2, ..., 53 | | + * | | | wo | 1st, 2nd, ..., 53th | 5 | + * | | | ww | 01, 02, ..., 53 | | + * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 | + * | | | Io | 1st, 2nd, ..., 53th | 5 | + * | | | II | 01, 02, ..., 53 | 5 | + * | Day of month | 90 | d | 1, 2, ..., 31 | | + * | | | do | 1st, 2nd, ..., 31st | 5 | + * | | | dd | 01, 02, ..., 31 | | + * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 | + * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 | + * | | | DD | 01, 02, ..., 365, 366 | 7 | + * | | | DDD | 001, 002, ..., 365, 366 | | + * | | | DDDD | ... | 2 | + * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | | + * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 | + * | | | EEEEE | M, T, W, T, F, S, S | | + * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | | + * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 | + * | | | io | 1st, 2nd, ..., 7th | 5 | + * | | | ii | 01, 02, ..., 07 | 5 | + * | | | iii | Mon, Tue, Wed, ..., Sun | 5 | + * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 | + * | | | iiiii | M, T, W, T, F, S, S | 5 | + * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 | + * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | | + * | | | eo | 2nd, 3rd, ..., 1st | 5 | + * | | | ee | 02, 03, ..., 01 | | + * | | | eee | Mon, Tue, Wed, ..., Sun | | + * | | | eeee | Monday, Tuesday, ..., Sunday | 2 | + * | | | eeeee | M, T, W, T, F, S, S | | + * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | | + * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | | + * | | | co | 2nd, 3rd, ..., 1st | 5 | + * | | | cc | 02, 03, ..., 01 | | + * | | | ccc | Mon, Tue, Wed, ..., Sun | | + * | | | cccc | Monday, Tuesday, ..., Sunday | 2 | + * | | | ccccc | M, T, W, T, F, S, S | | + * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | | + * | AM, PM | 80 | a..aaa | AM, PM | | + * | | | aaaa | a.m., p.m. | 2 | + * | | | aaaaa | a, p | | + * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | | + * | | | bbbb | a.m., p.m., noon, midnight | 2 | + * | | | bbbbb | a, p, n, mi | | + * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | | + * | | | BBBB | at night, in the morning, ... | 2 | + * | | | BBBBB | at night, in the morning, ... | | + * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | | + * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 | + * | | | hh | 01, 02, ..., 11, 12 | | + * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | | + * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 | + * | | | HH | 00, 01, 02, ..., 23 | | + * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | | + * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 | + * | | | KK | 01, 02, ..., 11, 00 | | + * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | | + * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 | + * | | | kk | 24, 01, 02, ..., 23 | | + * | Minute | 60 | m | 0, 1, ..., 59 | | + * | | | mo | 0th, 1st, ..., 59th | 5 | + * | | | mm | 00, 01, ..., 59 | | + * | Second | 50 | s | 0, 1, ..., 59 | | + * | | | so | 0th, 1st, ..., 59th | 5 | + * | | | ss | 00, 01, ..., 59 | | + * | Seconds timestamp | 40 | t | 512969520 | | + * | | | tt | ... | 2 | + * | Fraction of second | 30 | S | 0, 1, ..., 9 | | + * | | | SS | 00, 01, ..., 99 | | + * | | | SSS | 000, 001, ..., 999 | | + * | | | SSSS | ... | 2 | + * | Milliseconds timestamp | 20 | T | 512969520900 | | + * | | | TT | ... | 2 | + * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | | + * | | | XX | -0800, +0530, Z | | + * | | | XXX | -08:00, +05:30, Z | | + * | | | XXXX | -0800, +0530, Z, +123456 | 2 | + * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | | + * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | | + * | | | xx | -0800, +0530, +0000 | | + * | | | xxx | -08:00, +05:30, +00:00 | 2 | + * | | | xxxx | -0800, +0530, +0000, +123456 | | + * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | | + * | Long localized date | NA | P | 05/29/1453 | 5,8 | + * | | | PP | May 29, 1453 | | + * | | | PPP | May 29th, 1453 | | + * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 | + * | Long localized time | NA | p | 12:00 AM | 5,8 | + * | | | pp | 12:00:00 AM | | + * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | | + * | | | PPpp | May 29, 1453, 12:00:00 AM | | + * | | | PPPpp | May 29th, 1453 at ... | | + * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 | + * Notes: + * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale + * are the same as "stand-alone" units, but are different in some languages. + * "Formatting" units are declined according to the rules of the language + * in the context of a date. "Stand-alone" units are always nominative singular. + * In `format` function, they will produce different result: + * + * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'` + * + * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` + * + * `parse` will try to match both formatting and stand-alone units interchangably. + * + * 2. Any sequence of the identical letters is a pattern, unless it is escaped by + * the single quote characters (see below). + * If the sequence is longer than listed in table: + * - for numerical units (`yyyyyyyy`) `parse` will try to match a number + * as wide as the sequence + * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit. + * These variations are marked with "2" in the last column of the table. + * + * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales. + * These tokens represent the shortest form of the quarter. + * + * 4. The main difference between `y` and `u` patterns are B.C. years: + * + * | Year | `y` | `u` | + * |------|-----|-----| + * | AC 1 | 1 | 1 | + * | BC 1 | 1 | 0 | + * | BC 2 | 2 | -1 | + * + * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`: + * + * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00` + * + * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00` + * + * while `uu` will just assign the year as is: + * + * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00` + * + * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00` + * + * The same difference is true for local and ISO week-numbering years (`Y` and `R`), + * except local week-numbering years are dependent on `options.weekStartsOn` + * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear) + * and [setWeekYear](https://date-fns.org/docs/setWeekYear)). + * + * 5. These patterns are not in the Unicode Technical Standard #35: + * - `i`: ISO day of week + * - `I`: ISO week of year + * - `R`: ISO week-numbering year + * - `o`: ordinal number modifier + * - `P`: long localized date + * - `p`: long localized time + * + * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. + * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month. + * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based + * on the given locale. + * + * using `en-US` locale: `P` => `MM/dd/yyyy` + * using `en-US` locale: `p` => `hh:mm a` + * using `pt-BR` locale: `P` => `dd/MM/yyyy` + * using `pt-BR` locale: `p` => `HH:mm` + * + * Values will be assigned to the date in the descending order of its unit's priority. + * Units of an equal priority overwrite each other in the order of appearance. + * + * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year), + * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing. + * + * `referenceDate` must be passed for correct work of the function. + * If you're not sure which `referenceDate` to supply, create a new instance of Date: + * `parse('02/11/2014', 'MM/dd/yyyy', new Date())` + * In this case parsing will be done in the context of the current date. + * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`, + * then `Invalid Date` will be returned. + * + * The result may vary by locale. + * + * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned. + * + * If parsing failed, `Invalid Date` will be returned. + * Invalid Date is a Date, whose time value is NaN. + * Time value of Date: http://es5.github.io/#x15.9.1.1 + * + * @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). + * + * @param dateStr - The string to parse + * @param formatStr - The string of tokens + * @param referenceDate - defines values missing from the parsed dateString + * @param options - An object with options. + * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * @returns The parsed date + * + * @throws `options.locale` must contain `match` property + * @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 + * @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 + * @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 + * @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 + * @throws format string contains an unescaped latin alphabet character + * + * @example + * // Parse 11 February 2014 from middle-endian format: + * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date()) + * //=> Tue Feb 11 2014 00:00:00 + * + * @example + * // Parse 28th of February in Esperanto locale in the context of 2010 year: + * import eo from 'date-fns/locale/eo' + * var result = parse('28-a de februaro', "do 'de' MMMM", new Date(2010, 0, 1), { + * locale: eo + * }) + * //=> Sun Feb 28 2010 00:00:00 + */ +function parse(dateStr, formatStr, referenceDate, options) { + const defaultOptions = (0, _index2.getDefaultOptions)(); + const locale = + options?.locale ?? defaultOptions.locale ?? _index3.defaultLocale; + + const firstWeekContainsDate = + options?.firstWeekContainsDate ?? + options?.locale?.options?.firstWeekContainsDate ?? + defaultOptions.firstWeekContainsDate ?? + defaultOptions.locale?.options?.firstWeekContainsDate ?? + 1; + + const weekStartsOn = + options?.weekStartsOn ?? + options?.locale?.options?.weekStartsOn ?? + defaultOptions.weekStartsOn ?? + defaultOptions.locale?.options?.weekStartsOn ?? + 0; + + if (formatStr === "") { + if (dateStr === "") { + return (0, _index4.toDate)(referenceDate); + } else { + return (0, _index.constructFrom)(referenceDate, NaN); + } + } + + const subFnOptions = { + firstWeekContainsDate, + weekStartsOn, + locale, + }; + + // If timezone isn't specified, it will be set to the system timezone + const setters = [new _Setter.DateToSystemTimezoneSetter()]; + + const tokens = formatStr + .match(longFormattingTokensRegExp) + .map((substring) => { + const firstCharacter = substring[0]; + if (firstCharacter in _index5.longFormatters) { + const longFormatter = _index5.longFormatters[firstCharacter]; + return longFormatter(substring, locale.formatLong); + } + return substring; + }) + .join("") + .match(formattingTokensRegExp); + + const usedTokens = []; + + for (let token of tokens) { + if ( + !options?.useAdditionalWeekYearTokens && + (0, _index6.isProtectedWeekYearToken)(token) + ) { + (0, _index6.warnOrThrowProtectedError)(token, formatStr, dateStr); + } + if ( + !options?.useAdditionalDayOfYearTokens && + (0, _index6.isProtectedDayOfYearToken)(token) + ) { + (0, _index6.warnOrThrowProtectedError)(token, formatStr, dateStr); + } + + const firstCharacter = token[0]; + const parser = _index7.parsers[firstCharacter]; + if (parser) { + const { incompatibleTokens } = parser; + if (Array.isArray(incompatibleTokens)) { + const incompatibleToken = usedTokens.find( + (usedToken) => + incompatibleTokens.includes(usedToken.token) || + usedToken.token === firstCharacter, + ); + if (incompatibleToken) { + throw new RangeError( + `The format string mustn't contain \`${incompatibleToken.fullToken}\` and \`${token}\` at the same time`, + ); + } + } else if (parser.incompatibleTokens === "*" && usedTokens.length > 0) { + throw new RangeError( + `The format string mustn't contain \`${token}\` and any other token at the same time`, + ); + } + + usedTokens.push({ token: firstCharacter, fullToken: token }); + + const parseResult = parser.run( + dateStr, + token, + locale.match, + subFnOptions, + ); + + if (!parseResult) { + return (0, _index.constructFrom)(referenceDate, NaN); + } + + setters.push(parseResult.setter); + + dateStr = parseResult.rest; + } else { + if (firstCharacter.match(unescapedLatinCharacterRegExp)) { + throw new RangeError( + "Format string contains an unescaped latin alphabet character `" + + firstCharacter + + "`", + ); + } + + // Replace two single quote characters with one single quote character + if (token === "''") { + token = "'"; + } else if (firstCharacter === "'") { + token = cleanEscapedString(token); + } + + // Cut token from string, or, if string doesn't match the token, return Invalid Date + if (dateStr.indexOf(token) === 0) { + dateStr = dateStr.slice(token.length); + } else { + return (0, _index.constructFrom)(referenceDate, NaN); + } + } + } + + // Check if the remaining input contains something other than whitespace + if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) { + return (0, _index.constructFrom)(referenceDate, NaN); + } + + const uniquePrioritySetters = setters + .map((setter) => setter.priority) + .sort((a, b) => b - a) + .filter((priority, index, array) => array.indexOf(priority) === index) + .map((priority) => + setters + .filter((setter) => setter.priority === priority) + .sort((a, b) => b.subPriority - a.subPriority), + ) + .map((setterArray) => setterArray[0]); + + let date = (0, _index4.toDate)(referenceDate); + + if (isNaN(date.getTime())) { + return (0, _index.constructFrom)(referenceDate, NaN); + } + + const flags = {}; + for (const setter of uniquePrioritySetters) { + if (!setter.validate(date, subFnOptions)) { + return (0, _index.constructFrom)(referenceDate, NaN); + } + + const result = setter.set(date, flags, subFnOptions); + // Result is tuple (date, flags) + if (Array.isArray(result)) { + date = result[0]; + Object.assign(flags, result[1]); + // Result is date + } else { + date = result; + } + } + + return (0, _index.constructFrom)(referenceDate, date); +} + +function cleanEscapedString(input) { + return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, "'"); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/parseISO.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/parseISO.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.parseISO = parseISO; +var _index = __webpack_require__(/*! ./constants.js */ "./node_modules/date-fns/constants.js"); + +/** + * The {@link parseISO} function options. + */ + +/** + * @name parseISO + * @category Common Helpers + * @summary Parse ISO string + * + * @description + * Parse the given string in ISO 8601 format and return an instance of Date. + * + * Function accepts complete ISO 8601 formats as well as partial implementations. + * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601 + * + * If the argument isn't a string, the function cannot parse the string or + * the values are invalid, it returns Invalid Date. + * + * @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). + * + * @param argument - The value to convert + * @param options - An object with options + * + * @returns The parsed date in the local time zone + * + * @example + * // Convert string '2014-02-11T11:30:30' to date: + * const result = parseISO('2014-02-11T11:30:30') + * //=> Tue Feb 11 2014 11:30:30 + * + * @example + * // Convert string '+02014101' to date, + * // if the additional number of digits in the extended year format is 1: + * const result = parseISO('+02014101', { additionalDigits: 1 }) + * //=> Fri Apr 11 2014 00:00:00 + */ +function parseISO(argument, options) { + const additionalDigits = options?.additionalDigits ?? 2; + const dateStrings = splitDateString(argument); + + let date; + if (dateStrings.date) { + const parseYearResult = parseYear(dateStrings.date, additionalDigits); + date = parseDate(parseYearResult.restDateString, parseYearResult.year); + } + + if (!date || isNaN(date.getTime())) { + return new Date(NaN); + } + + const timestamp = date.getTime(); + let time = 0; + let offset; + + if (dateStrings.time) { + time = parseTime(dateStrings.time); + if (isNaN(time)) { + return new Date(NaN); + } + } + + if (dateStrings.timezone) { + offset = parseTimezone(dateStrings.timezone); + if (isNaN(offset)) { + return new Date(NaN); + } + } else { + const dirtyDate = new Date(timestamp + time); + // JS parsed string assuming it's in UTC timezone + // but we need it to be parsed in our timezone + // so we use utc values to build date in our timezone. + // Year values from 0 to 99 map to the years 1900 to 1999 + // so set year explicitly with setFullYear. + const result = new Date(0); + result.setFullYear( + dirtyDate.getUTCFullYear(), + dirtyDate.getUTCMonth(), + dirtyDate.getUTCDate(), + ); + result.setHours( + dirtyDate.getUTCHours(), + dirtyDate.getUTCMinutes(), + dirtyDate.getUTCSeconds(), + dirtyDate.getUTCMilliseconds(), + ); + return result; + } + + return new Date(timestamp + time + offset); +} + +const patterns = { + dateTimeDelimiter: /[T ]/, + timeZoneDelimiter: /[Z ]/i, + timezone: /([Z+-].*)$/, +}; + +const dateRegex = + /^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/; +const timeRegex = + /^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/; +const timezoneRegex = /^([+-])(\d{2})(?::?(\d{2}))?$/; + +function splitDateString(dateString) { + const dateStrings = {}; + const array = dateString.split(patterns.dateTimeDelimiter); + let timeString; + + // The regex match should only return at maximum two array elements. + // [date], [time], or [date, time]. + if (array.length > 2) { + return dateStrings; + } + + if (/:/.test(array[0])) { + timeString = array[0]; + } else { + dateStrings.date = array[0]; + timeString = array[1]; + if (patterns.timeZoneDelimiter.test(dateStrings.date)) { + dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0]; + timeString = dateString.substr( + dateStrings.date.length, + dateString.length, + ); + } + } + + if (timeString) { + const token = patterns.timezone.exec(timeString); + if (token) { + dateStrings.time = timeString.replace(token[1], ""); + dateStrings.timezone = token[1]; + } else { + dateStrings.time = timeString; + } + } + + return dateStrings; +} + +function parseYear(dateString, additionalDigits) { + const regex = new RegExp( + "^(?:(\\d{4}|[+-]\\d{" + + (4 + additionalDigits) + + "})|(\\d{2}|[+-]\\d{" + + (2 + additionalDigits) + + "})$)", + ); + + const captures = dateString.match(regex); + // Invalid ISO-formatted year + if (!captures) return { year: NaN, restDateString: "" }; + + const year = captures[1] ? parseInt(captures[1]) : null; + const century = captures[2] ? parseInt(captures[2]) : null; + + // either year or century is null, not both + return { + year: century === null ? year : century * 100, + restDateString: dateString.slice((captures[1] || captures[2]).length), + }; +} + +function parseDate(dateString, year) { + // Invalid ISO-formatted year + if (year === null) return new Date(NaN); + + const captures = dateString.match(dateRegex); + // Invalid ISO-formatted string + if (!captures) return new Date(NaN); + + const isWeekDate = !!captures[4]; + const dayOfYear = parseDateUnit(captures[1]); + const month = parseDateUnit(captures[2]) - 1; + const day = parseDateUnit(captures[3]); + const week = parseDateUnit(captures[4]); + const dayOfWeek = parseDateUnit(captures[5]) - 1; + + if (isWeekDate) { + if (!validateWeekDate(year, week, dayOfWeek)) { + return new Date(NaN); + } + return dayOfISOWeekYear(year, week, dayOfWeek); + } else { + const date = new Date(0); + if ( + !validateDate(year, month, day) || + !validateDayOfYearDate(year, dayOfYear) + ) { + return new Date(NaN); + } + date.setUTCFullYear(year, month, Math.max(dayOfYear, day)); + return date; + } +} + +function parseDateUnit(value) { + return value ? parseInt(value) : 1; +} + +function parseTime(timeString) { + const captures = timeString.match(timeRegex); + if (!captures) return NaN; // Invalid ISO-formatted time + + const hours = parseTimeUnit(captures[1]); + const minutes = parseTimeUnit(captures[2]); + const seconds = parseTimeUnit(captures[3]); + + if (!validateTime(hours, minutes, seconds)) { + return NaN; + } + + return ( + hours * _index.millisecondsInHour + + minutes * _index.millisecondsInMinute + + seconds * 1000 + ); +} + +function parseTimeUnit(value) { + return (value && parseFloat(value.replace(",", "."))) || 0; +} + +function parseTimezone(timezoneString) { + if (timezoneString === "Z") return 0; + + const captures = timezoneString.match(timezoneRegex); + if (!captures) return 0; + + const sign = captures[1] === "+" ? -1 : 1; + const hours = parseInt(captures[2]); + const minutes = (captures[3] && parseInt(captures[3])) || 0; + + if (!validateTimezone(hours, minutes)) { + return NaN; + } + + return ( + sign * + (hours * _index.millisecondsInHour + minutes * _index.millisecondsInMinute) + ); +} + +function dayOfISOWeekYear(isoWeekYear, week, day) { + const date = new Date(0); + date.setUTCFullYear(isoWeekYear, 0, 4); + const fourthOfJanuaryDay = date.getUTCDay() || 7; + const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay; + date.setUTCDate(date.getUTCDate() + diff); + return date; +} + +// Validation functions + +// February is null to handle the leap year (using ||) +const daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + +function isLeapYearIndex(year) { + return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0); +} + +function validateDate(year, month, date) { + return ( + month >= 0 && + month <= 11 && + date >= 1 && + date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28)) + ); +} + +function validateDayOfYearDate(year, dayOfYear) { + return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365); +} + +function validateWeekDate(_year, week, day) { + return week >= 1 && week <= 53 && day >= 0 && day <= 6; +} + +function validateTime(hours, minutes, seconds) { + if (hours === 24) { + return minutes === 0 && seconds === 0; + } + + return ( + seconds >= 0 && + seconds < 60 && + minutes >= 0 && + minutes < 60 && + hours >= 0 && + hours < 25 + ); +} + +function validateTimezone(_hours, minutes) { + return minutes >= 0 && minutes <= 59; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/Parser.js": +/*!****************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/Parser.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.Parser = void 0; +var _Setter = __webpack_require__(/*! ./Setter.js */ "./node_modules/date-fns/parse/_lib/Setter.js"); + +class Parser { + run(dateString, token, match, options) { + const result = this.parse(dateString, token, match, options); + if (!result) { + return null; + } + + return { + setter: new _Setter.ValueSetter( + result.value, + this.validate, + this.set, + this.priority, + this.subPriority, + ), + rest: result.rest, + }; + } + + validate(_utcDate, _value, _options) { + return true; + } +} +exports.Parser = Parser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/Setter.js": +/*!****************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/Setter.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.ValueSetter = + exports.Setter = + exports.DateToSystemTimezoneSetter = + void 0; +var _index = __webpack_require__(/*! ../../transpose.js */ "./node_modules/date-fns/transpose.js"); +var _index2 = __webpack_require__(/*! ../../constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); + +const TIMEZONE_UNIT_PRIORITY = 10; + +class Setter { + subPriority = 0; + + validate(_utcDate, _options) { + return true; + } +} +exports.Setter = Setter; + +class ValueSetter extends Setter { + constructor( + value, + + validateValue, + + setValue, + + priority, + subPriority, + ) { + super(); + this.value = value; + this.validateValue = validateValue; + this.setValue = setValue; + this.priority = priority; + if (subPriority) { + this.subPriority = subPriority; + } + } + + validate(date, options) { + return this.validateValue(date, this.value, options); + } + + set(date, flags, options) { + return this.setValue(date, flags, this.value, options); + } +} +exports.ValueSetter = ValueSetter; + +class DateToSystemTimezoneSetter extends Setter { + priority = TIMEZONE_UNIT_PRIORITY; + subPriority = -1; + set(date, flags) { + if (flags.timestampIsSet) return date; + return (0, _index2.constructFrom)(date, (0, _index.transpose)(date, Date)); + } +} +exports.DateToSystemTimezoneSetter = DateToSystemTimezoneSetter; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/constants.js": +/*!*******************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/constants.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.timezonePatterns = exports.numericPatterns = void 0; +const numericPatterns = (exports.numericPatterns = { + month: /^(1[0-2]|0?\d)/, // 0 to 12 + date: /^(3[0-1]|[0-2]?\d)/, // 0 to 31 + dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/, // 0 to 366 + week: /^(5[0-3]|[0-4]?\d)/, // 0 to 53 + hour23h: /^(2[0-3]|[0-1]?\d)/, // 0 to 23 + hour24h: /^(2[0-4]|[0-1]?\d)/, // 0 to 24 + hour11h: /^(1[0-1]|0?\d)/, // 0 to 11 + hour12h: /^(1[0-2]|0?\d)/, // 0 to 12 + minute: /^[0-5]?\d/, // 0 to 59 + second: /^[0-5]?\d/, // 0 to 59 + + singleDigit: /^\d/, // 0 to 9 + twoDigits: /^\d{1,2}/, // 0 to 99 + threeDigits: /^\d{1,3}/, // 0 to 999 + fourDigits: /^\d{1,4}/, // 0 to 9999 + + anyDigitsSigned: /^-?\d+/, + singleDigitSigned: /^-?\d/, // 0 to 9, -0 to -9 + twoDigitsSigned: /^-?\d{1,2}/, // 0 to 99, -0 to -99 + threeDigitsSigned: /^-?\d{1,3}/, // 0 to 999, -0 to -999 + fourDigitsSigned: /^-?\d{1,4}/, // 0 to 9999, -0 to -9999 +}); + +const timezonePatterns = (exports.timezonePatterns = { + basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/, + basic: /^([+-])(\d{2})(\d{2})|Z/, + basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/, + extended: /^([+-])(\d{2}):(\d{2})|Z/, + extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/, +}); + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers.js": +/*!*****************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.parsers = void 0; +var _EraParser = __webpack_require__(/*! ./parsers/EraParser.js */ "./node_modules/date-fns/parse/_lib/parsers/EraParser.js"); +var _YearParser = __webpack_require__(/*! ./parsers/YearParser.js */ "./node_modules/date-fns/parse/_lib/parsers/YearParser.js"); +var _LocalWeekYearParser = __webpack_require__(/*! ./parsers/LocalWeekYearParser.js */ "./node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js"); +var _ISOWeekYearParser = __webpack_require__(/*! ./parsers/ISOWeekYearParser.js */ "./node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js"); +var _ExtendedYearParser = __webpack_require__(/*! ./parsers/ExtendedYearParser.js */ "./node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js"); +var _QuarterParser = __webpack_require__(/*! ./parsers/QuarterParser.js */ "./node_modules/date-fns/parse/_lib/parsers/QuarterParser.js"); +var _StandAloneQuarterParser = __webpack_require__(/*! ./parsers/StandAloneQuarterParser.js */ "./node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js"); +var _MonthParser = __webpack_require__(/*! ./parsers/MonthParser.js */ "./node_modules/date-fns/parse/_lib/parsers/MonthParser.js"); +var _StandAloneMonthParser = __webpack_require__(/*! ./parsers/StandAloneMonthParser.js */ "./node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js"); +var _LocalWeekParser = __webpack_require__(/*! ./parsers/LocalWeekParser.js */ "./node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js"); +var _ISOWeekParser = __webpack_require__(/*! ./parsers/ISOWeekParser.js */ "./node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js"); +var _DateParser = __webpack_require__(/*! ./parsers/DateParser.js */ "./node_modules/date-fns/parse/_lib/parsers/DateParser.js"); +var _DayOfYearParser = __webpack_require__(/*! ./parsers/DayOfYearParser.js */ "./node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js"); +var _DayParser = __webpack_require__(/*! ./parsers/DayParser.js */ "./node_modules/date-fns/parse/_lib/parsers/DayParser.js"); +var _LocalDayParser = __webpack_require__(/*! ./parsers/LocalDayParser.js */ "./node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js"); +var _StandAloneLocalDayParser = __webpack_require__(/*! ./parsers/StandAloneLocalDayParser.js */ "./node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js"); +var _ISODayParser = __webpack_require__(/*! ./parsers/ISODayParser.js */ "./node_modules/date-fns/parse/_lib/parsers/ISODayParser.js"); +var _AMPMParser = __webpack_require__(/*! ./parsers/AMPMParser.js */ "./node_modules/date-fns/parse/_lib/parsers/AMPMParser.js"); +var _AMPMMidnightParser = __webpack_require__(/*! ./parsers/AMPMMidnightParser.js */ "./node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js"); +var _DayPeriodParser = __webpack_require__(/*! ./parsers/DayPeriodParser.js */ "./node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js"); +var _Hour1to12Parser = __webpack_require__(/*! ./parsers/Hour1to12Parser.js */ "./node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js"); +var _Hour0to23Parser = __webpack_require__(/*! ./parsers/Hour0to23Parser.js */ "./node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js"); +var _Hour0To11Parser = __webpack_require__(/*! ./parsers/Hour0To11Parser.js */ "./node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js"); +var _Hour1To24Parser = __webpack_require__(/*! ./parsers/Hour1To24Parser.js */ "./node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js"); +var _MinuteParser = __webpack_require__(/*! ./parsers/MinuteParser.js */ "./node_modules/date-fns/parse/_lib/parsers/MinuteParser.js"); +var _SecondParser = __webpack_require__(/*! ./parsers/SecondParser.js */ "./node_modules/date-fns/parse/_lib/parsers/SecondParser.js"); +var _FractionOfSecondParser = __webpack_require__(/*! ./parsers/FractionOfSecondParser.js */ "./node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js"); +var _ISOTimezoneWithZParser = __webpack_require__(/*! ./parsers/ISOTimezoneWithZParser.js */ "./node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js"); +var _ISOTimezoneParser = __webpack_require__(/*! ./parsers/ISOTimezoneParser.js */ "./node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js"); +var _TimestampSecondsParser = __webpack_require__(/*! ./parsers/TimestampSecondsParser.js */ "./node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js"); +var _TimestampMillisecondsParser = __webpack_require__(/*! ./parsers/TimestampMillisecondsParser.js */ "./node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js"); + +/* + * | | Unit | | Unit | + * |-----|--------------------------------|-----|--------------------------------| + * | a | AM, PM | A* | Milliseconds in day | + * | b | AM, PM, noon, midnight | B | Flexible day period | + * | c | Stand-alone local day of week | C* | Localized hour w/ day period | + * | d | Day of month | D | Day of year | + * | e | Local day of week | E | Day of week | + * | f | | F* | Day of week in month | + * | g* | Modified Julian day | G | Era | + * | h | Hour [1-12] | H | Hour [0-23] | + * | i! | ISO day of week | I! | ISO week of year | + * | j* | Localized hour w/ day period | J* | Localized hour w/o day period | + * | k | Hour [1-24] | K | Hour [0-11] | + * | l* | (deprecated) | L | Stand-alone month | + * | m | Minute | M | Month | + * | n | | N | | + * | o! | Ordinal number modifier | O* | Timezone (GMT) | + * | p | | P | | + * | q | Stand-alone quarter | Q | Quarter | + * | r* | Related Gregorian year | R! | ISO week-numbering year | + * | s | Second | S | Fraction of second | + * | t! | Seconds timestamp | T! | Milliseconds timestamp | + * | u | Extended year | U* | Cyclic year | + * | v* | Timezone (generic non-locat.) | V* | Timezone (location) | + * | w | Local week of year | W* | Week of month | + * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) | + * | y | Year (abs) | Y | Local week-numbering year | + * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) | + * + * Letters marked by * are not implemented but reserved by Unicode standard. + * + * Letters marked by ! are non-standard, but implemented by date-fns: + * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs) + * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days, + * i.e. 7 for Sunday, 1 for Monday, etc. + * - `I` is ISO week of year, as opposed to `w` which is local week of year. + * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year. + * `R` is supposed to be used in conjunction with `I` and `i` + * for universal ISO week-numbering date, whereas + * `Y` is supposed to be used in conjunction with `w` and `e` + * for week-numbering date specific to the locale. + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here +const parsers = (exports.parsers = { + G: new _EraParser.EraParser(), + y: new _YearParser.YearParser(), + Y: new _LocalWeekYearParser.LocalWeekYearParser(), + R: new _ISOWeekYearParser.ISOWeekYearParser(), + u: new _ExtendedYearParser.ExtendedYearParser(), + Q: new _QuarterParser.QuarterParser(), + q: new _StandAloneQuarterParser.StandAloneQuarterParser(), + M: new _MonthParser.MonthParser(), + L: new _StandAloneMonthParser.StandAloneMonthParser(), + w: new _LocalWeekParser.LocalWeekParser(), + I: new _ISOWeekParser.ISOWeekParser(), + d: new _DateParser.DateParser(), + D: new _DayOfYearParser.DayOfYearParser(), + E: new _DayParser.DayParser(), + e: new _LocalDayParser.LocalDayParser(), + c: new _StandAloneLocalDayParser.StandAloneLocalDayParser(), + i: new _ISODayParser.ISODayParser(), + a: new _AMPMParser.AMPMParser(), + b: new _AMPMMidnightParser.AMPMMidnightParser(), + B: new _DayPeriodParser.DayPeriodParser(), + h: new _Hour1to12Parser.Hour1to12Parser(), + H: new _Hour0to23Parser.Hour0to23Parser(), + K: new _Hour0To11Parser.Hour0To11Parser(), + k: new _Hour1To24Parser.Hour1To24Parser(), + m: new _MinuteParser.MinuteParser(), + s: new _SecondParser.SecondParser(), + S: new _FractionOfSecondParser.FractionOfSecondParser(), + X: new _ISOTimezoneWithZParser.ISOTimezoneWithZParser(), + x: new _ISOTimezoneParser.ISOTimezoneParser(), + t: new _TimestampSecondsParser.TimestampSecondsParser(), + T: new _TimestampMillisecondsParser.TimestampMillisecondsParser(), +}); + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js": +/*!************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.AMPMMidnightParser = void 0; +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class AMPMMidnightParser extends _Parser.Parser { + priority = 80; + + parse(dateString, token, match) { + switch (token) { + case "b": + case "bb": + case "bbb": + return ( + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + + case "bbbbb": + return match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }); + case "bbbb": + default: + return ( + match.dayPeriod(dateString, { + width: "wide", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + } + } + + set(date, _flags, value) { + date.setHours((0, _utils.dayPeriodEnumToHours)(value), 0, 0, 0); + return date; + } + + incompatibleTokens = ["a", "B", "H", "k", "t", "T"]; +} +exports.AMPMMidnightParser = AMPMMidnightParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/AMPMParser.js": +/*!****************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/AMPMParser.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.AMPMParser = void 0; +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class AMPMParser extends _Parser.Parser { + priority = 80; + + parse(dateString, token, match) { + switch (token) { + case "a": + case "aa": + case "aaa": + return ( + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + + case "aaaaa": + return match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }); + case "aaaa": + default: + return ( + match.dayPeriod(dateString, { + width: "wide", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + } + } + + set(date, _flags, value) { + date.setHours((0, _utils.dayPeriodEnumToHours)(value), 0, 0, 0); + return date; + } + + incompatibleTokens = ["b", "B", "H", "k", "t", "T"]; +} +exports.AMPMParser = AMPMParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/DateParser.js": +/*!****************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/DateParser.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.DateParser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; +const DAYS_IN_MONTH_LEAP_YEAR = [ + 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, +]; + +// Day of the month +class DateParser extends _Parser.Parser { + priority = 90; + subPriority = 1; + + parse(dateString, token, match) { + switch (token) { + case "d": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.date, + dateString, + ); + case "do": + return match.ordinalNumber(dateString, { unit: "date" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(date, value) { + const year = date.getFullYear(); + const isLeapYear = (0, _utils.isLeapYearIndex)(year); + const month = date.getMonth(); + if (isLeapYear) { + return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month]; + } else { + return value >= 1 && value <= DAYS_IN_MONTH[month]; + } + } + + set(date, _flags, value) { + date.setDate(value); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "q", + "Q", + "w", + "I", + "D", + "i", + "e", + "c", + "t", + "T", + ]; +} +exports.DateParser = DateParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js": +/*!*********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.DayOfYearParser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class DayOfYearParser extends _Parser.Parser { + priority = 90; + + subpriority = 1; + + parse(dateString, token, match) { + switch (token) { + case "D": + case "DD": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.dayOfYear, + dateString, + ); + case "Do": + return match.ordinalNumber(dateString, { unit: "date" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(date, value) { + const year = date.getFullYear(); + const isLeapYear = (0, _utils.isLeapYearIndex)(year); + if (isLeapYear) { + return value >= 1 && value <= 366; + } else { + return value >= 1 && value <= 365; + } + } + + set(date, _flags, value) { + date.setMonth(0, value); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "q", + "Q", + "M", + "L", + "w", + "I", + "d", + "E", + "i", + "e", + "c", + "t", + "T", + ]; +} +exports.DayOfYearParser = DayOfYearParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/DayParser.js": +/*!***************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/DayParser.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.DayParser = void 0; +var _index = __webpack_require__(/*! ../../../setDay.js */ "./node_modules/date-fns/setDay.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +// Day of week +class DayParser extends _Parser.Parser { + priority = 90; + + parse(dateString, token, match) { + switch (token) { + // Tue + case "E": + case "EE": + case "EEE": + return ( + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + + // T + case "EEEEE": + return match.day(dateString, { + width: "narrow", + context: "formatting", + }); + // Tu + case "EEEEEE": + return ( + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + + // Tuesday + case "EEEE": + default: + return ( + match.day(dateString, { width: "wide", context: "formatting" }) || + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 6; + } + + set(date, _flags, value, options) { + date = (0, _index.setDay)(date, value, options); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = ["D", "i", "e", "c", "t", "T"]; +} +exports.DayParser = DayParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js": +/*!*********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.DayPeriodParser = void 0; +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// in the morning, in the afternoon, in the evening, at night +class DayPeriodParser extends _Parser.Parser { + priority = 80; + + parse(dateString, token, match) { + switch (token) { + case "B": + case "BB": + case "BBB": + return ( + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + + case "BBBBB": + return match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }); + case "BBBB": + default: + return ( + match.dayPeriod(dateString, { + width: "wide", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.dayPeriod(dateString, { + width: "narrow", + context: "formatting", + }) + ); + } + } + + set(date, _flags, value) { + date.setHours((0, _utils.dayPeriodEnumToHours)(value), 0, 0, 0); + return date; + } + + incompatibleTokens = ["a", "b", "t", "T"]; +} +exports.DayPeriodParser = DayPeriodParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/EraParser.js": +/*!***************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/EraParser.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.EraParser = void 0; + +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +class EraParser extends _Parser.Parser { + priority = 140; + + parse(dateString, token, match) { + switch (token) { + // AD, BC + case "G": + case "GG": + case "GGG": + return ( + match.era(dateString, { width: "abbreviated" }) || + match.era(dateString, { width: "narrow" }) + ); + + // A, B + case "GGGGG": + return match.era(dateString, { width: "narrow" }); + // Anno Domini, Before Christ + case "GGGG": + default: + return ( + match.era(dateString, { width: "wide" }) || + match.era(dateString, { width: "abbreviated" }) || + match.era(dateString, { width: "narrow" }) + ); + } + } + + set(date, flags, value) { + flags.era = value; + date.setFullYear(value, 0, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = ["R", "u", "t", "T"]; +} +exports.EraParser = EraParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js": +/*!************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.ExtendedYearParser = void 0; +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class ExtendedYearParser extends _Parser.Parser { + priority = 130; + + parse(dateString, token) { + if (token === "u") { + return (0, _utils.parseNDigitsSigned)(4, dateString); + } + + return (0, _utils.parseNDigitsSigned)(token.length, dateString); + } + + set(date, _flags, value) { + date.setFullYear(value, 0, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"]; +} +exports.ExtendedYearParser = ExtendedYearParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js": +/*!****************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.FractionOfSecondParser = void 0; +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class FractionOfSecondParser extends _Parser.Parser { + priority = 30; + + parse(dateString, token) { + const valueCallback = (value) => + Math.trunc(value * Math.pow(10, -token.length + 3)); + return (0, _utils.mapValue)( + (0, _utils.parseNDigits)(token.length, dateString), + valueCallback, + ); + } + + set(date, _flags, value) { + date.setMilliseconds(value); + return date; + } + + incompatibleTokens = ["t", "T"]; +} +exports.FractionOfSecondParser = FractionOfSecondParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js": +/*!*********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.Hour0To11Parser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class Hour0To11Parser extends _Parser.Parser { + priority = 70; + + parse(dateString, token, match) { + switch (token) { + case "K": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.hour11h, + dateString, + ); + case "Ko": + return match.ordinalNumber(dateString, { unit: "hour" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 0 && value <= 11; + } + + set(date, _flags, value) { + const isPM = date.getHours() >= 12; + if (isPM && value < 12) { + date.setHours(value + 12, 0, 0, 0); + } else { + date.setHours(value, 0, 0, 0); + } + return date; + } + + incompatibleTokens = ["h", "H", "k", "t", "T"]; +} +exports.Hour0To11Parser = Hour0To11Parser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js": +/*!*********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.Hour0to23Parser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class Hour0to23Parser extends _Parser.Parser { + priority = 70; + + parse(dateString, token, match) { + switch (token) { + case "H": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.hour23h, + dateString, + ); + case "Ho": + return match.ordinalNumber(dateString, { unit: "hour" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 0 && value <= 23; + } + + set(date, _flags, value) { + date.setHours(value, 0, 0, 0); + return date; + } + + incompatibleTokens = ["a", "b", "h", "K", "k", "t", "T"]; +} +exports.Hour0to23Parser = Hour0to23Parser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js": +/*!*********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.Hour1To24Parser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class Hour1To24Parser extends _Parser.Parser { + priority = 70; + + parse(dateString, token, match) { + switch (token) { + case "k": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.hour24h, + dateString, + ); + case "ko": + return match.ordinalNumber(dateString, { unit: "hour" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 1 && value <= 24; + } + + set(date, _flags, value) { + const hours = value <= 24 ? value % 24 : value; + date.setHours(hours, 0, 0, 0); + return date; + } + + incompatibleTokens = ["a", "b", "h", "H", "K", "t", "T"]; +} +exports.Hour1To24Parser = Hour1To24Parser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js": +/*!*********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.Hour1to12Parser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class Hour1to12Parser extends _Parser.Parser { + priority = 70; + + parse(dateString, token, match) { + switch (token) { + case "h": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.hour12h, + dateString, + ); + case "ho": + return match.ordinalNumber(dateString, { unit: "hour" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 1 && value <= 12; + } + + set(date, _flags, value) { + const isPM = date.getHours() >= 12; + if (isPM && value < 12) { + date.setHours(value + 12, 0, 0, 0); + } else if (!isPM && value === 12) { + date.setHours(0, 0, 0, 0); + } else { + date.setHours(value, 0, 0, 0); + } + return date; + } + + incompatibleTokens = ["H", "K", "k", "t", "T"]; +} +exports.Hour1to12Parser = Hour1to12Parser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/ISODayParser.js": +/*!******************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/ISODayParser.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.ISODayParser = void 0; +var _index = __webpack_require__(/*! ../../../setISODay.js */ "./node_modules/date-fns/setISODay.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// ISO day of week +class ISODayParser extends _Parser.Parser { + priority = 90; + + parse(dateString, token, match) { + const valueCallback = (value) => { + if (value === 0) { + return 7; + } + return value; + }; + + switch (token) { + // 2 + case "i": + case "ii": // 02 + return (0, _utils.parseNDigits)(token.length, dateString); + // 2nd + case "io": + return match.ordinalNumber(dateString, { unit: "day" }); + // Tue + case "iii": + return (0, _utils.mapValue)( + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { + width: "short", + context: "formatting", + }) || + match.day(dateString, { + width: "narrow", + context: "formatting", + }), + valueCallback, + ); + // T + case "iiiii": + return (0, _utils.mapValue)( + match.day(dateString, { + width: "narrow", + context: "formatting", + }), + valueCallback, + ); + // Tu + case "iiiiii": + return (0, _utils.mapValue)( + match.day(dateString, { + width: "short", + context: "formatting", + }) || + match.day(dateString, { + width: "narrow", + context: "formatting", + }), + valueCallback, + ); + // Tuesday + case "iiii": + default: + return (0, _utils.mapValue)( + match.day(dateString, { + width: "wide", + context: "formatting", + }) || + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { + width: "short", + context: "formatting", + }) || + match.day(dateString, { + width: "narrow", + context: "formatting", + }), + valueCallback, + ); + } + } + + validate(_date, value) { + return value >= 1 && value <= 7; + } + + set(date, _flags, value) { + date = (0, _index.setISODay)(date, value); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "y", + "Y", + "u", + "q", + "Q", + "M", + "L", + "w", + "d", + "D", + "E", + "e", + "c", + "t", + "T", + ]; +} +exports.ISODayParser = ISODayParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js": +/*!***********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.ISOTimezoneParser = void 0; +var _index = __webpack_require__(/*! ../../../constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _index2 = __webpack_require__(/*! ../../../_lib/getTimezoneOffsetInMilliseconds.js */ "./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js"); +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// Timezone (ISO-8601) +class ISOTimezoneParser extends _Parser.Parser { + priority = 10; + + parse(dateString, token) { + switch (token) { + case "x": + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.basicOptionalMinutes, + dateString, + ); + case "xx": + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.basic, + dateString, + ); + case "xxxx": + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.basicOptionalSeconds, + dateString, + ); + case "xxxxx": + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.extendedOptionalSeconds, + dateString, + ); + case "xxx": + default: + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.extended, + dateString, + ); + } + } + + set(date, flags, value) { + if (flags.timestampIsSet) return date; + return (0, _index.constructFrom)( + date, + date.getTime() - + (0, _index2.getTimezoneOffsetInMilliseconds)(date) - + value, + ); + } + + incompatibleTokens = ["t", "T", "X"]; +} +exports.ISOTimezoneParser = ISOTimezoneParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js": +/*!****************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.ISOTimezoneWithZParser = void 0; +var _index = __webpack_require__(/*! ../../../constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _index2 = __webpack_require__(/*! ../../../_lib/getTimezoneOffsetInMilliseconds.js */ "./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js"); +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// Timezone (ISO-8601. +00:00 is `'Z'`) +class ISOTimezoneWithZParser extends _Parser.Parser { + priority = 10; + + parse(dateString, token) { + switch (token) { + case "X": + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.basicOptionalMinutes, + dateString, + ); + case "XX": + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.basic, + dateString, + ); + case "XXXX": + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.basicOptionalSeconds, + dateString, + ); + case "XXXXX": + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.extendedOptionalSeconds, + dateString, + ); + case "XXX": + default: + return (0, _utils.parseTimezonePattern)( + _constants.timezonePatterns.extended, + dateString, + ); + } + } + + set(date, flags, value) { + if (flags.timestampIsSet) return date; + return (0, _index.constructFrom)( + date, + date.getTime() - + (0, _index2.getTimezoneOffsetInMilliseconds)(date) - + value, + ); + } + + incompatibleTokens = ["t", "T", "x"]; +} +exports.ISOTimezoneWithZParser = ISOTimezoneWithZParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js": +/*!*******************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.ISOWeekParser = void 0; +var _index = __webpack_require__(/*! ../../../setISOWeek.js */ "./node_modules/date-fns/setISOWeek.js"); +var _index2 = __webpack_require__(/*! ../../../startOfISOWeek.js */ "./node_modules/date-fns/startOfISOWeek.js"); +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// ISO week of year +class ISOWeekParser extends _Parser.Parser { + priority = 100; + + parse(dateString, token, match) { + switch (token) { + case "I": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.week, + dateString, + ); + case "Io": + return match.ordinalNumber(dateString, { unit: "week" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 1 && value <= 53; + } + + set(date, _flags, value) { + return (0, _index2.startOfISOWeek)((0, _index.setISOWeek)(date, value)); + } + + incompatibleTokens = [ + "y", + "Y", + "u", + "q", + "Q", + "M", + "L", + "w", + "d", + "D", + "e", + "c", + "t", + "T", + ]; +} +exports.ISOWeekParser = ISOWeekParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js": +/*!***********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.ISOWeekYearParser = void 0; +var _index = __webpack_require__(/*! ../../../startOfISOWeek.js */ "./node_modules/date-fns/startOfISOWeek.js"); +var _index2 = __webpack_require__(/*! ../../../constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// ISO week-numbering year +class ISOWeekYearParser extends _Parser.Parser { + priority = 130; + + parse(dateString, token) { + if (token === "R") { + return (0, _utils.parseNDigitsSigned)(4, dateString); + } + + return (0, _utils.parseNDigitsSigned)(token.length, dateString); + } + + set(date, _flags, value) { + const firstWeekOfYear = (0, _index2.constructFrom)(date, 0); + firstWeekOfYear.setFullYear(value, 0, 4); + firstWeekOfYear.setHours(0, 0, 0, 0); + return (0, _index.startOfISOWeek)(firstWeekOfYear); + } + + incompatibleTokens = [ + "G", + "y", + "Y", + "u", + "Q", + "q", + "M", + "L", + "w", + "d", + "D", + "e", + "c", + "t", + "T", + ]; +} +exports.ISOWeekYearParser = ISOWeekYearParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js": +/*!********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.LocalDayParser = void 0; +var _index = __webpack_require__(/*! ../../../setDay.js */ "./node_modules/date-fns/setDay.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// Local day of week +class LocalDayParser extends _Parser.Parser { + priority = 90; + parse(dateString, token, match, options) { + const valueCallback = (value) => { + // We want here floor instead of trunc, so we get -7 for value 0 instead of 0 + const wholeWeekDays = Math.floor((value - 1) / 7) * 7; + return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays; + }; + + switch (token) { + // 3 + case "e": + case "ee": // 03 + return (0, _utils.mapValue)( + (0, _utils.parseNDigits)(token.length, dateString), + valueCallback, + ); + // 3rd + case "eo": + return (0, _utils.mapValue)( + match.ordinalNumber(dateString, { + unit: "day", + }), + valueCallback, + ); + // Tue + case "eee": + return ( + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + + // T + case "eeeee": + return match.day(dateString, { + width: "narrow", + context: "formatting", + }); + // Tu + case "eeeeee": + return ( + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + + // Tuesday + case "eeee": + default: + return ( + match.day(dateString, { width: "wide", context: "formatting" }) || + match.day(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.day(dateString, { width: "short", context: "formatting" }) || + match.day(dateString, { width: "narrow", context: "formatting" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 6; + } + + set(date, _flags, value, options) { + date = (0, _index.setDay)(date, value, options); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "y", + "R", + "u", + "q", + "Q", + "M", + "L", + "I", + "d", + "D", + "E", + "i", + "c", + "t", + "T", + ]; +} +exports.LocalDayParser = LocalDayParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js": +/*!*********************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.LocalWeekParser = void 0; +var _index = __webpack_require__(/*! ../../../setWeek.js */ "./node_modules/date-fns/setWeek.js"); +var _index2 = __webpack_require__(/*! ../../../startOfWeek.js */ "./node_modules/date-fns/startOfWeek.js"); +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// Local week of year +class LocalWeekParser extends _Parser.Parser { + priority = 100; + + parse(dateString, token, match) { + switch (token) { + case "w": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.week, + dateString, + ); + case "wo": + return match.ordinalNumber(dateString, { unit: "week" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 1 && value <= 53; + } + + set(date, _flags, value, options) { + return (0, _index2.startOfWeek)( + (0, _index.setWeek)(date, value, options), + options, + ); + } + + incompatibleTokens = [ + "y", + "R", + "u", + "q", + "Q", + "M", + "L", + "I", + "d", + "D", + "i", + "t", + "T", + ]; +} +exports.LocalWeekParser = LocalWeekParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js": +/*!*************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.LocalWeekYearParser = void 0; +var _index = __webpack_require__(/*! ../../../getWeekYear.js */ "./node_modules/date-fns/getWeekYear.js"); + +var _index2 = __webpack_require__(/*! ../../../startOfWeek.js */ "./node_modules/date-fns/startOfWeek.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// Local week-numbering year +class LocalWeekYearParser extends _Parser.Parser { + priority = 130; + + parse(dateString, token, match) { + const valueCallback = (year) => ({ + year, + isTwoDigitYear: token === "YY", + }); + + switch (token) { + case "Y": + return (0, _utils.mapValue)( + (0, _utils.parseNDigits)(4, dateString), + valueCallback, + ); + case "Yo": + return (0, _utils.mapValue)( + match.ordinalNumber(dateString, { + unit: "year", + }), + valueCallback, + ); + default: + return (0, _utils.mapValue)( + (0, _utils.parseNDigits)(token.length, dateString), + valueCallback, + ); + } + } + + validate(_date, value) { + return value.isTwoDigitYear || value.year > 0; + } + + set(date, flags, value, options) { + const currentYear = (0, _index.getWeekYear)(date, options); + + if (value.isTwoDigitYear) { + const normalizedTwoDigitYear = (0, _utils.normalizeTwoDigitYear)( + value.year, + currentYear, + ); + date.setFullYear( + normalizedTwoDigitYear, + 0, + options.firstWeekContainsDate, + ); + date.setHours(0, 0, 0, 0); + return (0, _index2.startOfWeek)(date, options); + } + + const year = + !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year; + date.setFullYear(year, 0, options.firstWeekContainsDate); + date.setHours(0, 0, 0, 0); + return (0, _index2.startOfWeek)(date, options); + } + + incompatibleTokens = [ + "y", + "R", + "u", + "Q", + "q", + "M", + "L", + "I", + "d", + "D", + "i", + "t", + "T", + ]; +} +exports.LocalWeekYearParser = LocalWeekYearParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/MinuteParser.js": +/*!******************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/MinuteParser.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.MinuteParser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class MinuteParser extends _Parser.Parser { + priority = 60; + + parse(dateString, token, match) { + switch (token) { + case "m": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.minute, + dateString, + ); + case "mo": + return match.ordinalNumber(dateString, { unit: "minute" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 0 && value <= 59; + } + + set(date, _flags, value) { + date.setMinutes(value, 0, 0); + return date; + } + + incompatibleTokens = ["t", "T"]; +} +exports.MinuteParser = MinuteParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/MonthParser.js": +/*!*****************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/MonthParser.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.MonthParser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class MonthParser extends _Parser.Parser { + incompatibleTokens = [ + "Y", + "R", + "q", + "Q", + "L", + "w", + "I", + "D", + "i", + "e", + "c", + "t", + "T", + ]; + + priority = 110; + + parse(dateString, token, match) { + const valueCallback = (value) => value - 1; + + switch (token) { + // 1, 2, ..., 12 + case "M": + return (0, _utils.mapValue)( + (0, _utils.parseNumericPattern)( + _constants.numericPatterns.month, + dateString, + ), + valueCallback, + ); + // 01, 02, ..., 12 + case "MM": + return (0, _utils.mapValue)( + (0, _utils.parseNDigits)(2, dateString), + valueCallback, + ); + // 1st, 2nd, ..., 12th + case "Mo": + return (0, _utils.mapValue)( + match.ordinalNumber(dateString, { + unit: "month", + }), + valueCallback, + ); + // Jan, Feb, ..., Dec + case "MMM": + return ( + match.month(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.month(dateString, { width: "narrow", context: "formatting" }) + ); + + // J, F, ..., D + case "MMMMM": + return match.month(dateString, { + width: "narrow", + context: "formatting", + }); + // January, February, ..., December + case "MMMM": + default: + return ( + match.month(dateString, { width: "wide", context: "formatting" }) || + match.month(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.month(dateString, { width: "narrow", context: "formatting" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 11; + } + + set(date, _flags, value) { + date.setMonth(value, 1); + date.setHours(0, 0, 0, 0); + return date; + } +} +exports.MonthParser = MonthParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/QuarterParser.js": +/*!*******************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/QuarterParser.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.QuarterParser = void 0; +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class QuarterParser extends _Parser.Parser { + priority = 120; + + parse(dateString, token, match) { + switch (token) { + // 1, 2, 3, 4 + case "Q": + case "QQ": // 01, 02, 03, 04 + return (0, _utils.parseNDigits)(token.length, dateString); + // 1st, 2nd, 3rd, 4th + case "Qo": + return match.ordinalNumber(dateString, { unit: "quarter" }); + // Q1, Q2, Q3, Q4 + case "QQQ": + return ( + match.quarter(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.quarter(dateString, { + width: "narrow", + context: "formatting", + }) + ); + + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case "QQQQQ": + return match.quarter(dateString, { + width: "narrow", + context: "formatting", + }); + // 1st quarter, 2nd quarter, ... + case "QQQQ": + default: + return ( + match.quarter(dateString, { + width: "wide", + context: "formatting", + }) || + match.quarter(dateString, { + width: "abbreviated", + context: "formatting", + }) || + match.quarter(dateString, { + width: "narrow", + context: "formatting", + }) + ); + } + } + + validate(_date, value) { + return value >= 1 && value <= 4; + } + + set(date, _flags, value) { + date.setMonth((value - 1) * 3, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "q", + "M", + "L", + "w", + "I", + "d", + "D", + "i", + "e", + "c", + "t", + "T", + ]; +} +exports.QuarterParser = QuarterParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/SecondParser.js": +/*!******************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/SecondParser.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.SecondParser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class SecondParser extends _Parser.Parser { + priority = 50; + + parse(dateString, token, match) { + switch (token) { + case "s": + return (0, _utils.parseNumericPattern)( + _constants.numericPatterns.second, + dateString, + ); + case "so": + return match.ordinalNumber(dateString, { unit: "second" }); + default: + return (0, _utils.parseNDigits)(token.length, dateString); + } + } + + validate(_date, value) { + return value >= 0 && value <= 59; + } + + set(date, _flags, value) { + date.setSeconds(value, 0); + return date; + } + + incompatibleTokens = ["t", "T"]; +} +exports.SecondParser = SecondParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js": +/*!******************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.StandAloneLocalDayParser = void 0; +var _index = __webpack_require__(/*! ../../../setDay.js */ "./node_modules/date-fns/setDay.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// Stand-alone local day of week +class StandAloneLocalDayParser extends _Parser.Parser { + priority = 90; + + parse(dateString, token, match, options) { + const valueCallback = (value) => { + // We want here floor instead of trunc, so we get -7 for value 0 instead of 0 + const wholeWeekDays = Math.floor((value - 1) / 7) * 7; + return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays; + }; + + switch (token) { + // 3 + case "c": + case "cc": // 03 + return (0, _utils.mapValue)( + (0, _utils.parseNDigits)(token.length, dateString), + valueCallback, + ); + // 3rd + case "co": + return (0, _utils.mapValue)( + match.ordinalNumber(dateString, { + unit: "day", + }), + valueCallback, + ); + // Tue + case "ccc": + return ( + match.day(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.day(dateString, { width: "short", context: "standalone" }) || + match.day(dateString, { width: "narrow", context: "standalone" }) + ); + + // T + case "ccccc": + return match.day(dateString, { + width: "narrow", + context: "standalone", + }); + // Tu + case "cccccc": + return ( + match.day(dateString, { width: "short", context: "standalone" }) || + match.day(dateString, { width: "narrow", context: "standalone" }) + ); + + // Tuesday + case "cccc": + default: + return ( + match.day(dateString, { width: "wide", context: "standalone" }) || + match.day(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.day(dateString, { width: "short", context: "standalone" }) || + match.day(dateString, { width: "narrow", context: "standalone" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 6; + } + + set(date, _flags, value, options) { + date = (0, _index.setDay)(date, value, options); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "y", + "R", + "u", + "q", + "Q", + "M", + "L", + "I", + "d", + "D", + "E", + "i", + "e", + "t", + "T", + ]; +} +exports.StandAloneLocalDayParser = StandAloneLocalDayParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js": +/*!***************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.StandAloneMonthParser = void 0; +var _constants = __webpack_require__(/*! ../constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class StandAloneMonthParser extends _Parser.Parser { + priority = 110; + + parse(dateString, token, match) { + const valueCallback = (value) => value - 1; + + switch (token) { + // 1, 2, ..., 12 + case "L": + return (0, _utils.mapValue)( + (0, _utils.parseNumericPattern)( + _constants.numericPatterns.month, + dateString, + ), + valueCallback, + ); + // 01, 02, ..., 12 + case "LL": + return (0, _utils.mapValue)( + (0, _utils.parseNDigits)(2, dateString), + valueCallback, + ); + // 1st, 2nd, ..., 12th + case "Lo": + return (0, _utils.mapValue)( + match.ordinalNumber(dateString, { + unit: "month", + }), + valueCallback, + ); + // Jan, Feb, ..., Dec + case "LLL": + return ( + match.month(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.month(dateString, { width: "narrow", context: "standalone" }) + ); + + // J, F, ..., D + case "LLLLL": + return match.month(dateString, { + width: "narrow", + context: "standalone", + }); + // January, February, ..., December + case "LLLL": + default: + return ( + match.month(dateString, { width: "wide", context: "standalone" }) || + match.month(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.month(dateString, { width: "narrow", context: "standalone" }) + ); + } + } + + validate(_date, value) { + return value >= 0 && value <= 11; + } + + set(date, _flags, value) { + date.setMonth(value, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "q", + "Q", + "M", + "w", + "I", + "D", + "i", + "e", + "c", + "t", + "T", + ]; +} +exports.StandAloneMonthParser = StandAloneMonthParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.StandAloneQuarterParser = void 0; +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class StandAloneQuarterParser extends _Parser.Parser { + priority = 120; + + parse(dateString, token, match) { + switch (token) { + // 1, 2, 3, 4 + case "q": + case "qq": // 01, 02, 03, 04 + return (0, _utils.parseNDigits)(token.length, dateString); + // 1st, 2nd, 3rd, 4th + case "qo": + return match.ordinalNumber(dateString, { unit: "quarter" }); + // Q1, Q2, Q3, Q4 + case "qqq": + return ( + match.quarter(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.quarter(dateString, { + width: "narrow", + context: "standalone", + }) + ); + + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case "qqqqq": + return match.quarter(dateString, { + width: "narrow", + context: "standalone", + }); + // 1st quarter, 2nd quarter, ... + case "qqqq": + default: + return ( + match.quarter(dateString, { + width: "wide", + context: "standalone", + }) || + match.quarter(dateString, { + width: "abbreviated", + context: "standalone", + }) || + match.quarter(dateString, { + width: "narrow", + context: "standalone", + }) + ); + } + } + + validate(_date, value) { + return value >= 1 && value <= 4; + } + + set(date, _flags, value) { + date.setMonth((value - 1) * 3, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + incompatibleTokens = [ + "Y", + "R", + "Q", + "M", + "L", + "w", + "I", + "d", + "D", + "i", + "e", + "c", + "t", + "T", + ]; +} +exports.StandAloneQuarterParser = StandAloneQuarterParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.TimestampMillisecondsParser = void 0; +var _index = __webpack_require__(/*! ../../../constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class TimestampMillisecondsParser extends _Parser.Parser { + priority = 20; + + parse(dateString) { + return (0, _utils.parseAnyDigitsSigned)(dateString); + } + + set(date, _flags, value) { + return [(0, _index.constructFrom)(date, value), { timestampIsSet: true }]; + } + + incompatibleTokens = "*"; +} +exports.TimestampMillisecondsParser = TimestampMillisecondsParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js": +/*!****************************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.TimestampSecondsParser = void 0; +var _index = __webpack_require__(/*! ../../../constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +class TimestampSecondsParser extends _Parser.Parser { + priority = 40; + + parse(dateString) { + return (0, _utils.parseAnyDigitsSigned)(dateString); + } + + set(date, _flags, value) { + return [ + (0, _index.constructFrom)(date, value * 1000), + { timestampIsSet: true }, + ]; + } + + incompatibleTokens = "*"; +} +exports.TimestampSecondsParser = TimestampSecondsParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/parsers/YearParser.js": +/*!****************************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/parsers/YearParser.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.YearParser = void 0; +var _Parser = __webpack_require__(/*! ../Parser.js */ "./node_modules/date-fns/parse/_lib/Parser.js"); + +var _utils = __webpack_require__(/*! ../utils.js */ "./node_modules/date-fns/parse/_lib/utils.js"); + +// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns +// | Year | y | yy | yyy | yyyy | yyyyy | +// |----------|-------|----|-------|-------|-------| +// | AD 1 | 1 | 01 | 001 | 0001 | 00001 | +// | AD 12 | 12 | 12 | 012 | 0012 | 00012 | +// | AD 123 | 123 | 23 | 123 | 0123 | 00123 | +// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | +// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | +class YearParser extends _Parser.Parser { + priority = 130; + incompatibleTokens = ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"]; + + parse(dateString, token, match) { + const valueCallback = (year) => ({ + year, + isTwoDigitYear: token === "yy", + }); + + switch (token) { + case "y": + return (0, _utils.mapValue)( + (0, _utils.parseNDigits)(4, dateString), + valueCallback, + ); + case "yo": + return (0, _utils.mapValue)( + match.ordinalNumber(dateString, { + unit: "year", + }), + valueCallback, + ); + default: + return (0, _utils.mapValue)( + (0, _utils.parseNDigits)(token.length, dateString), + valueCallback, + ); + } + } + + validate(_date, value) { + return value.isTwoDigitYear || value.year > 0; + } + + set(date, flags, value) { + const currentYear = date.getFullYear(); + + if (value.isTwoDigitYear) { + const normalizedTwoDigitYear = (0, _utils.normalizeTwoDigitYear)( + value.year, + currentYear, + ); + date.setFullYear(normalizedTwoDigitYear, 0, 1); + date.setHours(0, 0, 0, 0); + return date; + } + + const year = + !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year; + date.setFullYear(year, 0, 1); + date.setHours(0, 0, 0, 0); + return date; + } +} +exports.YearParser = YearParser; + + +/***/ }), + +/***/ "./node_modules/date-fns/parse/_lib/utils.js": +/*!***************************************************!*\ + !*** ./node_modules/date-fns/parse/_lib/utils.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.dayPeriodEnumToHours = dayPeriodEnumToHours; +exports.isLeapYearIndex = isLeapYearIndex; +exports.mapValue = mapValue; +exports.normalizeTwoDigitYear = normalizeTwoDigitYear; +exports.parseAnyDigitsSigned = parseAnyDigitsSigned; +exports.parseNDigits = parseNDigits; +exports.parseNDigitsSigned = parseNDigitsSigned; +exports.parseNumericPattern = parseNumericPattern; +exports.parseTimezonePattern = parseTimezonePattern; +var _index = __webpack_require__(/*! ../../constants.js */ "./node_modules/date-fns/constants.js"); + +var _constants = __webpack_require__(/*! ./constants.js */ "./node_modules/date-fns/parse/_lib/constants.js"); + +function mapValue(parseFnResult, mapFn) { + if (!parseFnResult) { + return parseFnResult; + } + + return { + value: mapFn(parseFnResult.value), + rest: parseFnResult.rest, + }; +} + +function parseNumericPattern(pattern, dateString) { + const matchResult = dateString.match(pattern); + + if (!matchResult) { + return null; + } + + return { + value: parseInt(matchResult[0], 10), + rest: dateString.slice(matchResult[0].length), + }; +} + +function parseTimezonePattern(pattern, dateString) { + const matchResult = dateString.match(pattern); + + if (!matchResult) { + return null; + } + + // Input is 'Z' + if (matchResult[0] === "Z") { + return { + value: 0, + rest: dateString.slice(1), + }; + } + + const sign = matchResult[1] === "+" ? 1 : -1; + const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0; + const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0; + const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0; + + return { + value: + sign * + (hours * _index.millisecondsInHour + + minutes * _index.millisecondsInMinute + + seconds * _index.millisecondsInSecond), + rest: dateString.slice(matchResult[0].length), + }; +} + +function parseAnyDigitsSigned(dateString) { + return parseNumericPattern( + _constants.numericPatterns.anyDigitsSigned, + dateString, + ); +} + +function parseNDigits(n, dateString) { + switch (n) { + case 1: + return parseNumericPattern( + _constants.numericPatterns.singleDigit, + dateString, + ); + case 2: + return parseNumericPattern( + _constants.numericPatterns.twoDigits, + dateString, + ); + case 3: + return parseNumericPattern( + _constants.numericPatterns.threeDigits, + dateString, + ); + case 4: + return parseNumericPattern( + _constants.numericPatterns.fourDigits, + dateString, + ); + default: + return parseNumericPattern(new RegExp("^\\d{1," + n + "}"), dateString); + } +} + +function parseNDigitsSigned(n, dateString) { + switch (n) { + case 1: + return parseNumericPattern( + _constants.numericPatterns.singleDigitSigned, + dateString, + ); + case 2: + return parseNumericPattern( + _constants.numericPatterns.twoDigitsSigned, + dateString, + ); + case 3: + return parseNumericPattern( + _constants.numericPatterns.threeDigitsSigned, + dateString, + ); + case 4: + return parseNumericPattern( + _constants.numericPatterns.fourDigitsSigned, + dateString, + ); + default: + return parseNumericPattern(new RegExp("^-?\\d{1," + n + "}"), dateString); + } +} + +function dayPeriodEnumToHours(dayPeriod) { + switch (dayPeriod) { + case "morning": + return 4; + case "evening": + return 17; + case "pm": + case "noon": + case "afternoon": + return 12; + case "am": + case "midnight": + case "night": + default: + return 0; + } +} + +function normalizeTwoDigitYear(twoDigitYear, currentYear) { + const isCommonEra = currentYear > 0; + // Absolute number of the current year: + // 1 -> 1 AC + // 0 -> 1 BC + // -1 -> 2 BC + const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear; + + let result; + if (absCurrentYear <= 50) { + result = twoDigitYear || 100; + } else { + const rangeEnd = absCurrentYear + 50; + const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100; + const isPreviousCentury = twoDigitYear >= rangeEnd % 100; + result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0); + } + + return isCommonEra ? result : 1 - result; +} + +function isLeapYearIndex(year) { + return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/set.js": +/*!**************************************!*\ + !*** ./node_modules/date-fns/set.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.set = set; +var _index = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _index2 = __webpack_require__(/*! ./setMonth.js */ "./node_modules/date-fns/setMonth.js"); +var _index3 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name set + * @category Common Helpers + * @summary Set date values to a given date. + * + * @description + * Set date values to a given date. + * + * Sets time values to date from object `values`. + * A value is not set if it is undefined or null or doesn't exist in `values`. + * + * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts + * to use native `Date#setX` methods. If you use this function, you may not want to include the + * other `setX` functions that date-fns provides if you are concerned about the bundle size. + * + * @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). + * + * @param date - The date to be changed + * @param values - The date values to be set + * + * @returns The new date with options set + * + * @example + * // Transform 1 September 2014 into 20 October 2015 in a single line: + * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 }) + * //=> Tue Oct 20 2015 00:00:00 + * + * @example + * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00: + * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 }) + * //=> Mon Sep 01 2014 12:23:45 + */ + +function set(date, values) { + let _date = (0, _index3.toDate)(date); + + // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date + if (isNaN(+_date)) { + return (0, _index.constructFrom)(date, NaN); + } + + if (values.year != null) { + _date.setFullYear(values.year); + } + + if (values.month != null) { + _date = (0, _index2.setMonth)(_date, values.month); + } + + if (values.date != null) { + _date.setDate(values.date); + } + + if (values.hours != null) { + _date.setHours(values.hours); + } + + if (values.minutes != null) { + _date.setMinutes(values.minutes); + } + + if (values.seconds != null) { + _date.setSeconds(values.seconds); + } + + if (values.milliseconds != null) { + _date.setMilliseconds(values.milliseconds); + } + + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setDay.js": +/*!*****************************************!*\ + !*** ./node_modules/date-fns/setDay.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setDay = setDay; +var _index = __webpack_require__(/*! ./addDays.js */ "./node_modules/date-fns/addDays.js"); +var _index2 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +var _index3 = __webpack_require__(/*! ./_lib/defaultOptions.js */ "./node_modules/date-fns/_lib/defaultOptions.js"); + +/** + * The {@link setDay} function options. + */ + +/** + * @name setDay + * @category Weekday Helpers + * @summary Set the day of the week to the given date. + * + * @description + * Set the day of the week to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param day - The day of the week of the new date + * @param options - An object with options. + * + * @returns The new date with the day of the week set + * + * @example + * // Set week day to Sunday, with the default weekStartsOn of Sunday: + * const result = setDay(new Date(2014, 8, 1), 0) + * //=> Sun Aug 31 2014 00:00:00 + * + * @example + * // Set week day to Sunday, with a weekStartsOn of Monday: + * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 }) + * //=> Sun Sep 07 2014 00:00:00 + */ +function setDay(date, day, options) { + const defaultOptions = (0, _index3.getDefaultOptions)(); + const weekStartsOn = + options?.weekStartsOn ?? + options?.locale?.options?.weekStartsOn ?? + defaultOptions.weekStartsOn ?? + defaultOptions.locale?.options?.weekStartsOn ?? + 0; + + const _date = (0, _index2.toDate)(date); + const currentDay = _date.getDay(); + + const remainder = day % 7; + const dayIndex = (remainder + 7) % 7; + + const delta = 7 - weekStartsOn; + const diff = + day < 0 || day > 6 + ? day - ((currentDay + delta) % 7) + : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7); + return (0, _index.addDays)(_date, diff); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setHours.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/setHours.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setHours = setHours; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name setHours + * @category Hour Helpers + * @summary Set the hours to the given date. + * + * @description + * Set the hours to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param hours - The hours of the new date + * + * @returns The new date with the hours set + * + * @example + * // Set 4 hours to 1 September 2014 11:30:00: + * const result = setHours(new Date(2014, 8, 1, 11, 30), 4) + * //=> Mon Sep 01 2014 04:30:00 + */ +function setHours(date, hours) { + const _date = (0, _index.toDate)(date); + _date.setHours(hours); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setISODay.js": +/*!********************************************!*\ + !*** ./node_modules/date-fns/setISODay.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setISODay = setISODay; +var _index = __webpack_require__(/*! ./addDays.js */ "./node_modules/date-fns/addDays.js"); +var _index2 = __webpack_require__(/*! ./getISODay.js */ "./node_modules/date-fns/getISODay.js"); +var _index3 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name setISODay + * @category Weekday Helpers + * @summary Set the day of the ISO week to the given date. + * + * @description + * Set the day of the ISO week to the given date. + * ISO week starts with Monday. + * 7 is the index of Sunday, 1 is the index of Monday etc. + * + * @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). + * + * @param date - The date to be changed + * @param day - The day of the ISO week of the new date + * + * @returns The new date with the day of the ISO week set + * + * @example + * // Set Sunday to 1 September 2014: + * const result = setISODay(new Date(2014, 8, 1), 7) + * //=> Sun Sep 07 2014 00:00:00 + */ +function setISODay(date, day) { + const _date = (0, _index3.toDate)(date); + const currentDay = (0, _index2.getISODay)(_date); + const diff = day - currentDay; + return (0, _index.addDays)(_date, diff); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setISOWeek.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/setISOWeek.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setISOWeek = setISOWeek; +var _index = __webpack_require__(/*! ./getISOWeek.js */ "./node_modules/date-fns/getISOWeek.js"); +var _index2 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name setISOWeek + * @category ISO Week Helpers + * @summary Set the ISO week to the given date. + * + * @description + * Set the ISO week to the given date, saving the weekday number. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @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). + * + * @param date - The date to be changed + * @param week - The ISO week of the new date + * + * @returns The new date with the ISO week set + * + * @example + * // Set the 53rd ISO week to 7 August 2004: + * const result = setISOWeek(new Date(2004, 7, 7), 53) + * //=> Sat Jan 01 2005 00:00:00 + */ +function setISOWeek(date, week) { + const _date = (0, _index2.toDate)(date); + const diff = (0, _index.getISOWeek)(_date) - week; + _date.setDate(_date.getDate() - diff * 7); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setMinutes.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/setMinutes.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setMinutes = setMinutes; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name setMinutes + * @category Minute Helpers + * @summary Set the minutes to the given date. + * + * @description + * Set the minutes to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param minutes - The minutes of the new date + * + * @returns The new date with the minutes set + * + * @example + * // Set 45 minutes to 1 September 2014 11:30:40: + * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45) + * //=> Mon Sep 01 2014 11:45:40 + */ +function setMinutes(date, minutes) { + const _date = (0, _index.toDate)(date); + _date.setMinutes(minutes); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setMonth.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/setMonth.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setMonth = setMonth; +var _index = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _index2 = __webpack_require__(/*! ./getDaysInMonth.js */ "./node_modules/date-fns/getDaysInMonth.js"); +var _index3 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name setMonth + * @category Month Helpers + * @summary Set the month to the given date. + * + * @description + * Set the month to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param month - The month index to set (0-11) + * + * @returns The new date with the month set + * + * @example + * // Set February to 1 September 2014: + * const result = setMonth(new Date(2014, 8, 1), 1) + * //=> Sat Feb 01 2014 00:00:00 + */ +function setMonth(date, month) { + const _date = (0, _index3.toDate)(date); + const year = _date.getFullYear(); + const day = _date.getDate(); + + const dateWithDesiredMonth = (0, _index.constructFrom)(date, 0); + dateWithDesiredMonth.setFullYear(year, month, 15); + dateWithDesiredMonth.setHours(0, 0, 0, 0); + const daysInMonth = (0, _index2.getDaysInMonth)(dateWithDesiredMonth); + // Set the last day of the new month + // if the original date was the last day of the longer month + _date.setMonth(month, Math.min(day, daysInMonth)); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setQuarter.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/setQuarter.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setQuarter = setQuarter; +var _index = __webpack_require__(/*! ./setMonth.js */ "./node_modules/date-fns/setMonth.js"); +var _index2 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name setQuarter + * @category Quarter Helpers + * @summary Set the year quarter to the given date. + * + * @description + * Set the year quarter to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param quarter - The quarter of the new date + * + * @returns The new date with the quarter set + * + * @example + * // Set the 2nd quarter to 2 July 2014: + * const result = setQuarter(new Date(2014, 6, 2), 2) + * //=> Wed Apr 02 2014 00:00:00 + */ +function setQuarter(date, quarter) { + const _date = (0, _index2.toDate)(date); + const oldQuarter = Math.trunc(_date.getMonth() / 3) + 1; + const diff = quarter - oldQuarter; + return (0, _index.setMonth)(_date, _date.getMonth() + diff * 3); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setSeconds.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/setSeconds.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setSeconds = setSeconds; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name setSeconds + * @category Second Helpers + * @summary Set the seconds to the given date. + * + * @description + * Set the seconds to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param seconds - The seconds of the new date + * + * @returns The new date with the seconds set + * + * @example + * // Set 45 seconds to 1 September 2014 11:30:40: + * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45) + * //=> Mon Sep 01 2014 11:30:45 + */ +function setSeconds(date, seconds) { + const _date = (0, _index.toDate)(date); + _date.setSeconds(seconds); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setWeek.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/setWeek.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setWeek = setWeek; +var _index = __webpack_require__(/*! ./getWeek.js */ "./node_modules/date-fns/getWeek.js"); +var _index2 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * The {@link setWeek} function options. + */ + +/** + * @name setWeek + * @category Week Helpers + * @summary Set the local week to the given date. + * + * @description + * Set the local week to the given date, saving the weekday number. + * The exact calculation depends on the values of + * `options.weekStartsOn` (which is the index of the first day of the week) + * and `options.firstWeekContainsDate` (which is the day of January, which is always in + * the first week of the week-numbering year) + * + * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system + * + * @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). + * + * @param date - The date to be changed + * @param week - The week of the new date + * @param options - An object with options + * + * @returns The new date with the local week set + * + * @example + * // Set the 1st week to 2 January 2005 with default options: + * const result = setWeek(new Date(2005, 0, 2), 1) + * //=> Sun Dec 26 2004 00:00:00 + * + * @example + * // Set the 1st week to 2 January 2005, + * // if Monday is the first day of the week, + * // and the first week of the year always contains 4 January: + * const result = setWeek(new Date(2005, 0, 2), 1, { + * weekStartsOn: 1, + * firstWeekContainsDate: 4 + * }) + * //=> Sun Jan 4 2004 00:00:00 + */ +function setWeek(date, week, options) { + const _date = (0, _index2.toDate)(date); + const diff = (0, _index.getWeek)(_date, options) - week; + _date.setDate(_date.getDate() - diff * 7); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/setYear.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/setYear.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.setYear = setYear; +var _index = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _index2 = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name setYear + * @category Year Helpers + * @summary Set the year to the given date. + * + * @description + * Set the year to the given date. + * + * @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). + * + * @param date - The date to be changed + * @param year - The year of the new date + * + * @returns The new date with the year set + * + * @example + * // Set year 2013 to 1 September 2014: + * const result = setYear(new Date(2014, 8, 1), 2013) + * //=> Sun Sep 01 2013 00:00:00 + */ +function setYear(date, year) { + const _date = (0, _index2.toDate)(date); + + // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date + if (isNaN(+_date)) { + return (0, _index.constructFrom)(date, NaN); + } + + _date.setFullYear(year); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/startOfDay.js": +/*!*********************************************!*\ + !*** ./node_modules/date-fns/startOfDay.js ***! + \*********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.startOfDay = startOfDay; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name startOfDay + * @category Day Helpers + * @summary Return the start of a day for the given date. + * + * @description + * Return the start of a day for the given date. + * The result will be in the local timezone. + * + * @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). + * + * @param date - The original date + * + * @returns The start of a day + * + * @example + * // The start of a day for 2 September 2014 11:55:00: + * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Tue Sep 02 2014 00:00:00 + */ +function startOfDay(date) { + const _date = (0, _index.toDate)(date); + _date.setHours(0, 0, 0, 0); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/startOfISOWeek.js": +/*!*************************************************!*\ + !*** ./node_modules/date-fns/startOfISOWeek.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.startOfISOWeek = startOfISOWeek; +var _index = __webpack_require__(/*! ./startOfWeek.js */ "./node_modules/date-fns/startOfWeek.js"); + +/** + * @name startOfISOWeek + * @category ISO Week Helpers + * @summary Return the start of an ISO week for the given date. + * + * @description + * Return the start of an ISO week for the given date. + * The result will be in the local timezone. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @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). + * + * @param date - The original date + * + * @returns The start of an ISO week + * + * @example + * // The start of an ISO week for 2 September 2014 11:55:00: + * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Mon Sep 01 2014 00:00:00 + */ +function startOfISOWeek(date) { + return (0, _index.startOfWeek)(date, { weekStartsOn: 1 }); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/startOfISOWeekYear.js": +/*!*****************************************************!*\ + !*** ./node_modules/date-fns/startOfISOWeekYear.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.startOfISOWeekYear = startOfISOWeekYear; +var _index = __webpack_require__(/*! ./getISOWeekYear.js */ "./node_modules/date-fns/getISOWeekYear.js"); +var _index2 = __webpack_require__(/*! ./startOfISOWeek.js */ "./node_modules/date-fns/startOfISOWeek.js"); +var _index3 = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); + +/** + * @name startOfISOWeekYear + * @category ISO Week-Numbering Year Helpers + * @summary Return the start of an ISO week-numbering year for the given date. + * + * @description + * Return the start of an ISO week-numbering year, + * which always starts 3 days before the year's first Thursday. + * The result will be in the local timezone. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @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). + * + * @param date - The original date + * + * @returns The start of an ISO week-numbering year + * + * @example + * // The start of an ISO week-numbering year for 2 July 2005: + * const result = startOfISOWeekYear(new Date(2005, 6, 2)) + * //=> Mon Jan 03 2005 00:00:00 + */ +function startOfISOWeekYear(date) { + const year = (0, _index.getISOWeekYear)(date); + const fourthOfJanuary = (0, _index3.constructFrom)(date, 0); + fourthOfJanuary.setFullYear(year, 0, 4); + fourthOfJanuary.setHours(0, 0, 0, 0); + return (0, _index2.startOfISOWeek)(fourthOfJanuary); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/startOfMonth.js": +/*!***********************************************!*\ + !*** ./node_modules/date-fns/startOfMonth.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.startOfMonth = startOfMonth; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name startOfMonth + * @category Month Helpers + * @summary Return the start of a month for the given date. + * + * @description + * Return the start of a month for the given date. + * The result will be in the local timezone. + * + * @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). + * + * @param date - The original date + * + * @returns The start of a month + * + * @example + * // The start of a month for 2 September 2014 11:55:00: + * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Mon Sep 01 2014 00:00:00 + */ +function startOfMonth(date) { + const _date = (0, _index.toDate)(date); + _date.setDate(1); + _date.setHours(0, 0, 0, 0); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/startOfQuarter.js": +/*!*************************************************!*\ + !*** ./node_modules/date-fns/startOfQuarter.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.startOfQuarter = startOfQuarter; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +/** + * @name startOfQuarter + * @category Quarter Helpers + * @summary Return the start of a year quarter for the given date. + * + * @description + * Return the start of a year quarter for the given date. + * The result will be in the local timezone. + * + * @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). + * + * @param date - The original date + * + * @returns The start of a quarter + * + * @example + * // The start of a quarter for 2 September 2014 11:55:00: + * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Tue Jul 01 2014 00:00:00 + */ +function startOfQuarter(date) { + const _date = (0, _index.toDate)(date); + const currentMonth = _date.getMonth(); + const month = currentMonth - (currentMonth % 3); + _date.setMonth(month, 1); + _date.setHours(0, 0, 0, 0); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/startOfWeek.js": +/*!**********************************************!*\ + !*** ./node_modules/date-fns/startOfWeek.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.startOfWeek = startOfWeek; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); + +var _index2 = __webpack_require__(/*! ./_lib/defaultOptions.js */ "./node_modules/date-fns/_lib/defaultOptions.js"); + +/** + * The {@link startOfWeek} function options. + */ + +/** + * @name startOfWeek + * @category Week Helpers + * @summary Return the start of a week for the given date. + * + * @description + * Return the start of a week for the given date. + * The result will be in the local timezone. + * + * @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). + * + * @param date - The original date + * @param options - An object with options + * + * @returns The start of a week + * + * @example + * // The start of a week for 2 September 2014 11:55:00: + * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Sun Aug 31 2014 00:00:00 + * + * @example + * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00: + * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 }) + * //=> Mon Sep 01 2014 00:00:00 + */ +function startOfWeek(date, options) { + const defaultOptions = (0, _index2.getDefaultOptions)(); + const weekStartsOn = + options?.weekStartsOn ?? + options?.locale?.options?.weekStartsOn ?? + defaultOptions.weekStartsOn ?? + defaultOptions.locale?.options?.weekStartsOn ?? + 0; + + const _date = (0, _index.toDate)(date); + const day = _date.getDay(); + const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; + + _date.setDate(_date.getDate() - diff); + _date.setHours(0, 0, 0, 0); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/startOfWeekYear.js": +/*!**************************************************!*\ + !*** ./node_modules/date-fns/startOfWeekYear.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.startOfWeekYear = startOfWeekYear; +var _index = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); +var _index2 = __webpack_require__(/*! ./getWeekYear.js */ "./node_modules/date-fns/getWeekYear.js"); +var _index3 = __webpack_require__(/*! ./startOfWeek.js */ "./node_modules/date-fns/startOfWeek.js"); + +var _index4 = __webpack_require__(/*! ./_lib/defaultOptions.js */ "./node_modules/date-fns/_lib/defaultOptions.js"); + +/** + * The {@link startOfWeekYear} function options. + */ + +/** + * @name startOfWeekYear + * @category Week-Numbering Year Helpers + * @summary Return the start of a local week-numbering year for the given date. + * + * @description + * Return the start of a local week-numbering year. + * The exact calculation depends on the values of + * `options.weekStartsOn` (which is the index of the first day of the week) + * and `options.firstWeekContainsDate` (which is the day of January, which is always in + * the first week of the week-numbering year) + * + * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system + * + * @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). + * + * @param date - The original date + * @param options - An object with options + * + * @returns The start of a week-numbering year + * + * @example + * // The start of an a week-numbering year for 2 July 2005 with default settings: + * const result = startOfWeekYear(new Date(2005, 6, 2)) + * //=> Sun Dec 26 2004 00:00:00 + * + * @example + * // The start of a week-numbering year for 2 July 2005 + * // if Monday is the first day of week + * // and 4 January is always in the first week of the year: + * const result = startOfWeekYear(new Date(2005, 6, 2), { + * weekStartsOn: 1, + * firstWeekContainsDate: 4 + * }) + * //=> Mon Jan 03 2005 00:00:00 + */ +function startOfWeekYear(date, options) { + const defaultOptions = (0, _index4.getDefaultOptions)(); + const firstWeekContainsDate = + options?.firstWeekContainsDate ?? + options?.locale?.options?.firstWeekContainsDate ?? + defaultOptions.firstWeekContainsDate ?? + defaultOptions.locale?.options?.firstWeekContainsDate ?? + 1; + + const year = (0, _index2.getWeekYear)(date, options); + const firstWeek = (0, _index.constructFrom)(date, 0); + firstWeek.setFullYear(year, 0, firstWeekContainsDate); + firstWeek.setHours(0, 0, 0, 0); + const _date = (0, _index3.startOfWeek)(firstWeek, options); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/startOfYear.js": +/*!**********************************************!*\ + !*** ./node_modules/date-fns/startOfYear.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.startOfYear = startOfYear; +var _index = __webpack_require__(/*! ./toDate.js */ "./node_modules/date-fns/toDate.js"); +var _index2 = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); + +/** + * @name startOfYear + * @category Year Helpers + * @summary Return the start of a year for the given date. + * + * @description + * Return the start of a year for the given date. + * The result will be in the local timezone. + * + * @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). + * + * @param date - The original date + * + * @returns The start of a year + * + * @example + * // The start of a year for 2 September 2014 11:55:00: + * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00)) + * //=> Wed Jan 01 2014 00:00:00 + */ +function startOfYear(date) { + const cleanDate = (0, _index.toDate)(date); + const _date = (0, _index2.constructFrom)(date, 0); + _date.setFullYear(cleanDate.getFullYear(), 0, 1); + _date.setHours(0, 0, 0, 0); + return _date; +} + + +/***/ }), + +/***/ "./node_modules/date-fns/subDays.js": +/*!******************************************!*\ + !*** ./node_modules/date-fns/subDays.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.subDays = subDays; +var _index = __webpack_require__(/*! ./addDays.js */ "./node_modules/date-fns/addDays.js"); + +/** + * @name subDays + * @category Day Helpers + * @summary Subtract the specified number of days from the given date. + * + * @description + * Subtract the specified number of days from the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of days to be subtracted. + * + * @returns The new date with the days subtracted + * + * @example + * // Subtract 10 days from 1 September 2014: + * const result = subDays(new Date(2014, 8, 1), 10) + * //=> Fri Aug 22 2014 00:00:00 + */ +function subDays(date, amount) { + return (0, _index.addDays)(date, -amount); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/subMonths.js": +/*!********************************************!*\ + !*** ./node_modules/date-fns/subMonths.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.subMonths = subMonths; +var _index = __webpack_require__(/*! ./addMonths.js */ "./node_modules/date-fns/addMonths.js"); + +/** + * @name subMonths + * @category Month Helpers + * @summary Subtract the specified number of months from the given date. + * + * @description + * Subtract the specified number of months from the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of months to be subtracted. + * + * @returns The new date with the months subtracted + * + * @example + * // Subtract 5 months from 1 February 2015: + * const result = subMonths(new Date(2015, 1, 1), 5) + * //=> Mon Sep 01 2014 00:00:00 + */ +function subMonths(date, amount) { + return (0, _index.addMonths)(date, -amount); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/subQuarters.js": +/*!**********************************************!*\ + !*** ./node_modules/date-fns/subQuarters.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.subQuarters = subQuarters; +var _index = __webpack_require__(/*! ./addQuarters.js */ "./node_modules/date-fns/addQuarters.js"); + +/** + * @name subQuarters + * @category Quarter Helpers + * @summary Subtract the specified number of year quarters from the given date. + * + * @description + * Subtract the specified number of year quarters from the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of quarters to be subtracted. + * + * @returns The new date with the quarters subtracted + * + * @example + * // Subtract 3 quarters from 1 September 2014: + * const result = subQuarters(new Date(2014, 8, 1), 3) + * //=> Sun Dec 01 2013 00:00:00 + */ +function subQuarters(date, amount) { + return (0, _index.addQuarters)(date, -amount); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/subWeeks.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/subWeeks.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.subWeeks = subWeeks; +var _index = __webpack_require__(/*! ./addWeeks.js */ "./node_modules/date-fns/addWeeks.js"); + +/** + * @name subWeeks + * @category Week Helpers + * @summary Subtract the specified number of weeks from the given date. + * + * @description + * Subtract the specified number of weeks from the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of weeks to be subtracted. + * + * @returns The new date with the weeks subtracted + * + * @example + * // Subtract 4 weeks from 1 September 2014: + * const result = subWeeks(new Date(2014, 8, 1), 4) + * //=> Mon Aug 04 2014 00:00:00 + */ +function subWeeks(date, amount) { + return (0, _index.addWeeks)(date, -amount); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/subYears.js": +/*!*******************************************!*\ + !*** ./node_modules/date-fns/subYears.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.subYears = subYears; +var _index = __webpack_require__(/*! ./addYears.js */ "./node_modules/date-fns/addYears.js"); + +/** + * @name subYears + * @category Year Helpers + * @summary Subtract the specified number of years from the given date. + * + * @description + * Subtract the specified number of years from the given date. + * + * @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). + * + * @param date - The date to be changed + * @param amount - The amount of years to be subtracted. + * + * @returns The new date with the years subtracted + * + * @example + * // Subtract 5 years from 1 September 2014: + * const result = subYears(new Date(2014, 8, 1), 5) + * //=> Tue Sep 01 2009 00:00:00 + */ +function subYears(date, amount) { + return (0, _index.addYears)(date, -amount); +} + + +/***/ }), + +/***/ "./node_modules/date-fns/toDate.js": +/*!*****************************************!*\ + !*** ./node_modules/date-fns/toDate.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +exports.toDate = toDate; + +/** + * @name toDate + * @category Common Helpers + * @summary Convert the given argument to an instance of Date. + * + * @description + * Convert the given argument to an instance of Date. + * + * If the argument is an instance of Date, the function returns its clone. + * + * If the argument is a number, it is treated as a timestamp. + * + * If the argument is none of the above, the function returns Invalid Date. + * + * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. + * + * @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). + * + * @param argument - The value to convert + * + * @returns The parsed date in the local time zone + * + * @example + * // Clone the date: + * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) + * //=> Tue Feb 11 2014 11:30:30 + * + * @example + * // Convert the timestamp to date: + * const result = toDate(1392098430000) + * //=> Tue Feb 11 2014 11:30:30 + */ +function toDate(argument) { + const argStr = Object.prototype.toString.call(argument); + + // Clone the date + if ( + argument instanceof Date || + (typeof argument === "object" && argStr === "[object Date]") + ) { + // Prevent the date to lose the milliseconds when passed to new Date() in IE10 + return new argument.constructor(+argument); + } else if ( + typeof argument === "number" || + argStr === "[object Number]" || + typeof argument === "string" || + argStr === "[object String]" + ) { + // TODO: Can we get rid of as? + return new Date(argument); + } else { + // TODO: Can we get rid of as? + return new Date(NaN); + } +} + + +/***/ }), + +/***/ "./node_modules/date-fns/transpose.js": +/*!********************************************!*\ + !*** ./node_modules/date-fns/transpose.js ***! + \********************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +exports.transpose = transpose; +var _index = __webpack_require__(/*! ./constructFrom.js */ "./node_modules/date-fns/constructFrom.js"); + +/** + * @name transpose + * @category Generic Helpers + * @summary Transpose the date to the given constructor. + * + * @description + * The function transposes the date to the given constructor. It helps you + * to transpose the date in the system time zone to say `UTCDate` or any other + * date extension. + * + * @typeParam DateInputType - The input `Date` type derived from the passed argument. + * @typeParam DateOutputType - The output `Date` type derived from the passed constructor. + * + * @param fromDate - The date to use values from + * @param constructor - The date constructor to use + * + * @returns Date transposed to the given constructor + * + * @example + * // Create July 10, 2022 00:00 in locale time zone + * const date = new Date(2022, 6, 10) + * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)' + * + * @example + * // Transpose the date to July 10, 2022 00:00 in UTC + * transpose(date, UTCDate) + * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)' + */ +function transpose(fromDate, constructor) { + const date = + constructor instanceof Date + ? (0, _index.constructFrom)(constructor, 0) + : new constructor(0); + date.setFullYear( + fromDate.getFullYear(), + fromDate.getMonth(), + fromDate.getDate(), + ); + date.setHours( + fromDate.getHours(), + fromDate.getMinutes(), + fromDate.getSeconds(), + fromDate.getMilliseconds(), + ); + return date; +} + + +/***/ }), + +/***/ "./node_modules/dnd-core/node_modules/redux/es/redux.js": +/*!**************************************************************!*\ + !*** ./node_modules/dnd-core/node_modules/redux/es/redux.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ __DO_NOT_USE__ActionTypes: () => (/* binding */ ActionTypes), +/* harmony export */ applyMiddleware: () => (/* binding */ applyMiddleware), +/* harmony export */ bindActionCreators: () => (/* binding */ bindActionCreators), +/* harmony export */ combineReducers: () => (/* binding */ combineReducers), +/* harmony export */ compose: () => (/* binding */ compose), +/* harmony export */ createStore: () => (/* binding */ createStore), +/* harmony export */ legacy_createStore: () => (/* binding */ legacy_createStore) +/* harmony export */ }); +/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ "./node_modules/@babel/runtime/helpers/esm/objectSpread2.js"); + + +/** + * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js + * + * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes + * during build. + * @param {number} code + */ +function formatProdErrorMessage(code) { + return "Minified Redux error #" + code + "; visit https://redux.js.org/Errors?code=" + code + " for the full message or " + 'use the non-minified dev environment for full errors. '; +} + +// Inlined version of the `symbol-observable` polyfill +var $$observable = (function () { + return typeof Symbol === 'function' && Symbol.observable || '@@observable'; +})(); + +/** + * These are private action types reserved by Redux. + * For any unknown actions, you must return the current state. + * If the current state is undefined, you must return the initial state. + * Do not reference these action types directly in your code. + */ +var randomString = function randomString() { + return Math.random().toString(36).substring(7).split('').join('.'); +}; + +var ActionTypes = { + INIT: "@@redux/INIT" + randomString(), + REPLACE: "@@redux/REPLACE" + randomString(), + PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() { + return "@@redux/PROBE_UNKNOWN_ACTION" + randomString(); + } +}; + +/** + * @param {any} obj The object to inspect. + * @returns {boolean} True if the argument appears to be a plain object. + */ +function isPlainObject(obj) { + if (typeof obj !== 'object' || obj === null) return false; + var proto = obj; + + while (Object.getPrototypeOf(proto) !== null) { + proto = Object.getPrototypeOf(proto); + } + + return Object.getPrototypeOf(obj) === proto; +} + +// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of +function miniKindOf(val) { + if (val === void 0) return 'undefined'; + if (val === null) return 'null'; + var type = typeof val; + + switch (type) { + case 'boolean': + case 'string': + case 'number': + case 'symbol': + case 'function': + { + return type; + } + } + + if (Array.isArray(val)) return 'array'; + if (isDate(val)) return 'date'; + if (isError(val)) return 'error'; + var constructorName = ctorName(val); + + switch (constructorName) { + case 'Symbol': + case 'Promise': + case 'WeakMap': + case 'WeakSet': + case 'Map': + case 'Set': + return constructorName; + } // other + + + return type.slice(8, -1).toLowerCase().replace(/\s/g, ''); +} + +function ctorName(val) { + return typeof val.constructor === 'function' ? val.constructor.name : null; +} + +function isError(val) { + return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number'; +} + +function isDate(val) { + if (val instanceof Date) return true; + return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function'; +} + +function kindOf(val) { + var typeOfVal = typeof val; + + if (true) { + typeOfVal = miniKindOf(val); + } + + return typeOfVal; +} + +/** + * @deprecated + * + * **We recommend using the `configureStore` method + * of the `@reduxjs/toolkit` package**, which replaces `createStore`. + * + * Redux Toolkit is our recommended approach for writing Redux logic today, + * including store setup, reducers, data fetching, and more. + * + * **For more details, please read this Redux docs page:** + * **https://redux.js.org/introduction/why-rtk-is-redux-today** + * + * `configureStore` from Redux Toolkit is an improved version of `createStore` that + * simplifies setup and helps avoid common bugs. + * + * You should not be using the `redux` core package by itself today, except for learning purposes. + * The `createStore` method from the core `redux` package will not be removed, but we encourage + * all users to migrate to using Redux Toolkit for all Redux code. + * + * If you want to use `createStore` without this visual deprecation warning, use + * the `legacy_createStore` import instead: + * + * `import { legacy_createStore as createStore} from 'redux'` + * + */ + +function createStore(reducer, preloadedState, enhancer) { + var _ref2; + + if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') { + throw new Error( false ? 0 : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.'); + } + + if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { + enhancer = preloadedState; + preloadedState = undefined; + } + + if (typeof enhancer !== 'undefined') { + if (typeof enhancer !== 'function') { + throw new Error( false ? 0 : "Expected the enhancer to be a function. Instead, received: '" + kindOf(enhancer) + "'"); + } + + return enhancer(createStore)(reducer, preloadedState); + } + + if (typeof reducer !== 'function') { + throw new Error( false ? 0 : "Expected the root reducer to be a function. Instead, received: '" + kindOf(reducer) + "'"); + } + + var currentReducer = reducer; + var currentState = preloadedState; + var currentListeners = []; + var nextListeners = currentListeners; + var isDispatching = false; + /** + * This makes a shallow copy of currentListeners so we can use + * nextListeners as a temporary list while dispatching. + * + * This prevents any bugs around consumers calling + * subscribe/unsubscribe in the middle of a dispatch. + */ + + function ensureCanMutateNextListeners() { + if (nextListeners === currentListeners) { + nextListeners = currentListeners.slice(); + } + } + /** + * Reads the state tree managed by the store. + * + * @returns {any} The current state tree of your application. + */ + + + function getState() { + if (isDispatching) { + throw new Error( false ? 0 : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.'); + } + + return currentState; + } + /** + * Adds a change listener. It will be called any time an action is dispatched, + * and some part of the state tree may potentially have changed. You may then + * call `getState()` to read the current state tree inside the callback. + * + * You may call `dispatch()` from a change listener, with the following + * caveats: + * + * 1. The subscriptions are snapshotted just before every `dispatch()` call. + * If you subscribe or unsubscribe while the listeners are being invoked, this + * will not have any effect on the `dispatch()` that is currently in progress. + * However, the next `dispatch()` call, whether nested or not, will use a more + * recent snapshot of the subscription list. + * + * 2. The listener should not expect to see all state changes, as the state + * might have been updated multiple times during a nested `dispatch()` before + * the listener is called. It is, however, guaranteed that all subscribers + * registered before the `dispatch()` started will be called with the latest + * state by the time it exits. + * + * @param {Function} listener A callback to be invoked on every dispatch. + * @returns {Function} A function to remove this change listener. + */ + + + function subscribe(listener) { + if (typeof listener !== 'function') { + throw new Error( false ? 0 : "Expected the listener to be a function. Instead, received: '" + kindOf(listener) + "'"); + } + + if (isDispatching) { + throw new Error( false ? 0 : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.'); + } + + var isSubscribed = true; + ensureCanMutateNextListeners(); + nextListeners.push(listener); + return function unsubscribe() { + if (!isSubscribed) { + return; + } + + if (isDispatching) { + throw new Error( false ? 0 : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.'); + } + + isSubscribed = false; + ensureCanMutateNextListeners(); + var index = nextListeners.indexOf(listener); + nextListeners.splice(index, 1); + currentListeners = null; + }; + } + /** + * Dispatches an action. It is the only way to trigger a state change. + * + * The `reducer` function, used to create the store, will be called with the + * current state tree and the given `action`. Its return value will + * be considered the **next** state of the tree, and the change listeners + * will be notified. + * + * The base implementation only supports plain object actions. If you want to + * dispatch a Promise, an Observable, a thunk, or something else, you need to + * wrap your store creating function into the corresponding middleware. For + * example, see the documentation for the `redux-thunk` package. Even the + * middleware will eventually dispatch plain object actions using this method. + * + * @param {Object} action A plain object representing “what changed”. It is + * a good idea to keep actions serializable so you can record and replay user + * sessions, or use the time travelling `redux-devtools`. An action must have + * a `type` property which may not be `undefined`. It is a good idea to use + * string constants for action types. + * + * @returns {Object} For convenience, the same action object you dispatched. + * + * Note that, if you use a custom middleware, it may wrap `dispatch()` to + * return something else (for example, a Promise you can await). + */ + + + function dispatch(action) { + if (!isPlainObject(action)) { + throw new Error( false ? 0 : "Actions must be plain objects. Instead, the actual type was: '" + kindOf(action) + "'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples."); + } + + if (typeof action.type === 'undefined') { + throw new Error( false ? 0 : 'Actions may not have an undefined "type" property. You may have misspelled an action type string constant.'); + } + + if (isDispatching) { + throw new Error( false ? 0 : 'Reducers may not dispatch actions.'); + } + + try { + isDispatching = true; + currentState = currentReducer(currentState, action); + } finally { + isDispatching = false; + } + + var listeners = currentListeners = nextListeners; + + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + listener(); + } + + return action; + } + /** + * Replaces the reducer currently used by the store to calculate the state. + * + * You might need this if your app implements code splitting and you want to + * load some of the reducers dynamically. You might also need this if you + * implement a hot reloading mechanism for Redux. + * + * @param {Function} nextReducer The reducer for the store to use instead. + * @returns {void} + */ + + + function replaceReducer(nextReducer) { + if (typeof nextReducer !== 'function') { + throw new Error( false ? 0 : "Expected the nextReducer to be a function. Instead, received: '" + kindOf(nextReducer)); + } + + currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT. + // Any reducers that existed in both the new and old rootReducer + // will receive the previous state. This effectively populates + // the new state tree with any relevant data from the old one. + + dispatch({ + type: ActionTypes.REPLACE + }); + } + /** + * Interoperability point for observable/reactive libraries. + * @returns {observable} A minimal observable of state changes. + * For more information, see the observable proposal: + * https://github.com/tc39/proposal-observable + */ + + + function observable() { + var _ref; + + var outerSubscribe = subscribe; + return _ref = { + /** + * The minimal observable subscription method. + * @param {Object} observer Any object that can be used as an observer. + * The observer object should have a `next` method. + * @returns {subscription} An object with an `unsubscribe` method that can + * be used to unsubscribe the observable from the store, and prevent further + * emission of values from the observable. + */ + subscribe: function subscribe(observer) { + if (typeof observer !== 'object' || observer === null) { + throw new Error( false ? 0 : "Expected the observer to be an object. Instead, received: '" + kindOf(observer) + "'"); + } + + function observeState() { + if (observer.next) { + observer.next(getState()); + } + } + + observeState(); + var unsubscribe = outerSubscribe(observeState); + return { + unsubscribe: unsubscribe + }; + } + }, _ref[$$observable] = function () { + return this; + }, _ref; + } // When a store is created, an "INIT" action is dispatched so that every + // reducer returns their initial state. This effectively populates + // the initial state tree. + + + dispatch({ + type: ActionTypes.INIT + }); + return _ref2 = { + dispatch: dispatch, + subscribe: subscribe, + getState: getState, + replaceReducer: replaceReducer + }, _ref2[$$observable] = observable, _ref2; +} +/** + * Creates a Redux store that holds the state tree. + * + * **We recommend using `configureStore` from the + * `@reduxjs/toolkit` package**, which replaces `createStore`: + * **https://redux.js.org/introduction/why-rtk-is-redux-today** + * + * The only way to change the data in the store is to call `dispatch()` on it. + * + * There should only be a single store in your app. To specify how different + * parts of the state tree respond to actions, you may combine several reducers + * into a single reducer function by using `combineReducers`. + * + * @param {Function} reducer A function that returns the next state tree, given + * the current state tree and the action to handle. + * + * @param {any} [preloadedState] The initial state. You may optionally specify it + * to hydrate the state from the server in universal apps, or to restore a + * previously serialized user session. + * If you use `combineReducers` to produce the root reducer function, this must be + * an object with the same shape as `combineReducers` keys. + * + * @param {Function} [enhancer] The store enhancer. You may optionally specify it + * to enhance the store with third-party capabilities such as middleware, + * time travel, persistence, etc. The only store enhancer that ships with Redux + * is `applyMiddleware()`. + * + * @returns {Store} A Redux store that lets you read the state, dispatch actions + * and subscribe to changes. + */ + +var legacy_createStore = createStore; + +/** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ +function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + + + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + } catch (e) {} // eslint-disable-line no-empty + +} + +function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) { + var reducerKeys = Object.keys(reducers); + var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; + + if (reducerKeys.length === 0) { + return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; + } + + if (!isPlainObject(inputState)) { + return "The " + argumentName + " has unexpected type of \"" + kindOf(inputState) + "\". Expected argument to be an object with the following " + ("keys: \"" + reducerKeys.join('", "') + "\""); + } + + var unexpectedKeys = Object.keys(inputState).filter(function (key) { + return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; + }); + unexpectedKeys.forEach(function (key) { + unexpectedKeyCache[key] = true; + }); + if (action && action.type === ActionTypes.REPLACE) return; + + if (unexpectedKeys.length > 0) { + return "Unexpected " + (unexpectedKeys.length > 1 ? 'keys' : 'key') + " " + ("\"" + unexpectedKeys.join('", "') + "\" found in " + argumentName + ". ") + "Expected to find one of the known reducer keys instead: " + ("\"" + reducerKeys.join('", "') + "\". Unexpected keys will be ignored."); + } +} + +function assertReducerShape(reducers) { + Object.keys(reducers).forEach(function (key) { + var reducer = reducers[key]; + var initialState = reducer(undefined, { + type: ActionTypes.INIT + }); + + if (typeof initialState === 'undefined') { + throw new Error( false ? 0 : "The slice reducer for key \"" + key + "\" returned undefined during initialization. " + "If the state passed to the reducer is undefined, you must " + "explicitly return the initial state. The initial state may " + "not be undefined. If you don't want to set a value for this reducer, " + "you can use null instead of undefined."); + } + + if (typeof reducer(undefined, { + type: ActionTypes.PROBE_UNKNOWN_ACTION() + }) === 'undefined') { + throw new Error( false ? 0 : "The slice reducer for key \"" + key + "\" returned undefined when probed with a random type. " + ("Don't try to handle '" + ActionTypes.INIT + "' or other actions in \"redux/*\" ") + "namespace. They are considered private. Instead, you must return the " + "current state for any unknown actions, unless it is undefined, " + "in which case you must return the initial state, regardless of the " + "action type. The initial state may not be undefined, but can be null."); + } + }); +} +/** + * Turns an object whose values are different reducer functions, into a single + * reducer function. It will call every child reducer, and gather their results + * into a single state object, whose keys correspond to the keys of the passed + * reducer functions. + * + * @param {Object} reducers An object whose values correspond to different + * reducer functions that need to be combined into one. One handy way to obtain + * it is to use ES6 `import * as reducers` syntax. The reducers may never return + * undefined for any action. Instead, they should return their initial state + * if the state passed to them was undefined, and the current state for any + * unrecognized action. + * + * @returns {Function} A reducer function that invokes every reducer inside the + * passed object, and builds a state object with the same shape. + */ + + +function combineReducers(reducers) { + var reducerKeys = Object.keys(reducers); + var finalReducers = {}; + + for (var i = 0; i < reducerKeys.length; i++) { + var key = reducerKeys[i]; + + if (true) { + if (typeof reducers[key] === 'undefined') { + warning("No reducer provided for key \"" + key + "\""); + } + } + + if (typeof reducers[key] === 'function') { + finalReducers[key] = reducers[key]; + } + } + + var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same + // keys multiple times. + + var unexpectedKeyCache; + + if (true) { + unexpectedKeyCache = {}; + } + + var shapeAssertionError; + + try { + assertReducerShape(finalReducers); + } catch (e) { + shapeAssertionError = e; + } + + return function combination(state, action) { + if (state === void 0) { + state = {}; + } + + if (shapeAssertionError) { + throw shapeAssertionError; + } + + if (true) { + var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache); + + if (warningMessage) { + warning(warningMessage); + } + } + + var hasChanged = false; + var nextState = {}; + + for (var _i = 0; _i < finalReducerKeys.length; _i++) { + var _key = finalReducerKeys[_i]; + var reducer = finalReducers[_key]; + var previousStateForKey = state[_key]; + var nextStateForKey = reducer(previousStateForKey, action); + + if (typeof nextStateForKey === 'undefined') { + var actionType = action && action.type; + throw new Error( false ? 0 : "When called with an action of type " + (actionType ? "\"" + String(actionType) + "\"" : '(unknown type)') + ", the slice reducer for key \"" + _key + "\" returned undefined. " + "To ignore an action, you must explicitly return the previous state. " + "If you want this reducer to hold no value, you can return null instead of undefined."); + } + + nextState[_key] = nextStateForKey; + hasChanged = hasChanged || nextStateForKey !== previousStateForKey; + } + + hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length; + return hasChanged ? nextState : state; + }; +} + +function bindActionCreator(actionCreator, dispatch) { + return function () { + return dispatch(actionCreator.apply(this, arguments)); + }; +} +/** + * Turns an object whose values are action creators, into an object with the + * same keys, but with every function wrapped into a `dispatch` call so they + * may be invoked directly. This is just a convenience method, as you can call + * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. + * + * For convenience, you can also pass an action creator as the first argument, + * and get a dispatch wrapped function in return. + * + * @param {Function|Object} actionCreators An object whose values are action + * creator functions. One handy way to obtain it is to use ES6 `import * as` + * syntax. You may also pass a single function. + * + * @param {Function} dispatch The `dispatch` function available on your Redux + * store. + * + * @returns {Function|Object} The object mimicking the original object, but with + * every action creator wrapped into the `dispatch` call. If you passed a + * function as `actionCreators`, the return value will also be a single + * function. + */ + + +function bindActionCreators(actionCreators, dispatch) { + if (typeof actionCreators === 'function') { + return bindActionCreator(actionCreators, dispatch); + } + + if (typeof actionCreators !== 'object' || actionCreators === null) { + throw new Error( false ? 0 : "bindActionCreators expected an object or a function, but instead received: '" + kindOf(actionCreators) + "'. " + "Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?"); + } + + var boundActionCreators = {}; + + for (var key in actionCreators) { + var actionCreator = actionCreators[key]; + + if (typeof actionCreator === 'function') { + boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); + } + } + + return boundActionCreators; +} + +/** + * Composes single-argument functions from right to left. The rightmost + * function can take multiple arguments as it provides the signature for + * the resulting composite function. + * + * @param {...Function} funcs The functions to compose. + * @returns {Function} A function obtained by composing the argument functions + * from right to left. For example, compose(f, g, h) is identical to doing + * (...args) => f(g(h(...args))). + */ +function compose() { + for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { + funcs[_key] = arguments[_key]; + } + + if (funcs.length === 0) { + return function (arg) { + return arg; + }; + } + + if (funcs.length === 1) { + return funcs[0]; + } + + return funcs.reduce(function (a, b) { + return function () { + return a(b.apply(void 0, arguments)); + }; + }); +} + +/** + * Creates a store enhancer that applies middleware to the dispatch method + * of the Redux store. This is handy for a variety of tasks, such as expressing + * asynchronous actions in a concise manner, or logging every action payload. + * + * See `redux-thunk` package as an example of the Redux middleware. + * + * Because middleware is potentially asynchronous, this should be the first + * store enhancer in the composition chain. + * + * Note that each middleware will be given the `dispatch` and `getState` functions + * as named arguments. + * + * @param {...Function} middlewares The middleware chain to be applied. + * @returns {Function} A store enhancer applying the middleware. + */ + +function applyMiddleware() { + for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) { + middlewares[_key] = arguments[_key]; + } + + return function (createStore) { + return function () { + var store = createStore.apply(void 0, arguments); + + var _dispatch = function dispatch() { + throw new Error( false ? 0 : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.'); + }; + + var middlewareAPI = { + getState: store.getState, + dispatch: function dispatch() { + return _dispatch.apply(void 0, arguments); + } + }; + var chain = middlewares.map(function (middleware) { + return middleware(middlewareAPI); + }); + _dispatch = compose.apply(void 0, chain)(store.dispatch); + return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, store), {}, { + dispatch: _dispatch + }); + }; + }; +} + + + + +/***/ }), + +/***/ "./node_modules/events/events.js": +/*!***************************************!*\ + !*** ./node_modules/events/events.js ***! + \***************************************/ +/***/ ((module) => { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission 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: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE 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. + + + +var R = typeof Reflect === 'object' ? Reflect : null +var ReflectApply = R && typeof R.apply === 'function' + ? R.apply + : function ReflectApply(target, receiver, args) { + return Function.prototype.apply.call(target, receiver, args); + } + +var ReflectOwnKeys +if (R && typeof R.ownKeys === 'function') { + ReflectOwnKeys = R.ownKeys +} else if (Object.getOwnPropertySymbols) { + ReflectOwnKeys = function ReflectOwnKeys(target) { + return Object.getOwnPropertyNames(target) + .concat(Object.getOwnPropertySymbols(target)); + }; +} else { + ReflectOwnKeys = function ReflectOwnKeys(target) { + return Object.getOwnPropertyNames(target); + }; +} + +function ProcessEmitWarning(warning) { + if (console && console.warn) console.warn(warning); +} + +var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) { + return value !== value; +} + +function EventEmitter() { + EventEmitter.init.call(this); +} +module.exports = EventEmitter; +module.exports.once = once; + +// Backwards-compat with node 0.10.x +EventEmitter.EventEmitter = EventEmitter; + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._eventsCount = 0; +EventEmitter.prototype._maxListeners = undefined; + +// By default EventEmitters will print a warning if more than 10 listeners are +// added to it. This is a useful default which helps finding memory leaks. +var defaultMaxListeners = 10; + +function checkListener(listener) { + if (typeof listener !== 'function') { + throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); + } +} + +Object.defineProperty(EventEmitter, 'defaultMaxListeners', { + enumerable: true, + get: function() { + return defaultMaxListeners; + }, + set: function(arg) { + if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) { + throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.'); + } + defaultMaxListeners = arg; + } +}); + +EventEmitter.init = function() { + + if (this._events === undefined || + this._events === Object.getPrototypeOf(this)._events) { + this._events = Object.create(null); + this._eventsCount = 0; + } + + this._maxListeners = this._maxListeners || undefined; +}; + +// Obviously not all Emitters should be limited to 10. This function allows +// that to be increased. Set to zero for unlimited. +EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { + if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) { + throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.'); + } + this._maxListeners = n; + return this; +}; + +function _getMaxListeners(that) { + if (that._maxListeners === undefined) + return EventEmitter.defaultMaxListeners; + return that._maxListeners; +} + +EventEmitter.prototype.getMaxListeners = function getMaxListeners() { + return _getMaxListeners(this); +}; + +EventEmitter.prototype.emit = function emit(type) { + var args = []; + for (var i = 1; i < arguments.length; i++) args.push(arguments[i]); + var doError = (type === 'error'); + + var events = this._events; + if (events !== undefined) + doError = (doError && events.error === undefined); + else if (!doError) + return false; + + // If there is no 'error' event listener then throw. + if (doError) { + var er; + if (args.length > 0) + er = args[0]; + if (er instanceof Error) { + // Note: The comments on the `throw` lines are intentional, they show + // up in Node's output if this results in an unhandled exception. + throw er; // Unhandled 'error' event + } + // At least give some kind of context to the user + var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : '')); + err.context = er; + throw err; // Unhandled 'error' event + } + + var handler = events[type]; + + if (handler === undefined) + return false; + + if (typeof handler === 'function') { + ReflectApply(handler, this, args); + } else { + var len = handler.length; + var listeners = arrayClone(handler, len); + for (var i = 0; i < len; ++i) + ReflectApply(listeners[i], this, args); + } + + return true; +}; + +function _addListener(target, type, listener, prepend) { + var m; + var events; + var existing; + + checkListener(listener); + + events = target._events; + if (events === undefined) { + events = target._events = Object.create(null); + target._eventsCount = 0; + } else { + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (events.newListener !== undefined) { + target.emit('newListener', type, + listener.listener ? listener.listener : listener); + + // Re-assign `events` because a newListener handler could have caused the + // this._events to be assigned to a new object + events = target._events; + } + existing = events[type]; + } + + if (existing === undefined) { + // Optimize the case of one listener. Don't need the extra array object. + existing = events[type] = listener; + ++target._eventsCount; + } else { + if (typeof existing === 'function') { + // Adding the second element, need to change to array. + existing = events[type] = + prepend ? [listener, existing] : [existing, listener]; + // If we've already got an array, just append. + } else if (prepend) { + existing.unshift(listener); + } else { + existing.push(listener); + } + + // Check for listener leak + m = _getMaxListeners(target); + if (m > 0 && existing.length > m && !existing.warned) { + existing.warned = true; + // No error code for this since it is a Warning + // eslint-disable-next-line no-restricted-syntax + var w = new Error('Possible EventEmitter memory leak detected. ' + + existing.length + ' ' + String(type) + ' listeners ' + + 'added. Use emitter.setMaxListeners() to ' + + 'increase limit'); + w.name = 'MaxListenersExceededWarning'; + w.emitter = target; + w.type = type; + w.count = existing.length; + ProcessEmitWarning(w); + } + } + + return target; +} + +EventEmitter.prototype.addListener = function addListener(type, listener) { + return _addListener(this, type, listener, false); +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.prependListener = + function prependListener(type, listener) { + return _addListener(this, type, listener, true); + }; + +function onceWrapper() { + if (!this.fired) { + this.target.removeListener(this.type, this.wrapFn); + this.fired = true; + if (arguments.length === 0) + return this.listener.call(this.target); + return this.listener.apply(this.target, arguments); + } +} + +function _onceWrap(target, type, listener) { + var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener }; + var wrapped = onceWrapper.bind(state); + wrapped.listener = listener; + state.wrapFn = wrapped; + return wrapped; +} + +EventEmitter.prototype.once = function once(type, listener) { + checkListener(listener); + this.on(type, _onceWrap(this, type, listener)); + return this; +}; + +EventEmitter.prototype.prependOnceListener = + function prependOnceListener(type, listener) { + checkListener(listener); + this.prependListener(type, _onceWrap(this, type, listener)); + return this; + }; + +// Emits a 'removeListener' event if and only if the listener was removed. +EventEmitter.prototype.removeListener = + function removeListener(type, listener) { + var list, events, position, i, originalListener; + + checkListener(listener); + + events = this._events; + if (events === undefined) + return this; + + list = events[type]; + if (list === undefined) + return this; + + if (list === listener || list.listener === listener) { + if (--this._eventsCount === 0) + this._events = Object.create(null); + else { + delete events[type]; + if (events.removeListener) + this.emit('removeListener', type, list.listener || listener); + } + } else if (typeof list !== 'function') { + position = -1; + + for (i = list.length - 1; i >= 0; i--) { + if (list[i] === listener || list[i].listener === listener) { + originalListener = list[i].listener; + position = i; + break; + } + } + + if (position < 0) + return this; + + if (position === 0) + list.shift(); + else { + spliceOne(list, position); + } + + if (list.length === 1) + events[type] = list[0]; + + if (events.removeListener !== undefined) + this.emit('removeListener', type, originalListener || listener); + } + + return this; + }; + +EventEmitter.prototype.off = EventEmitter.prototype.removeListener; + +EventEmitter.prototype.removeAllListeners = + function removeAllListeners(type) { + var listeners, events, i; + + events = this._events; + if (events === undefined) + return this; + + // not listening for removeListener, no need to emit + if (events.removeListener === undefined) { + if (arguments.length === 0) { + this._events = Object.create(null); + this._eventsCount = 0; + } else if (events[type] !== undefined) { + if (--this._eventsCount === 0) + this._events = Object.create(null); + else + delete events[type]; + } + return this; + } + + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + var keys = Object.keys(events); + var key; + for (i = 0; i < keys.length; ++i) { + key = keys[i]; + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = Object.create(null); + this._eventsCount = 0; + return this; + } + + listeners = events[type]; + + if (typeof listeners === 'function') { + this.removeListener(type, listeners); + } else if (listeners !== undefined) { + // LIFO order + for (i = listeners.length - 1; i >= 0; i--) { + this.removeListener(type, listeners[i]); + } + } + + return this; + }; + +function _listeners(target, type, unwrap) { + var events = target._events; + + if (events === undefined) + return []; + + var evlistener = events[type]; + if (evlistener === undefined) + return []; + + if (typeof evlistener === 'function') + return unwrap ? [evlistener.listener || evlistener] : [evlistener]; + + return unwrap ? + unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); +} + +EventEmitter.prototype.listeners = function listeners(type) { + return _listeners(this, type, true); +}; + +EventEmitter.prototype.rawListeners = function rawListeners(type) { + return _listeners(this, type, false); +}; + +EventEmitter.listenerCount = function(emitter, type) { + if (typeof emitter.listenerCount === 'function') { + return emitter.listenerCount(type); + } else { + return listenerCount.call(emitter, type); + } +}; + +EventEmitter.prototype.listenerCount = listenerCount; +function listenerCount(type) { + var events = this._events; + + if (events !== undefined) { + var evlistener = events[type]; + + if (typeof evlistener === 'function') { + return 1; + } else if (evlistener !== undefined) { + return evlistener.length; + } + } + + return 0; +} + +EventEmitter.prototype.eventNames = function eventNames() { + return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : []; +}; + +function arrayClone(arr, n) { + var copy = new Array(n); + for (var i = 0; i < n; ++i) + copy[i] = arr[i]; + return copy; +} + +function spliceOne(list, index) { + for (; index + 1 < list.length; index++) + list[index] = list[index + 1]; + list.pop(); +} + +function unwrapListeners(arr) { + var ret = new Array(arr.length); + for (var i = 0; i < ret.length; ++i) { + ret[i] = arr[i].listener || arr[i]; + } + return ret; +} + +function once(emitter, name) { + return new Promise(function (resolve, reject) { + function errorListener(err) { + emitter.removeListener(name, resolver); + reject(err); + } + + function resolver() { + if (typeof emitter.removeListener === 'function') { + emitter.removeListener('error', errorListener); + } + resolve([].slice.call(arguments)); + }; + + eventTargetAgnosticAddListener(emitter, name, resolver, { once: true }); + if (name !== 'error') { + addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true }); + } + }); +} + +function addErrorHandlerIfEventEmitter(emitter, handler, flags) { + if (typeof emitter.on === 'function') { + eventTargetAgnosticAddListener(emitter, 'error', handler, flags); + } +} + +function eventTargetAgnosticAddListener(emitter, name, listener, flags) { + if (typeof emitter.on === 'function') { + if (flags.once) { + emitter.once(name, listener); + } else { + emitter.on(name, listener); + } + } else if (typeof emitter.addEventListener === 'function') { + // EventTarget does not have `error` event semantics like Node + // EventEmitters, we do not listen for `error` events here. + emitter.addEventListener(name, function wrapListener(arg) { + // IE does not have builtin `{ once: true }` support so we + // have to do it manually. + if (flags.once) { + emitter.removeEventListener(name, wrapListener); + } + listener(arg); + }); + } else { + throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter); + } +} + + +/***/ }), + +/***/ "./src/assets/images/logo.png": +/*!************************************!*\ + !*** ./src/assets/images/logo.png ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__webpack_require__.p + "assets/images/logo.2a7bff0c1189183fafe71d7d5b94e0cd.png"); + +/***/ }), + +/***/ "./node_modules/file-saver/dist/FileSaver.min.js": +/*!*******************************************************!*\ + !*** ./node_modules/file-saver/dist/FileSaver.min.js ***! + \*******************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(a,b){if(true)!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (b), + __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? + (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else {}})(this,function(){"use strict";function b(a,b){return"undefined"==typeof b?b={autoBom:!1}:"object"!=typeof b&&(console.warn("Deprecated: Expected third argument to be a object"),b={autoBom:!b}),b.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\uFEFF",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open("GET",a),d.responseType="blob",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error("could not download file")},d.send()}function d(a){var b=new XMLHttpRequest;b.open("HEAD",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent("click"))}catch(c){var b=document.createEvent("MouseEvents");b.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof __webpack_require__.g&&__webpack_require__.g.global===__webpack_require__.g?__webpack_require__.g:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||("object"!=typeof window||window!==f?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement("a");g=g||b.name||"download",j.download=g,j.rel="noopener","string"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target="_blank")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:"msSaveOrOpenBlob"in navigator?function(f,g,h){if(g=g||f.name||"download","string"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement("a");i.href=f,i.target="_blank",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open("","_blank"),g&&(g.document.title=g.document.body.innerText="downloading..."),"string"==typeof b)return c(b,d,e);var h="application/octet-stream"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\/[\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&"undefined"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,"data:attachment/file;"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g, true&&(module.exports=g)}); + +//# sourceMappingURL=FileSaver.min.js.map + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/commands.js": +/*!*********************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/commands.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ focusOn: () => (/* binding */ focusOn) +/* harmony export */ }); +var focusOn = function (target, focusOptions) { + if (!target) { + // not clear how, but is possible https://github.com/theKashey/focus-lock/issues/53 + return; + } + if ('focus' in target) { + target.focus(focusOptions); + } + if ('contentWindow' in target && target.contentWindow) { + target.contentWindow.focus(); + } +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/constants.js": +/*!**********************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/constants.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FOCUS_ALLOW: () => (/* binding */ FOCUS_ALLOW), +/* harmony export */ FOCUS_AUTO: () => (/* binding */ FOCUS_AUTO), +/* harmony export */ FOCUS_DISABLED: () => (/* binding */ FOCUS_DISABLED), +/* harmony export */ FOCUS_GROUP: () => (/* binding */ FOCUS_GROUP), +/* harmony export */ FOCUS_NO_AUTOFOCUS: () => (/* binding */ FOCUS_NO_AUTOFOCUS) +/* harmony export */ }); +/** + * defines a focus group + */ +var FOCUS_GROUP = 'data-focus-lock'; +/** + * disables element discovery inside a group marked by key + */ +var FOCUS_DISABLED = 'data-focus-lock-disabled'; +/** + * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content + */ +var FOCUS_ALLOW = 'data-no-focus-lock'; +/** + * instructs autofocus engine to pick default autofocus inside a given node + * can be set on the element or container + */ +var FOCUS_AUTO = 'data-autofocus-inside'; +/** + * instructs autofocus to ignore elements within a given node + * can be set on the element or container + */ +var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus'; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/focusInside.js": +/*!************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/focusInside.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ focusInside: () => (/* binding */ focusInside) +/* harmony export */ }); +/* harmony import */ var _utils_DOMutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/DOMutils */ "./node_modules/focus-lock/dist/es2015/utils/DOMutils.js"); +/* harmony import */ var _utils_all_affected__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/all-affected */ "./node_modules/focus-lock/dist/es2015/utils/all-affected.js"); +/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/array */ "./node_modules/focus-lock/dist/es2015/utils/array.js"); +/* harmony import */ var _utils_getActiveElement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/getActiveElement */ "./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js"); + + + + +var focusInFrame = function (frame, activeElement) { return frame === activeElement; }; +var focusInsideIframe = function (topNode, activeElement) { + return Boolean((0,_utils_array__WEBPACK_IMPORTED_MODULE_0__.toArray)(topNode.querySelectorAll('iframe')).some(function (node) { return focusInFrame(node, activeElement); })); +}; +/** + * @returns {Boolean} true, if the current focus is inside given node or nodes. + * Supports nodes hidden inside shadowDom + */ +var focusInside = function (topNode, activeElement) { + // const activeElement = document && getActiveElement(); + if (activeElement === void 0) { activeElement = (0,_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_1__.getActiveElement)((0,_utils_array__WEBPACK_IMPORTED_MODULE_0__.getFirst)(topNode).ownerDocument); } + if (!activeElement || (activeElement.dataset && activeElement.dataset.focusGuard)) { + return false; + } + return (0,_utils_all_affected__WEBPACK_IMPORTED_MODULE_2__.getAllAffectedNodes)(topNode).some(function (node) { + return (0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_3__.contains)(node, activeElement) || focusInsideIframe(node, activeElement); + }); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/focusIsHidden.js": +/*!**************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/focusIsHidden.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ focusIsHidden: () => (/* binding */ focusIsHidden) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/focus-lock/dist/es2015/constants.js"); +/* harmony import */ var _utils_DOMutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/DOMutils */ "./node_modules/focus-lock/dist/es2015/utils/DOMutils.js"); +/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/array */ "./node_modules/focus-lock/dist/es2015/utils/array.js"); +/* harmony import */ var _utils_getActiveElement__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/getActiveElement */ "./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js"); + + + + +/** + * checks if focus is hidden FROM the focus-lock + * ie contained inside a node focus-lock shall ignore + * + * This is a utility function coupled with {@link FOCUS_ALLOW} constant + * + * @returns {boolean} focus is currently is in "allow" area + */ +var focusIsHidden = function (inDocument) { + if (inDocument === void 0) { inDocument = document; } + var activeElement = (0,_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_0__.getActiveElement)(inDocument); + if (!activeElement) { + return false; + } + // this does not support setting FOCUS_ALLOW within shadow dom + return (0,_utils_array__WEBPACK_IMPORTED_MODULE_1__.toArray)(inDocument.querySelectorAll("[".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.FOCUS_ALLOW, "]"))).some(function (node) { return (0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_3__.contains)(node, activeElement); }); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/focusSolver.js": +/*!************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/focusSolver.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ focusSolver: () => (/* binding */ focusSolver) +/* harmony export */ }); +/* harmony import */ var _solver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./solver */ "./node_modules/focus-lock/dist/es2015/solver.js"); +/* harmony import */ var _utils_DOMutils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/DOMutils */ "./node_modules/focus-lock/dist/es2015/utils/DOMutils.js"); +/* harmony import */ var _utils_all_affected__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/all-affected */ "./node_modules/focus-lock/dist/es2015/utils/all-affected.js"); +/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/array */ "./node_modules/focus-lock/dist/es2015/utils/array.js"); +/* harmony import */ var _utils_auto_focus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/auto-focus */ "./node_modules/focus-lock/dist/es2015/utils/auto-focus.js"); +/* harmony import */ var _utils_getActiveElement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/getActiveElement */ "./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js"); +/* harmony import */ var _utils_is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/is */ "./node_modules/focus-lock/dist/es2015/utils/is.js"); +/* harmony import */ var _utils_parenting__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/parenting */ "./node_modules/focus-lock/dist/es2015/utils/parenting.js"); + + + + + + + + +var reorderNodes = function (srcNodes, dstNodes) { + var remap = new Map(); + // no Set(dstNodes) for IE11 :( + dstNodes.forEach(function (entity) { return remap.set(entity.node, entity); }); + // remap to dstNodes + return srcNodes.map(function (node) { return remap.get(node); }).filter(_utils_is__WEBPACK_IMPORTED_MODULE_0__.isDefined); +}; +/** + * contains the main logic of the `focus-lock` package. + * + * ! you probably dont need this function ! + * + * given top node(s) and the last active element returns the element to be focused next + * @returns element which should be focused to move focus inside + * @param topNode + * @param lastNode + */ +var focusSolver = function (topNode, lastNode) { + var activeElement = (0,_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_1__.getActiveElement)((0,_utils_array__WEBPACK_IMPORTED_MODULE_2__.asArray)(topNode).length > 0 ? document : (0,_utils_array__WEBPACK_IMPORTED_MODULE_2__.getFirst)(topNode).ownerDocument); + var entries = (0,_utils_all_affected__WEBPACK_IMPORTED_MODULE_3__.getAllAffectedNodes)(topNode).filter(_utils_is__WEBPACK_IMPORTED_MODULE_0__.isNotAGuard); + var commonParent = (0,_utils_parenting__WEBPACK_IMPORTED_MODULE_4__.getTopCommonParent)(activeElement || topNode, topNode, entries); + var visibilityCache = new Map(); + var anyFocusable = (0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_5__.getFocusableNodes)(entries, visibilityCache); + var innerElements = anyFocusable.filter(function (_a) { + var node = _a.node; + return (0,_utils_is__WEBPACK_IMPORTED_MODULE_0__.isNotAGuard)(node); + }); + if (!innerElements[0]) { + return undefined; + } + var outerNodes = (0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_5__.getFocusableNodes)([commonParent], visibilityCache).map(function (_a) { + var node = _a.node; + return node; + }); + var orderedInnerElements = reorderNodes(outerNodes, innerElements); + // collect inner focusable and separately tabbables + var innerFocusables = orderedInnerElements.map(function (_a) { + var node = _a.node; + return node; + }); + var innerTabbable = orderedInnerElements.filter(function (_a) { + var tabIndex = _a.tabIndex; + return tabIndex >= 0; + }).map(function (_a) { + var node = _a.node; + return node; + }); + var newId = (0,_solver__WEBPACK_IMPORTED_MODULE_6__.newFocus)(innerFocusables, innerTabbable, outerNodes, activeElement, lastNode); + if (newId === _solver__WEBPACK_IMPORTED_MODULE_6__.NEW_FOCUS) { + var focusNode = + // first try only tabbable, and the fallback to all focusable, as long as at least one element should be picked for focus + (0,_utils_auto_focus__WEBPACK_IMPORTED_MODULE_7__.pickAutofocus)(anyFocusable, innerTabbable, (0,_utils_parenting__WEBPACK_IMPORTED_MODULE_4__.allParentAutofocusables)(entries, visibilityCache)) || + (0,_utils_auto_focus__WEBPACK_IMPORTED_MODULE_7__.pickAutofocus)(anyFocusable, innerFocusables, (0,_utils_parenting__WEBPACK_IMPORTED_MODULE_4__.allParentAutofocusables)(entries, visibilityCache)); + if (focusNode) { + return { node: focusNode }; + } + else { + console.warn('focus-lock: cannot find any node to move focus into'); + return undefined; + } + } + if (newId === undefined) { + return newId; + } + return orderedInnerElements[newId]; +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/focusables.js": +/*!***********************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/focusables.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ expandFocusableNodes: () => (/* binding */ expandFocusableNodes) +/* harmony export */ }); +/* harmony import */ var _utils_all_affected__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/all-affected */ "./node_modules/focus-lock/dist/es2015/utils/all-affected.js"); +/* harmony import */ var _utils_is__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/is */ "./node_modules/focus-lock/dist/es2015/utils/is.js"); +/* harmony import */ var _utils_parenting__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/parenting */ "./node_modules/focus-lock/dist/es2015/utils/parenting.js"); +/* harmony import */ var _utils_tabOrder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/tabOrder */ "./node_modules/focus-lock/dist/es2015/utils/tabOrder.js"); +/* harmony import */ var _utils_tabUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/tabUtils */ "./node_modules/focus-lock/dist/es2015/utils/tabUtils.js"); + + + + + +/** + * traverses all related nodes (including groups) returning a list of all nodes(outer and internal) with meta information + * This is low-level API! + * @returns list of focusable elements inside a given top(!) node. + * @see {@link getFocusableNodes} providing a simpler API + */ +var expandFocusableNodes = function (topNode) { + var entries = (0,_utils_all_affected__WEBPACK_IMPORTED_MODULE_0__.getAllAffectedNodes)(topNode).filter(_utils_is__WEBPACK_IMPORTED_MODULE_1__.isNotAGuard); + var commonParent = (0,_utils_parenting__WEBPACK_IMPORTED_MODULE_2__.getTopCommonParent)(topNode, topNode, entries); + var outerNodes = (0,_utils_tabOrder__WEBPACK_IMPORTED_MODULE_3__.orderByTabIndex)((0,_utils_tabUtils__WEBPACK_IMPORTED_MODULE_4__.getFocusables)([commonParent], true), true, true); + var innerElements = (0,_utils_tabUtils__WEBPACK_IMPORTED_MODULE_4__.getFocusables)(entries, false); + return outerNodes.map(function (_a) { + var node = _a.node, index = _a.index; + return ({ + node: node, + index: index, + lockItem: innerElements.indexOf(node) >= 0, + guard: (0,_utils_is__WEBPACK_IMPORTED_MODULE_1__.isGuard)(node), + }); + }); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/moveFocusInside.js": +/*!****************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/moveFocusInside.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ moveFocusInside: () => (/* binding */ moveFocusInside) +/* harmony export */ }); +/* harmony import */ var _commands__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./commands */ "./node_modules/focus-lock/dist/es2015/commands.js"); +/* harmony import */ var _focusSolver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./focusSolver */ "./node_modules/focus-lock/dist/es2015/focusSolver.js"); + + +var guardCount = 0; +var lockDisabled = false; +/** + * The main functionality of the focus-lock package + * + * Contains focus at a given node. + * The last focused element will help to determine which element(first or last) should be focused. + * The found element will be focused. + * + * This is one time action (move), not a persistent focus-lock + * + * HTML markers (see {@link import('./constants').FOCUS_AUTO} constants) can control autofocus + * @see {@link focusSolver} for the same functionality without autofocus + */ +var moveFocusInside = function (topNode, lastNode, options) { + if (options === void 0) { options = {}; } + var focusable = (0,_focusSolver__WEBPACK_IMPORTED_MODULE_0__.focusSolver)(topNode, lastNode); + // global local side effect to countain recursive lock activation and resolve focus-fighting + if (lockDisabled) { + return; + } + if (focusable) { + /** +FOCUS-FIGHTING prevention **/ + if (guardCount > 2) { + // we have recursive entered back the lock activation + console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' + + 'See https://github.com/theKashey/focus-lock/#focus-fighting'); + lockDisabled = true; + setTimeout(function () { + lockDisabled = false; + }, 1); + return; + } + guardCount++; + (0,_commands__WEBPACK_IMPORTED_MODULE_1__.focusOn)(focusable.node, options.focusOptions); + guardCount--; + } +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/return-focus.js": +/*!*************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/return-focus.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ captureFocusRestore: () => (/* binding */ captureFocusRestore), +/* harmony export */ recordElementLocation: () => (/* binding */ recordElementLocation) +/* harmony export */ }); +/* harmony import */ var _utils_DOMutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/DOMutils */ "./node_modules/focus-lock/dist/es2015/utils/DOMutils.js"); + +function weakRef(value) { + if (!value) + return null; + // #68 Safari 14.1 dont have it yet + // FIXME: remove in 2025 + if (typeof WeakRef === 'undefined') { + return function () { return value || null; }; + } + var w = value ? new WeakRef(value) : null; + return function () { return (w === null || w === void 0 ? void 0 : w.deref()) || null; }; +} +var recordElementLocation = function (element) { + if (!element) { + return null; + } + var stack = []; + var currentElement = element; + while (currentElement && currentElement !== document.body) { + stack.push({ + current: weakRef(currentElement), + parent: weakRef(currentElement.parentElement), + left: weakRef(currentElement.previousElementSibling), + right: weakRef(currentElement.nextElementSibling), + }); + currentElement = currentElement.parentElement; + } + return { + element: weakRef(element), + stack: stack, + ownerDocument: element.ownerDocument, + }; +}; +var restoreFocusTo = function (location) { + var _a, _b, _c, _d, _e; + if (!location) { + return undefined; + } + var stack = location.stack, ownerDocument = location.ownerDocument; + var visibilityCache = new Map(); + for (var _i = 0, stack_1 = stack; _i < stack_1.length; _i++) { + var line = stack_1[_i]; + var parent_1 = (_a = line.parent) === null || _a === void 0 ? void 0 : _a.call(line); + // is it still here? + if (parent_1 && ownerDocument.contains(parent_1)) { + var left = (_b = line.left) === null || _b === void 0 ? void 0 : _b.call(line); + var savedCurrent = line.current(); + var current = parent_1.contains(savedCurrent) ? savedCurrent : undefined; + var right = (_c = line.right) === null || _c === void 0 ? void 0 : _c.call(line); + var focusables = (0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_0__.getTabbableNodes)([parent_1], visibilityCache); + var aim = + // that is element itself + (_e = (_d = current !== null && current !== void 0 ? current : + // or something in it's place + left === null || left === void 0 ? void 0 : left.nextElementSibling) !== null && _d !== void 0 ? _d : + // or somebody to the right, still close enough + right) !== null && _e !== void 0 ? _e : + // or somebody to the left, something? + left; + while (aim) { + for (var _f = 0, focusables_1 = focusables; _f < focusables_1.length; _f++) { + var focusable = focusables_1[_f]; + if (aim === null || aim === void 0 ? void 0 : aim.contains(focusable.node)) { + return focusable.node; + } + } + aim = aim.nextElementSibling; + } + if (focusables.length) { + // if parent contains a focusable - move there + return focusables[0].node; + } + } + } + // nothing matched + return undefined; +}; +/** + * Captures the current focused element to restore focus as close as possible in the future + * Handles situations where the focused element is removed from the DOM or no longer focusable + * moving focus to the closest focusable element + * @param targetElement - element where focus should be restored + * @returns a function returning a new element to focus + */ +var captureFocusRestore = function (targetElement) { + var location = recordElementLocation(targetElement); + return function () { + return restoreFocusTo(location); + }; +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/sibling.js": +/*!********************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/sibling.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ focusFirstElement: () => (/* binding */ focusFirstElement), +/* harmony export */ focusLastElement: () => (/* binding */ focusLastElement), +/* harmony export */ focusNextElement: () => (/* binding */ focusNextElement), +/* harmony export */ focusPrevElement: () => (/* binding */ focusPrevElement), +/* harmony export */ getRelativeFocusable: () => (/* binding */ getRelativeFocusable) +/* harmony export */ }); +/* harmony import */ var _commands__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commands */ "./node_modules/focus-lock/dist/es2015/commands.js"); +/* harmony import */ var _utils_DOMutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/DOMutils */ "./node_modules/focus-lock/dist/es2015/utils/DOMutils.js"); +/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/array */ "./node_modules/focus-lock/dist/es2015/utils/array.js"); + + + +/** + * for a given `element` in a given `scope` returns focusable siblings + * @param element - base element + * @param scope - common parent. Can be document, but better to narrow it down for performance reasons + * @returns {prev,next} - references to a focusable element before and after + * @returns undefined - if operation is not applicable + */ +var getRelativeFocusable = function (element, scope, useTabbables) { + if (!element || !scope) { + console.error('no element or scope given'); + return {}; + } + var shards = (0,_utils_array__WEBPACK_IMPORTED_MODULE_0__.asArray)(scope); + if (shards.every(function (shard) { return !(0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_1__.contains)(shard, element); })) { + console.error('Active element is not contained in the scope'); + return {}; + } + var focusables = useTabbables + ? (0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_1__.getTabbableNodes)(shards, new Map()) + : (0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_1__.getFocusableNodes)(shards, new Map()); + var current = focusables.findIndex(function (_a) { + var node = _a.node; + return node === element; + }); + if (current === -1) { + // an edge case, when anchor element is not found + return undefined; + } + return { + prev: focusables[current - 1], + next: focusables[current + 1], + first: focusables[0], + last: focusables[focusables.length - 1], + }; +}; +var getBoundary = function (shards, useTabbables) { + var set = useTabbables + ? (0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_1__.getTabbableNodes)((0,_utils_array__WEBPACK_IMPORTED_MODULE_0__.asArray)(shards), new Map()) + : (0,_utils_DOMutils__WEBPACK_IMPORTED_MODULE_1__.getFocusableNodes)((0,_utils_array__WEBPACK_IMPORTED_MODULE_0__.asArray)(shards), new Map()); + return { + first: set[0], + last: set[set.length - 1], + }; +}; +var defaultOptions = function (options) { + return Object.assign({ + scope: document.body, + cycle: true, + onlyTabbable: true, + }, options); +}; +var moveFocus = function (fromElement, options, cb) { + if (options === void 0) { options = {}; } + var newOptions = defaultOptions(options); + var solution = getRelativeFocusable(fromElement, newOptions.scope, newOptions.onlyTabbable); + if (!solution) { + return; + } + var target = cb(solution, newOptions.cycle); + if (target) { + (0,_commands__WEBPACK_IMPORTED_MODULE_2__.focusOn)(target.node, newOptions.focusOptions); + } +}; +/** + * focuses next element in the tab-order + * @param fromElement - common parent to scope active element search or tab cycle order + * @param {FocusNextOptions} [options] - focus options + */ +var focusNextElement = function (fromElement, options) { + if (options === void 0) { options = {}; } + moveFocus(fromElement, options, function (_a, cycle) { + var next = _a.next, first = _a.first; + return next || (cycle && first); + }); +}; +/** + * focuses prev element in the tab order + * @param fromElement - common parent to scope active element search or tab cycle order + * @param {FocusNextOptions} [options] - focus options + */ +var focusPrevElement = function (fromElement, options) { + if (options === void 0) { options = {}; } + moveFocus(fromElement, options, function (_a, cycle) { + var prev = _a.prev, last = _a.last; + return prev || (cycle && last); + }); +}; +var pickBoundary = function (scope, options, what) { + var _a; + var boundary = getBoundary(scope, (_a = options.onlyTabbable) !== null && _a !== void 0 ? _a : true); + var node = boundary[what]; + if (node) { + (0,_commands__WEBPACK_IMPORTED_MODULE_2__.focusOn)(node.node, options.focusOptions); + } +}; +/** + * focuses first element in the tab-order + * @param {FocusNextOptions} options - focus options + */ +var focusFirstElement = function (scope, options) { + if (options === void 0) { options = {}; } + pickBoundary(scope, options, 'first'); +}; +/** + * focuses last element in the tab order + * @param {FocusNextOptions} options - focus options + */ +var focusLastElement = function (scope, options) { + if (options === void 0) { options = {}; } + pickBoundary(scope, options, 'last'); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/solver.js": +/*!*******************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/solver.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NEW_FOCUS: () => (/* binding */ NEW_FOCUS), +/* harmony export */ newFocus: () => (/* binding */ newFocus) +/* harmony export */ }); +/* harmony import */ var _utils_correctFocus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/correctFocus */ "./node_modules/focus-lock/dist/es2015/utils/correctFocus.js"); +/* harmony import */ var _utils_firstFocus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/firstFocus */ "./node_modules/focus-lock/dist/es2015/utils/firstFocus.js"); +/* harmony import */ var _utils_is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/is */ "./node_modules/focus-lock/dist/es2015/utils/is.js"); + + + +var NEW_FOCUS = 'NEW_FOCUS'; +/** + * Main solver for the "find next focus" question + * @param innerNodes - used to control "return focus" + * @param innerTabbables - used to control "autofocus" + * @param outerNodes + * @param activeElement + * @param lastNode + * @returns {number|string|undefined|*} + */ +var newFocus = function (innerNodes, innerTabbables, outerNodes, activeElement, lastNode) { + var cnt = innerNodes.length; + var firstFocus = innerNodes[0]; + var lastFocus = innerNodes[cnt - 1]; + var isOnGuard = (0,_utils_is__WEBPACK_IMPORTED_MODULE_0__.isGuard)(activeElement); + // focus is inside + if (activeElement && innerNodes.indexOf(activeElement) >= 0) { + return undefined; + } + var activeIndex = activeElement !== undefined ? outerNodes.indexOf(activeElement) : -1; + var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex; + var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1; + // no active focus (or focus is on the body) + if (activeIndex === -1) { + // known fallback + if (lastNodeInside !== -1) { + return lastNodeInside; + } + return NEW_FOCUS; + } + // new focus, nothing to calculate + if (lastNodeInside === -1) { + return NEW_FOCUS; + } + var indexDiff = activeIndex - lastIndex; + var firstNodeIndex = outerNodes.indexOf(firstFocus); + var lastNodeIndex = outerNodes.indexOf(lastFocus); + var correctedNodes = (0,_utils_correctFocus__WEBPACK_IMPORTED_MODULE_1__.correctNodes)(outerNodes); + var correctedIndex = activeElement !== undefined ? correctedNodes.indexOf(activeElement) : -1; + var correctedIndexDiff = correctedIndex - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex); + // old focus + if (!indexDiff && lastNodeInside >= 0) { + return lastNodeInside; + } + // no tabbable elements, autofocus is not possible + if (innerTabbables.length === 0) { + // an edge case with no tabbable elements + // return the last focusable one + // with some probability this will prevent focus from cycling across the lock, but there is no tabbale elements to cycle to + return lastNodeInside; + } + var returnFirstNode = (0,_utils_firstFocus__WEBPACK_IMPORTED_MODULE_2__.pickFocusable)(innerNodes, innerTabbables[0]); + var returnLastNode = (0,_utils_firstFocus__WEBPACK_IMPORTED_MODULE_2__.pickFocusable)(innerNodes, innerTabbables[innerTabbables.length - 1]); + // first element + if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) { + return returnLastNode; + } + // last element + if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) { + return returnFirstNode; + } + // jump out, but not on the guard + if (indexDiff && Math.abs(correctedIndexDiff) > 1) { + return lastNodeInside; + } + // focus above lock + if (activeIndex <= firstNodeIndex) { + return returnLastNode; + } + // focus below lock + if (activeIndex > lastNodeIndex) { + return returnFirstNode; + } + // index is inside tab order, but outside Lock + if (indexDiff) { + if (Math.abs(indexDiff) > 1) { + return lastNodeInside; + } + return (cnt + lastNodeInside + indexDiff) % cnt; + } + // do nothing + return undefined; +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/DOMutils.js": +/*!***************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/DOMutils.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ contains: () => (/* binding */ contains), +/* harmony export */ filterAutoFocusable: () => (/* binding */ filterAutoFocusable), +/* harmony export */ filterFocusable: () => (/* binding */ filterFocusable), +/* harmony export */ getFocusableNodes: () => (/* binding */ getFocusableNodes), +/* harmony export */ getTabbableNodes: () => (/* binding */ getTabbableNodes), +/* harmony export */ parentAutofocusables: () => (/* binding */ parentAutofocusables) +/* harmony export */ }); +/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/focus-lock/dist/es2015/utils/array.js"); +/* harmony import */ var _is__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is */ "./node_modules/focus-lock/dist/es2015/utils/is.js"); +/* harmony import */ var _tabOrder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tabOrder */ "./node_modules/focus-lock/dist/es2015/utils/tabOrder.js"); +/* harmony import */ var _tabUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tabUtils */ "./node_modules/focus-lock/dist/es2015/utils/tabUtils.js"); + + + + +/** + * given list of focusable elements keeps the ones user can interact with + * @param nodes + * @param visibilityCache + */ +var filterFocusable = function (nodes, visibilityCache) { + return (0,_array__WEBPACK_IMPORTED_MODULE_0__.toArray)(nodes) + .filter(function (node) { return (0,_is__WEBPACK_IMPORTED_MODULE_1__.isVisibleCached)(visibilityCache, node); }) + .filter(function (node) { return (0,_is__WEBPACK_IMPORTED_MODULE_1__.notHiddenInput)(node); }); +}; +var filterAutoFocusable = function (nodes, cache) { + if (cache === void 0) { cache = new Map(); } + return (0,_array__WEBPACK_IMPORTED_MODULE_0__.toArray)(nodes).filter(function (node) { return (0,_is__WEBPACK_IMPORTED_MODULE_1__.isAutoFocusAllowedCached)(cache, node); }); +}; +/** + * !__WARNING__! Low level API. + * @returns all tabbable nodes + * + * @see {@link getFocusableNodes} to get any focusable element + * + * @param topNodes - array of top level HTMLElements to search inside + * @param visibilityCache - an cache to store intermediate measurements. Expected to be a fresh `new Map` on every call + */ +var getTabbableNodes = function (topNodes, visibilityCache, withGuards) { + return (0,_tabOrder__WEBPACK_IMPORTED_MODULE_2__.orderByTabIndex)(filterFocusable((0,_tabUtils__WEBPACK_IMPORTED_MODULE_3__.getFocusables)(topNodes, withGuards), visibilityCache), true, withGuards); +}; +/** + * !__WARNING__! Low level API. + * + * @returns anything "focusable", not only tabbable. The difference is in `tabIndex=-1` + * (without guards, as long as they are not expected to be ever focused) + * + * @see {@link getTabbableNodes} to get only tabble nodes element + * + * @param topNodes - array of top level HTMLElements to search inside + * @param visibilityCache - an cache to store intermediate measurements. Expected to be a fresh `new Map` on every call + */ +var getFocusableNodes = function (topNodes, visibilityCache) { + return (0,_tabOrder__WEBPACK_IMPORTED_MODULE_2__.orderByTabIndex)(filterFocusable((0,_tabUtils__WEBPACK_IMPORTED_MODULE_3__.getFocusables)(topNodes), visibilityCache), false); +}; +/** + * return list of nodes which are expected to be auto-focused + * @param topNode + * @param visibilityCache + */ +var parentAutofocusables = function (topNode, visibilityCache) { + return filterFocusable((0,_tabUtils__WEBPACK_IMPORTED_MODULE_3__.getParentAutofocusables)(topNode), visibilityCache); +}; +/* + * Determines if element is contained in scope, including nested shadow DOMs + */ +var contains = function (scope, element) { + if (scope.shadowRoot) { + return contains(scope.shadowRoot, element); + } + else { + if (Object.getPrototypeOf(scope).contains !== undefined && + Object.getPrototypeOf(scope).contains.call(scope, element)) { + return true; + } + return (0,_array__WEBPACK_IMPORTED_MODULE_0__.toArray)(scope.children).some(function (child) { + var _a; + if (child instanceof HTMLIFrameElement) { + var iframeBody = (_a = child.contentDocument) === null || _a === void 0 ? void 0 : _a.body; + if (iframeBody) { + return contains(iframeBody, element); + } + return false; + } + return contains(child, element); + }); + } +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/all-affected.js": +/*!*******************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/all-affected.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getAllAffectedNodes: () => (/* binding */ getAllAffectedNodes) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./node_modules/focus-lock/dist/es2015/constants.js"); +/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/focus-lock/dist/es2015/utils/array.js"); + + +/** + * in case of multiple nodes nested inside each other + * keeps only top ones + * this is O(nlogn) + * @param nodes + * @returns {*} + */ +var filterNested = function (nodes) { + var contained = new Set(); + var l = nodes.length; + for (var i = 0; i < l; i += 1) { + for (var j = i + 1; j < l; j += 1) { + var position = nodes[i].compareDocumentPosition(nodes[j]); + /* eslint-disable no-bitwise */ + if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) { + contained.add(j); + } + if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) { + contained.add(i); + } + /* eslint-enable */ + } + } + return nodes.filter(function (_, index) { return !contained.has(index); }); +}; +/** + * finds top most parent for a node + * @param node + * @returns {*} + */ +var getTopParent = function (node) { + return node.parentNode ? getTopParent(node.parentNode) : node; +}; +/** + * returns all "focus containers" inside a given node + * @param node - node or nodes to look inside + * @returns Element[] + */ +var getAllAffectedNodes = function (node) { + var nodes = (0,_array__WEBPACK_IMPORTED_MODULE_0__.asArray)(node); + return nodes.filter(Boolean).reduce(function (acc, currentNode) { + var group = currentNode.getAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.FOCUS_GROUP); + acc.push.apply(acc, (group + ? filterNested((0,_array__WEBPACK_IMPORTED_MODULE_0__.toArray)(getTopParent(currentNode).querySelectorAll("[".concat(_constants__WEBPACK_IMPORTED_MODULE_1__.FOCUS_GROUP, "=\"").concat(group, "\"]:not([").concat(_constants__WEBPACK_IMPORTED_MODULE_1__.FOCUS_DISABLED, "=\"disabled\"])")))) + : [currentNode])); + return acc; + }, []); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/array.js": +/*!************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/array.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ asArray: () => (/* binding */ asArray), +/* harmony export */ getFirst: () => (/* binding */ getFirst), +/* harmony export */ toArray: () => (/* binding */ toArray) +/* harmony export */ }); +/* +IE11 support + */ +var toArray = function (a) { + var ret = Array(a.length); + for (var i = 0; i < a.length; ++i) { + ret[i] = a[i]; + } + return ret; +}; +var asArray = function (a) { return (Array.isArray(a) ? a : [a]); }; +var getFirst = function (a) { return (Array.isArray(a) ? a[0] : a); }; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/auto-focus.js": +/*!*****************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/auto-focus.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ pickAutofocus: () => (/* binding */ pickAutofocus) +/* harmony export */ }); +/* harmony import */ var _DOMutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DOMutils */ "./node_modules/focus-lock/dist/es2015/utils/DOMutils.js"); +/* harmony import */ var _firstFocus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./firstFocus */ "./node_modules/focus-lock/dist/es2015/utils/firstFocus.js"); +/* harmony import */ var _is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is */ "./node_modules/focus-lock/dist/es2015/utils/is.js"); + + + +var findAutoFocused = function (autoFocusables) { + return function (node) { + var _a; + var autofocus = (_a = (0,_is__WEBPACK_IMPORTED_MODULE_0__.getDataset)(node)) === null || _a === void 0 ? void 0 : _a.autofocus; + return ( + // @ts-expect-error + node.autofocus || + // + (autofocus !== undefined && autofocus !== 'false') || + // + autoFocusables.indexOf(node) >= 0); + }; +}; +var pickAutofocus = function (nodesIndexes, orderedNodes, groups) { + var nodes = nodesIndexes.map(function (_a) { + var node = _a.node; + return node; + }); + var autoFocusable = (0,_DOMutils__WEBPACK_IMPORTED_MODULE_1__.filterAutoFocusable)(nodes.filter(findAutoFocused(groups))); + if (autoFocusable && autoFocusable.length) { + return (0,_firstFocus__WEBPACK_IMPORTED_MODULE_2__.pickFirstFocus)(autoFocusable); + } + return (0,_firstFocus__WEBPACK_IMPORTED_MODULE_2__.pickFirstFocus)((0,_DOMutils__WEBPACK_IMPORTED_MODULE_1__.filterAutoFocusable)(orderedNodes)); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/correctFocus.js": +/*!*******************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/correctFocus.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ correctNode: () => (/* binding */ correctNode), +/* harmony export */ correctNodes: () => (/* binding */ correctNodes) +/* harmony export */ }); +/* harmony import */ var _is__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is */ "./node_modules/focus-lock/dist/es2015/utils/is.js"); + +var findSelectedRadio = function (node, nodes) { + return nodes + .filter(_is__WEBPACK_IMPORTED_MODULE_0__.isRadioElement) + .filter(function (el) { return el.name === node.name; }) + .filter(function (el) { return el.checked; })[0] || node; +}; +var correctNode = function (node, nodes) { + if ((0,_is__WEBPACK_IMPORTED_MODULE_0__.isRadioElement)(node) && node.name) { + return findSelectedRadio(node, nodes); + } + return node; +}; +/** + * giving a set of radio inputs keeps only selected (tabbable) ones + * @param nodes + */ +var correctNodes = function (nodes) { + // IE11 has no Set(array) constructor + var resultSet = new Set(); + nodes.forEach(function (node) { return resultSet.add(correctNode(node, nodes)); }); + // using filter to support IE11 + return nodes.filter(function (node) { return resultSet.has(node); }); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/firstFocus.js": +/*!*****************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/firstFocus.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ pickFirstFocus: () => (/* binding */ pickFirstFocus), +/* harmony export */ pickFocusable: () => (/* binding */ pickFocusable) +/* harmony export */ }); +/* harmony import */ var _correctFocus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./correctFocus */ "./node_modules/focus-lock/dist/es2015/utils/correctFocus.js"); + +var pickFirstFocus = function (nodes) { + if (nodes[0] && nodes.length > 1) { + return (0,_correctFocus__WEBPACK_IMPORTED_MODULE_0__.correctNode)(nodes[0], nodes); + } + return nodes[0]; +}; +var pickFocusable = function (nodes, node) { + return nodes.indexOf((0,_correctFocus__WEBPACK_IMPORTED_MODULE_0__.correctNode)(node, nodes)); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js": +/*!***********************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getActiveElement: () => (/* binding */ getActiveElement) +/* harmony export */ }); +/* harmony import */ var _safe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./safe */ "./node_modules/focus-lock/dist/es2015/utils/safe.js"); +/** + * returns active element from document or from nested shadowdoms + */ + +/** + * returns current active element. If the active element is a "container" itself(shadowRoot or iframe) returns active element inside it + * @param [inDocument] + */ +var getActiveElement = function (inDocument) { + if (inDocument === void 0) { inDocument = document; } + if (!inDocument || !inDocument.activeElement) { + return undefined; + } + var activeElement = inDocument.activeElement; + return (activeElement.shadowRoot + ? getActiveElement(activeElement.shadowRoot) + : activeElement instanceof HTMLIFrameElement && (0,_safe__WEBPACK_IMPORTED_MODULE_0__.safeProbe)(function () { return activeElement.contentWindow.document; }) + ? getActiveElement(activeElement.contentWindow.document) + : activeElement); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/is.js": +/*!*********************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/is.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getDataset: () => (/* binding */ getDataset), +/* harmony export */ isAutoFocusAllowed: () => (/* binding */ isAutoFocusAllowed), +/* harmony export */ isAutoFocusAllowedCached: () => (/* binding */ isAutoFocusAllowedCached), +/* harmony export */ isDefined: () => (/* binding */ isDefined), +/* harmony export */ isGuard: () => (/* binding */ isGuard), +/* harmony export */ isHTMLButtonElement: () => (/* binding */ isHTMLButtonElement), +/* harmony export */ isHTMLInputElement: () => (/* binding */ isHTMLInputElement), +/* harmony export */ isNotAGuard: () => (/* binding */ isNotAGuard), +/* harmony export */ isRadioElement: () => (/* binding */ isRadioElement), +/* harmony export */ isVisibleCached: () => (/* binding */ isVisibleCached), +/* harmony export */ notHiddenInput: () => (/* binding */ notHiddenInput) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ "./node_modules/focus-lock/dist/es2015/constants.js"); + +var isElementHidden = function (node) { + // we can measure only "elements" + // consider others as "visible" + if (node.nodeType !== Node.ELEMENT_NODE) { + return false; + } + var computedStyle = window.getComputedStyle(node, null); + if (!computedStyle || !computedStyle.getPropertyValue) { + return false; + } + return (computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden'); +}; +var getParentNode = function (node) { + // DOCUMENT_FRAGMENT_NODE can also point on ShadowRoot. In this case .host will point on the next node + return node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE + ? // eslint-disable-next-line @typescript-eslint/no-explicit-any + node.parentNode.host + : node.parentNode; +}; +var isTopNode = function (node) { + // @ts-ignore + return node === document || (node && node.nodeType === Node.DOCUMENT_NODE); +}; +var isInert = function (node) { return node.hasAttribute('inert'); }; +/** + * @see https://github.com/testing-library/jest-dom/blob/main/src/to-be-visible.js + */ +var isVisibleUncached = function (node, checkParent) { + return !node || isTopNode(node) || (!isElementHidden(node) && !isInert(node) && checkParent(getParentNode(node))); +}; +var isVisibleCached = function (visibilityCache, node) { + var cached = visibilityCache.get(node); + if (cached !== undefined) { + return cached; + } + var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache)); + visibilityCache.set(node, result); + return result; +}; +var isAutoFocusAllowedUncached = function (node, checkParent) { + return node && !isTopNode(node) ? (isAutoFocusAllowed(node) ? checkParent(getParentNode(node)) : false) : true; +}; +var isAutoFocusAllowedCached = function (cache, node) { + var cached = cache.get(node); + if (cached !== undefined) { + return cached; + } + var result = isAutoFocusAllowedUncached(node, isAutoFocusAllowedCached.bind(undefined, cache)); + cache.set(node, result); + return result; +}; +var getDataset = function (node) { + // @ts-ignore + return node.dataset; +}; +var isHTMLButtonElement = function (node) { return node.tagName === 'BUTTON'; }; +var isHTMLInputElement = function (node) { return node.tagName === 'INPUT'; }; +var isRadioElement = function (node) { + return isHTMLInputElement(node) && node.type === 'radio'; +}; +var notHiddenInput = function (node) { + return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled)); +}; +var isAutoFocusAllowed = function (node) { + var attribute = node.getAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.FOCUS_NO_AUTOFOCUS); + return ![true, 'true', ''].includes(attribute); +}; +var isGuard = function (node) { var _a; return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard)); }; +var isNotAGuard = function (node) { return !isGuard(node); }; +var isDefined = function (x) { return Boolean(x); }; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/parenting.js": +/*!****************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/parenting.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ allParentAutofocusables: () => (/* binding */ allParentAutofocusables), +/* harmony export */ getCommonParent: () => (/* binding */ getCommonParent), +/* harmony export */ getTopCommonParent: () => (/* binding */ getTopCommonParent) +/* harmony export */ }); +/* harmony import */ var _DOMutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DOMutils */ "./node_modules/focus-lock/dist/es2015/utils/DOMutils.js"); +/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/focus-lock/dist/es2015/utils/array.js"); + + + +var getParents = function (node, parents) { + if (parents === void 0) { parents = []; } + parents.push(node); + if (node.parentNode) { + getParents(node.parentNode.host || node.parentNode, parents); + } + return parents; +}; +/** + * finds a parent for both nodeA and nodeB + * @param nodeA + * @param nodeB + * @returns {boolean|*} + */ +var getCommonParent = function (nodeA, nodeB) { + var parentsA = getParents(nodeA); + var parentsB = getParents(nodeB); + // tslint:disable-next-line:prefer-for-of + for (var i = 0; i < parentsA.length; i += 1) { + var currentParent = parentsA[i]; + if (parentsB.indexOf(currentParent) >= 0) { + return currentParent; + } + } + return false; +}; +var getTopCommonParent = function (baseActiveElement, leftEntry, rightEntries) { + var activeElements = (0,_array__WEBPACK_IMPORTED_MODULE_0__.asArray)(baseActiveElement); + var leftEntries = (0,_array__WEBPACK_IMPORTED_MODULE_0__.asArray)(leftEntry); + var activeElement = activeElements[0]; + var topCommon = false; + leftEntries.filter(Boolean).forEach(function (entry) { + topCommon = getCommonParent(topCommon || entry, entry) || topCommon; + rightEntries.filter(Boolean).forEach(function (subEntry) { + var common = getCommonParent(activeElement, subEntry); + if (common) { + if (!topCommon || (0,_DOMutils__WEBPACK_IMPORTED_MODULE_1__.contains)(common, topCommon)) { + topCommon = common; + } + else { + topCommon = getCommonParent(common, topCommon); + } + } + }); + }); + // TODO: add assert here? + return topCommon; +}; +/** + * return list of nodes which are expected to be autofocused inside a given top nodes + * @param entries + * @param visibilityCache + */ +var allParentAutofocusables = function (entries, visibilityCache) { + return entries.reduce(function (acc, node) { return acc.concat((0,_DOMutils__WEBPACK_IMPORTED_MODULE_1__.parentAutofocusables)(node, visibilityCache)); }, []); +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/safe.js": +/*!***********************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/safe.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ safeProbe: () => (/* binding */ safeProbe) +/* harmony export */ }); +var safeProbe = function (cb) { + try { + return cb(); + } + catch (e) { + return undefined; + } +}; + + +/***/ }), + +/***/ "./node_modules/focus-lock/dist/es2015/utils/tabOrder.js": +/*!***************************************************************!*\ + !*** ./node_modules/focus-lock/dist/es2015/utils/tabOrder.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ orderByTabIndex: () => (/* binding */ orderByTabIndex), +/* harmony export */ tabSort: () => (/* binding */ tabSort) +/* harmony export */ }); +/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array */ "./node_modules/focus-lock/dist/es2015/utils/array.js"); + +var tabSort = function (a, b) { + var aTab = Math.max(0, a.tabIndex); + var bTab = Math.max(0, b.tabIndex); + var tabDiff = aTab - bTab; + var indexDiff = a.index - b.index; + if (tabDiff) { + if (!aTab) { + return 1; + } + if (!bTab) { + return -1; + } + } + return tabDiff || indexDiff; +}; +var getTabIndex = function (node) { + if (node.tabIndex < 0) { + // all "focusable" elements are already preselected + // but some might have implicit negative tabIndex + // return 0 for